opencv - 检测相同颜色的多个矩形并获取其坐标

时间:2015-11-10 14:44:10

标签: opencv object-recognition

我需要检测白色矩形并在相机输入上获取它们的坐标:

enter image description here

我一直在阅读,我想我需要放一个hsv过滤器,然后对输入应用阈值。但是,对于跟踪部分,我读了三种方法:fincontours,houghline和cvblob。但我不确定哪一种对于这种具有相同颜色的均匀物体是最好/最简单的。具体来说,我需要知道边界的坐标,因为我需要知道另一个对象是否位于其中一条线(以及哪一条线)内或两条中间。任何建议表示赞赏。

编辑:

相机将只是街道的顶部,所以在应用程序中它们将是矩形。我只是没有在谷歌中找到这样的图像。

1 个答案:

答案 0 :(得分:1)

正如@Miki所说,那些不是矩形。它们是受透视变换影响的矩形。您应该寻找四边形检测。如果您希望它是通用目的,这不是一件容易的事。

修改

根据您的编辑,要检测图像中的矩形,您需要进行一些其他测量。因为应用矩形检测算法会在您的情况下导致许多误报。

矩形检测:

  1. 应用Canny或任何其他边缘检测。
  2. 申请hough-line。
  3. 找出它们之间的角度为90度(或接近90 + -5)的线对。
  4. 查找一起表示矩形的对。你可能依赖于线的方向相反并且它们的角度相对于屏幕角相同并不是那么难。
  5. 隔离所需的矩形:

    你会得到许多误报。所以,你需要过滤它们。根据您提供的少量信息,很难说如何过滤它们。但颜色应该很好。只需删除不适合的颜色的矩形。

    你们很多人也依赖于矩形的对齐方式..你们可以隔离那些与其他矩形没有垂直对齐的矩形