3

我有两个使用 Open-CV 处理的图像处理问题。

  1. 识别彼此不同颜色的相似物体。
  2. 识别彼此不同大小的相似颜色对象。

场景 1 和 2 的示例图像;

1

不同颜色

2

大小不一

两幅图像都具有三种类型的感兴趣对象。(三种颜色或尺寸)

我遇到的技术包括阈值化,然后使用带有像素计数的腐蚀,使用 RGB 值进行颜色分割。

什么是好的工作链,什么是好的起点?

4

3 回答 3

7

对于颜色分割,您应该远离 RGB,因为相似的颜色不是线性相关的。

例如,2 种相似的颜色(具有相同的色调)可能具有非常不同的 RGB 值:

相同的色调和非常不同的 RGB 值

最好使用颜色空间,如 LUV 或 HSV,它们已将颜色与亮度分开。例如,您可以尝试对 LUV 的 U、V 分量进行聚类算法。

于 2012-06-14T12:22:13.950 回答
2

看看cvBlob,它工作得很好,可以处理复杂的形状。

于 2012-06-12T22:14:17.877 回答
2
  1. 显然,使用 RGB 值可能是从这里开始的最佳方式。使用函数 cvSplit,它将为您提供三个分离的计划 B、G 和 R(使用 OpenCV 的 BGR 顺序,而不是 RGB)。在每一个中,您应该只看到相应颜色的圆圈。

  2. 我建议在这里首先使用 Canny 算法执行边缘检测,通过函数 cvCanny 在 OpenCV 中实现,然后使用 Hough 算法进行圆检测,也在 OpenCV 中实现。如果我没记错的话,霍夫圆的 OpenCV 函数会返回圆属性(半径...),这将允许您根据圆的大小来识别圆。2. 的另一个选项是使用形态学的 Hit&Miss 算法。我从来没有在 OpenCV 中使用过形态学,只在 Matlab 中使用过。

玩得开心

于 2012-06-13T02:19:12.853 回答