OpenCV-在生成色调直方图时忽略像素

时间:2016-04-18 09:18:33

标签: python opencv numpy histogram hue

我在Python中使用OpenCV的calcHist()函数为HSV图像生成Hue直方图但是我希望函数能够忽略〜0%或~100%亮度的像素(分别为黑色和白色)或~0%饱和度(灰色)。有任何想法吗?提前谢谢。

1 个答案:

答案 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>

希望这有帮助。