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

标签 opencv object-recognition

我需要检测白色矩形并在摄像头输入上获取它们的坐标,如下所示:

enter image description here

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

编辑:

相机将位于街道的顶端,因此在应用程序中它们将是矩形。我只是没有在谷歌中找到这样的图片。

最佳答案

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

编辑:

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

矩形检测:

  1. 应用 Canny 或任何其他边缘检测。
  2. 应用霍夫线。
  3. 找到成对的线,它们之间的角度为 90 度(或几乎 90 +-5)。
  4. 找到共同代表一个矩形的对。这并不难,您可能取决于线条的方向是相反的,并且它们相对于屏幕角的角度相同。

隔离需要的矩形:

你会得到很多误报。所以,你需要过滤它们。从您提供的信息很少,很难说出如何过滤它们。但是颜色应该可以正常工作。只需删除具有不需要的颜色的矩形即可。

许多人还依赖于矩形的对齐方式。您可以隔离与其他矩形不垂直对齐的矩形

关于opencv - 检测多个相同颜色的矩形并获取它们的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632647/

相关文章:

python-2.7 - 在 MS Windows 上找不到 image_window Dlib Python 包

opencv - ORB - 物体需要非常靠近相机

c++ - 如何在 OpenCV 64FC1 矩阵中设置值

android - 从源代码构建 OpenCV4Android 不输出 libopencv_java.so

algorithm - 打开 Find CornerSubPix 算法

opencv - OpenCV中的对象跟踪

c++ - Xcode (4.3.2) 与从端口安装的 openCV (2.3.1) 出现问题

C# 点云匹配 (Visual studio 2013)

opencv - 图像中的目标检测