前提・実現したいこと
Python版OpenCVを使用しています。
発生している問題・エラーメッセージ
Windowsのペイントで青色、RGB(0,0,255)だけの画像を作成し、calcHist関数でこれを読み込んだところ、青が255ではなく254として検出されている。
calcHistで読み込んでグラフ化した結果、青色255ではなく254の値が高くなっている。
該当のソースコード
Python
1from matplotlib import pyplot as plt 2import cv2 3 4 5img = cv2.imread('blue.jpg') 6histrgb = [] 7color = ('b','g','r') 8for i,col in enumerate(color): 9 histrgb.append(cv2.calcHist([img],[i],None,[256],[0,256])) 10 plt.plot(histrgb[i],color = col) 11plt.show()
試したこと
青色画像をjpg、pngと試しました。
また、calcHist関数で出力される値の確認を行いました。
コメントをつけている行のプログラムを追加して確認しました。
Python
1from matplotlib import pyplot as plt 2import cv2 3 4 5img = cv2.imread('blue.jpg') 6histrgb = [] 7color = ('b','g','r') 8for i,col in enumerate(color): 9 histrgb.append(cv2.calcHist([img],[i],None,[256],[0,256])) 10 plt.plot(histrgb[i],color = col) 11 print(histrgb[i][255]) # 値の確認 12plt.show()
print(histrgb[i][255])のとき、RGBどれも0で
print(histrgb[i][254])のとき、Bが16463でした。
補足情報(FW/ツールのバージョンなど)
Windows 10
Python 3.5.6
opencv-python 4.3.0.36
numpy 1.18.5
Pillow 7.2.0
回答1件
あなたの回答
tips
プレビュー