我在Python中使用OpenCV的calcHist()
函数为HSV
图像生成Hue直方图但是我希望函数能够忽略〜0%或~100%亮度的像素(分别为黑色和白色)或~0%饱和度(灰色)。有任何想法吗?提前谢谢。
答案 0 :(得分:2)
calcHist
函数接受mask
参数。您可以使用您提到的属性创建掩码并将其传递给函数。我建议你创建一些分析像素的东西......但是一个简单的方法就是:
h,s,v = cv2.split(img)
mask = (v == 0) + (v == 100) + (s == 0)
mask = numpy.logical_not(mask)
然后你可以在函数中使用掩码矩阵。它将忽略具有错误值的像素。我在c ++中使用过这个,所以我不确定假值是否有效,或者你是否需要整数,如c ++版本......在最坏的情况下,只需添加另一行mask *= 1
即可完成。 / p>
希望这有帮助。