Python 两个范围内的HSV面罩
这是我的问题: 我需要从下图中分离蓝色曲线: 曲线可以在图像中的任何位置,因此我实现了一种模式识别,效果很好,下面是一个方框: 现在,我要做的是提取曲线本身。曲线可以是任何颜色,所以我想我应该提取图片中的主要颜色,并应用与这些颜色对应的HSV遮罩。 我成功地恢复了曲线的颜色。 这些是,在BGR中:[68,240,86]和[160,81,76] 现在我的问题是找到相应的HSV值以应用遮罩。我尝试过的所有事情都以一个完全不好的结果告终 以下是我当前的掩码代码:Python 两个范围内的HSV面罩,python,opencv,hsv,Python,Opencv,Hsv,这是我的问题: 我需要从下图中分离蓝色曲线: 曲线可以在图像中的任何位置,因此我实现了一种模式识别,效果很好,下面是一个方框: 现在,我要做的是提取曲线本身。曲线可以是任何颜色,所以我想我应该提取图片中的主要颜色,并应用与这些颜色对应的HSV遮罩。 我成功地恢复了曲线的颜色。 这些是,在BGR中:[68,240,86]和[160,81,76] 现在我的问题是找到相应的HSV值以应用遮罩。我尝试过的所有事情都以一个完全不好的结果告终 以下是我当前的掩码代码: low = np.uint8([[
low = np.uint8([[llow]])
high = np.uint8([[lhigh]])
hsv_low = cv2.cvtColor(low, cv2.COLOR_BGR2HSV)
hsv_high = cv2.cvtColor(high, cv2.COLOR_BGR2HSV)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
print(hsv_low, hsv_high)
mask1 = cv2.inRange(hsv, hsv_low, hsv_high)
output = cv2.bitwise_and(img, img, mask=mask1)
show("hsv", output)
wait()
与:
我还认为获得的HSV值有点奇怪
hsv_低端最终为[86,240,68],hsv_高端为[76,81,160],所以我不知道哪个应该是低端还是高端。(我已尝试切换它们,但未发生任何更改)
任何帮助都将不胜感激 试试戴口罩吧
lower_blue = np.array([60, 40, 40])
upper_blue = np.array([130, 255, 255])
他们已经在HSV颜色空间,我得到的图片看起来像这样。现在,您只需要从绿色刻度填充孔
嘿,感谢您花时间回答,我也通过手动处理范围实现了这一点,但由于我在上一步中检索到的颜色范围,我真的很想实现自动化…您不需要填补这些空白,因为在原始曲线中,整个曲线都具有相同的颜色。他发布了一张JPEG图片,这会干扰颜色信息。在发布图片时,使用PNG是一个非常好的主意,因为它是无损的。
lower_blue = np.array([60, 40, 40])
upper_blue = np.array([130, 255, 255])