2
我使用Python中的OpenCV中的calcHist()
函數生成HSV
圖像的色調直方圖但是我希望函數能夠忽略具有〜0%或〜100%亮度(分別爲黑色和白色)或〜0%飽和度(灰色)。有任何想法嗎?提前致謝。OpenCV--在生成色調直方圖時忽略像素
我使用Python中的OpenCV中的calcHist()
函數生成HSV
圖像的色調直方圖但是我希望函數能夠忽略具有〜0%或〜100%亮度(分別爲黑色和白色)或〜0%飽和度(灰色)。有任何想法嗎?提前致謝。OpenCV--在生成色調直方圖時忽略像素
calcHist
函數接受mask
參數。您可以使用您提到的這些屬性創建一個遮罩,並將其傳遞給該函數。我建議你創建,一旦分析像素的東西......但一個簡單的方法做到這一點是:
h,s,v = cv2.split(img)
mask = (v == 0) + (v == 100) + (s == 0)
mask = numpy.logical_not(mask)
然後你可以使用你的掩碼矩陣的功能。它會忽略具有錯誤值的像素。我已經在C++中使用了這個,所以我不確定假值是否可以工作,或者如果你需要整數作爲C++版本...在最壞的情況下,只需添加另外一行mask *= 1
,你就完成了。
希望這會有所幫助。
我在Python中使用OpenCV,所以我不熟悉C++語法。在你的第二行代碼中,「+」代表邏輯或? – user3396592
@ user3396592這實際上是Python代碼...它工作邏輯或 – api55