【问题标题】:opencv - Detecting multiple rectangles of the same color and getting their coordinatesopencv - 检测多个相同颜色的矩形并获取它们的坐标
【发布时间】:2015-11-10 14:44:09
【问题描述】:
我需要检测白色矩形并在相机输入上获取它们的坐标,如下所示:
我一直在阅读,我认为我需要放置一个 hsv 过滤器,然后将阈值应用于输入。但是,对于跟踪部分,我读到了三种方法:fincontours、houghline 和 cvblob。但我不太确定对于这种具有相同颜色的统一对象来说,哪一个是最好的/最简单的。具体来说,我需要知道边界的坐标,因为我需要知道另一个对象是在其中一条线(以及在哪条线)内还是在两条线的中间。任何建议表示赞赏。
编辑:
相机将只是街道的顶部,因此在应用程序中它们将是矩形。我只是没有在 google 中找到这样的图像。
【问题讨论】:
标签:
opencv
object-recognition
【解决方案1】:
正如@Miki 所说,这些不是矩形。它们是受透视变换影响的矩形。您应该寻找四边形检测。如果您希望它是通用的,这不是一件容易的事。
编辑:
根据您的编辑,要检测图像中的矩形,您需要进行一些其他测量。因为在您的情况下应用矩形检测算法会导致许多误报。
矩形检测:
- 应用 Canny 或任何其他边缘检测。
- 应用霍夫线。
- 找到它们之间的角度为 90 度(或几乎 90 +-5)的线对。
- 找出共同代表一个矩形的对。这并不难,您可能取决于线条的方向是否相反,并且它们相对于屏幕角落的角度相同。
隔离所需的矩形:
你会得到很多误报。所以,你需要过滤它们。从您提供的少量信息中,很难说出如何过滤它们。但是颜色应该可以正常工作。只需删除颜色不理想的矩形即可。
很多人还依赖于矩形的对齐方式。您可以隔离与其他矩形不垂直对齐的矩形