我正在使用Python中的OpenCV识别黄色。我已经到了这一步,我必须在HSV中定义黄色的下限和上限。
定义蓝色范围的示例:
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
HSV通常以百分比定义。我如何定义黄色的范围?
这是我一直在跟踪的the colorspaces tutorial。
上面提到的博客中有一些建议,但并没有给我给予想要的输出。
我正在使用Python中的OpenCV识别黄色。我已经到了这一步,我必须在HSV中定义黄色的下限和上限。
定义蓝色范围的示例:
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
HSV通常以百分比定义。我如何定义黄色的范围?
这是我一直在跟踪的the colorspaces tutorial。
上面提到的博客中有一些建议,但并没有给我给予想要的输出。
6条答案
按热度按时间hi3rlvi21#
很简单,你可以用函数
cv2.cvtColor()
。而不是传递一个图像,你只是传递你想要转换为HSV的BGR值。
例如,要查找 * 绿色 * 的HSV值,请键入以下命令
现在,* 上限 * 将为
[H+10, 100,100]
上限为
[H-10, 255, 255]
Official documentation(参见以下网页的最后一部分)
rlcwz9us2#
看看this page。你会发现你想要的颜色的HSV值。
对于HSV,* 色调 * 范围为[0,179],饱和度范围为[0,255],数值范围为[0,255]。不同的软件使用不同的比例。因此,如果您要将OpenCV值与它们进行比较,则需要将这些范围归一化。
我猜你正在搜索下面的黄色值:
xam8gpfp3#
您可以使用此示例调色板。第一个值是上限,第二个值是下限
isr3a4wc4#
颜色范围
积分:
Ali Hashemian
如何使用OPENCV从图像中删除颜色
因为你们中的大多数人都想这样做,即在我的情况下,任务是从图像中删除蓝色,我使用以下代码,从我的图像中删除蓝色墨水印章和蓝色刻度标记,以便使用Tesseract进行正确的OCR。
[颜色去除]代码
BEFORE [原图]
蓝标提取
最终镜像
在这里,你可以看到所有的刻度线几乎都被删除了,原因是因为总有改进的空间,但这似乎是我们能得到的最好的结果,因为即使删除这些小标记也不会对使用Tesseract的OCR产生深远的影响。
希望能帮上忙!
lymgl2op5#
如果我想这样做,首先找到黄色的RGB数字(我在油漆中使用'编辑颜色'),然后用这个方法将它们更改为HSV:
lqfhib0f6#
如果你用相机拍照,这将取决于光照条件。如果你的目标是跟踪一些物体,你应该总是更新你的HSV值。我的建议是在你的光照条件下保持你的边界尽可能窄。