画像をヒストグラムにしてみた。Python OpenCV
どうも、体調不良ぎみのGuchiです。
今日は、画像をヒストグラムにしてみましたので更新します。
Pythonで画像をヒストグラムにする
その前に、ヒストグラムは何かご存知でしょうか?Wikipediaをご覧下さい.w
統計では、正規分布やらノンパラやら言われるあんな感じです。雑な感じですみません。
画像といってもカラー画像とグレースケール画像があります。カラー画像は赤青緑の3つの色がそれぞれ合わさって1つの色を表しています。
そして、それぞれ0から255までの256パターンあります。例えば、白だと(255.255.255)になります。
グレースケール画像は単純に0から255までの256パターンです。0が黒、255が白になります。
画像からそれぞれの色の配置がどれくらいなのかを見る事ができます!
では、こちらの画像をヒストグラムにしてみましょう!
次はこちらの画像をヒストグラムにしました。
ヒストグラム(極端ですね、すみません)
カラー写真のヒストグラム コード:
OpenCVはインポートしておいてください
ImgDIR =r"パス"
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
import glob#R, G, Bヒストグラムの表示
def show_imghys(path):# 画像の読み込み
img = cv2.imread(path)
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
# ヒストグラムの取得
hist_b = cv2.calcHist([b],[0],None,[256],[0,256])
hist_g = cv2.calcHist([g],[0],None,[256],[0,256])
hist_r = cv2.calcHist([r],[0],None,[256],[0,256])
# ヒストグラムの表示
plt.title(path)
plt.plot(hist_r, color='r', label="R",ls=":")
plt.plot(hist_g, color='g', label="G",ls="--")
plt.plot(hist_b, color='b', label="B",ls="-")
#plt.xlim(0, 256)
#plt.ylim(0)plt.legend()
plt.show()
return hist_r,hist_g, hist_b# フォルダ内の画像のパスを取得し、ヒストグラムを表示
ImagePaths = glob.glob(ImgDIR+"\*")
for ImagePath in ImagePaths:
show_imghys(ImagePath)
雑な記事ですみません