作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取图像的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/
我是一名优秀的程序员,十分优秀!