画像の輝度をヒストグラム表示する
やること
- ファイル名を指定して画像ファイルを読み出す
- 画像の全画素のB(青)G(緑)R(赤)の輝度をヒストグラム化する
使った関数
- cv2.imread : 画像ファイルの読み出し
- cv2.calcHist : 配列のヒストグラム計算
- matplotlib.pyplot.plot : グラフを作成
- matplotlib.pyplot.show : グラフの表示
環境
準備
画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。
コード
import cv2 #OpenCVのインポート import matplotlib.pyplot as plt #matplotlib.pyplotのインポート fname = "coffee.jpg" #画像ファイル名 img = cv2.imread(fname) #画像を読み出しオブジェクトimgに代入 hist_b = cv2.calcHist([img],[0],None,[256],[0,256]) #B(青)のヒストグラムを計算 plt.plot(hist_b,color = "b") #B(青)のヒストグラムをプロット hist_g = cv2.calcHist([img],[1],None,[256],[0,256]) #G(緑)のヒストグラムを計算 plt.plot(hist_g,color = "g") #G(緑)のヒストグラムをプロット hist_r = cv2.calcHist([img],[2],None,[256],[0,256]) #R(赤)のヒストグラムを計算 plt.plot(hist_r,color = "r") #R(赤)のヒストグラムをプロット plt.show() #プロットを表示
実行結果
別の画像もやってみます。上のコードのファイル名だけ変えます。
実行結果
赤がほとんどなく、青が強いようです。