Interface2017年05月号新画像処理101を読む

1-7 モザイクをかける[モザイク画像処理]

# 画像の読み込み
img_src = cv2.imread("data/Mandrill.png")

# オリジナルのサイズを保存しておく。
#  shapeで取得できるサイズとresizeの引数に渡すサイズでは横縦の順番が違うらしい。ので[::-1]として反転。
origsize = img_src.shape[:2][::-1]
#1/20に縮小
img_tmp = cv2.resize(img_src, (int(origsize[0]/20), int(origsize[1]/20)))
# 画像を元のサイズに拡大。
img_dst = cv2.resize(img_tmp, origsize, interpolation=cv2.INTER_NEAREST)

#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

#ヒストグラム
fig = plt.figure()
ax1 = fig.add_subplot(211) #総行数,総列数、サブプロット番号
ax2 = fig.add_subplot(212)
color_list = ["blue","green","red"]
for i,j in enumerate(color_list):
    hist = cv2.calcHist([img_src],[i],None,[256],[0,256])
    ax1.plot(hist,color = j)

for i,j in enumerate(color_list):
    hist = cv2.calcHist([img_dst],[i],None,[256],[0,256])
    ax2.plot(hist,color = j)

f:id:bitop:20180115055759p:plain

f:id:bitop:20180119055919p:plain

f:id:bitop:20180119055948p:plain