如何计算opencv上的直方图而不考虑图像上的所有黑色像素(由于遮罩)
我正在尝试获取图像的HSV,LAB直方图,以便提取某些特征,但实际上我无法从我的特征中获得任何准确的结果。如果直方图考虑到我已遮罩区域的黑色像素,我如何克服此问题,请,非常感谢任何帮助 我正在使用python 这是一个示例图像,这是我尝试使用的代码如何计算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)]
在进行直方图之前,请尝试过滤掉黑色像素(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])