我最近开始在图像处理领域开发一个小的业余程序,我在图像处理方面有点新手,但我试图弄清楚它的至少一些方面。
我希望能够做到的是通过颜色区分图像中的物体(最好是在实时视频馈送中),然后识别它们的颜色。
我读了一些关于OpenCV和一些不同的算法。我甚至开始使用canny算法,但我不确定这是我应该开始使用的算法,因为它检测物体的边缘,而不管它们的颜色。
即使这是我应该使用的算法,什么是最好的方法来识别它为我标记的物体的颜色?
我希望我说得够清楚了。
非常感谢!
了解色彩空间- RGB几乎总是最糟糕的图像处理源。
从HSL和HSV开始要分离或使颜色透明(例如删除它)是非常简单的OpenCV…我发布了一个答案(见下面的链接),它应该可以帮助你(或者可能解决你的问题)。
这是我发布的代码
- 此外,Martin Beckett的答案是绝对正确的,RGB不是一个很好的色彩空间来评估颜色,你可以使用HSV,色调值在程度上告诉你适当的颜色(你可以从光谱中的波长进行比较),而S和V代码一种强度(我说的是为了解释在许多情况下使用hue来分割颜色图像是足够的)。
即使它是我应该使用的算法,什么是最好的用什么方法来识别它为我标记的物体的颜色?
- 您正在搜索的算法类型称为颜色分割…这里有一个教程,可以帮助你。
欢迎来到图像处理社区,
朱利安,对于初学者,您应该学习图像数组操作,例如使用OpenCV函数inRange按最小到最大颜色范围过滤颜色。另一种选择是将多通道阵列(在本例中为R, G和B)拆分为3个不同的单通道,以便进一步检查。希望能有所帮助