HSV空間のヒストグラムの是非について
Pythonを用いて画像のhsv空間のヒストグラムを作成したのですがこの結果が正しいのか客観的な評価を頂きたいです
import numpy as np from matplotlib import pyplot as plt import cv2 def show_img(path): img = cv2.imread(path) b, g, r = img[:,:,0], img[:,:,1], 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]) img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) h, s, v = img2[:,:,0], img2[:,:,1], img2[:,:,2] hist_h = cv2.calcHist([h],[0],None,[360],[0,256]) hist_s = cv2.calcHist([s],[0],None,[100],[0,256]) hist_v = cv2.calcHist([v],[0],None,[100],[0,256]) plt.plot(hist_h, color='r', label="h") plt.plot(hist_s, color='g', label="s") plt.plot(hist_v, color='b', label="v") plt.legend() plt.xlim([-20,370]) plt.show() return hist_h, hist_s, hist_v h,s,v = show_img("sample.jpg")
上記のコードではhsv空間のhは0360度あるため、12行のNoneを360と設定し、svはともに0100%で表されることから13,14行目のNoneを100と設定しました。また、結果のヒストグラムで見やすいようにx軸を-20から370に設定しました。このプログラムで出力されるヒストグラムは正しい数値を出力できているでしょうか?ご意見のほどよろしくお願いいたします。
あなたの回答
tips
プレビュー