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