gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:23:44 30 4
gpt4 key购买 nike

我正在尝试获取图像的HSV,LAB直方图以提取某些特征,但是如果直方图考虑到我遮盖的区域的黑色像素,实际上我无法从特征中获得任何准确的结果。我能克服这个问题吗,我们将为您提供任何帮助。
我正在使用python。
这是一个示例图像,这是我尝试使用的代码。 enter image description here

hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
hue = hsv_image[:,:,0].astype(float)
sat = hsv_image[:,:,1].astype(float)
val = hsv_image[:,:,2].astype(float)
hue[hue == 0] = np.nan
histr_lab = cv2.calcHist([hsv_image], [0], None, [255], [0, 255])
histr_lab1 = cv2.calcHist([hsv], [1], None, [255], [0, 255])
histr_lab2 = cv2.calcHist([hsv], [2], None, [255], [0, 255])

最佳答案

在应用直方图之前,尝试通过应用以下方法过滤掉黑色像素(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])

关于opencv - 如何在opencv上计算直方图而不考虑图像上的所有黑色像素(由于 mask ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62875780/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com