Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算opencv上的直方图而不考虑图像上的所有黑色像素(由于遮罩)_Opencv_Computer Vision - Fatal编程技术网

如何计算opencv上的直方图而不考虑图像上的所有黑色像素(由于遮罩)

如何计算opencv上的直方图而不考虑图像上的所有黑色像素(由于遮罩),opencv,computer-vision,Opencv,Computer Vision,我正在尝试获取图像的HSV,LAB直方图,以便提取某些特征,但实际上我无法从我的特征中获得任何准确的结果。如果直方图考虑到我已遮罩区域的黑色像素,我如何克服此问题,请,非常感谢任何帮助 我正在使用python 这是一个示例图像,这是我尝试使用的代码 在进行直方图之前,请尝试过滤掉黑色像素(val=0),方法是应用: hue = hue[numpy.where(val > 0,True,False)] sat = sat[numpy.where(val > 0,True,False)]

我正在尝试获取图像的HSV,LAB直方图,以便提取某些特征,但实际上我无法从我的特征中获得任何准确的结果。如果直方图考虑到我已遮罩区域的黑色像素,我如何克服此问题,请,非常感谢任何帮助

我正在使用python

这是一个示例图像,这是我尝试使用的代码


在进行直方图之前,请尝试过滤掉黑色像素(val=0),方法是应用:

hue = hue[numpy.where(val > 0,True,False)]
sat = sat[numpy.where(val > 0,True,False)]
val = val[numpy.where(val > 0,True,False)]
在计算直方图时,请尝试以下操作:

cv2.calcHist(hsv_image[np.where(val > 0,True, False)], [1],None, [255], [0, 255])

谢谢,成功了;我做的另一件事是把面具放在calcHist()中,如下所示谢谢!我后来才意识到,;michamei解决方案有效,我还添加了掩码参数,两者都有效。
cv2.calcHist(hsv_image[np.where(val > 0,True, False)], [1],None, [255], [0, 255])