つまりなにしたの?
Photoshopとかで画像をいじるときに、カラーバランスを変更すると画像のヒストグラムが動く。
今日はこの画像のヒストグラムをPython+OpenCVで作れるようになろうと思った。
おおまかな手順
- 画像を読み込む
- 画像のBGRをRGBに変更する(必須ではないけどMatplotlibのために実施)
- 読み込んだ画像の表示
- RGBそれぞれについてヒストグラムを描画する
環境
% python --version Python 3.6.4 % pip freeze opencv-python==3.4.0.12
コード
import cv2 import matplotlib.pyplot as plt # 画像を読み込む filename = "CAKE.JPG" img = cv2.imread(filename) # 画像のBGRをRGBに変更する(必須ではないけどMatplotlibのために実施) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 読み込んだ画像の表示 plt.imshow(img) plt.show() # RGBそれぞれについてヒストグラムを描画する color = ['r','g','b'] for i,col in enumerate(color): histr = cv2.calcHist([img],[i],None,[256],[0,256]) plt.plot(histr,color = col) plt.show()
描画されたヒストグラムはこちら
今回使った画像はこちら
ちょっと縮小してあるので形とか高さは異なるかもしれない。