【发布时间】:2020-05-11 22:30:53
【问题描述】:
我想检测图像上用红色圈出的小方块。但问题是他们在另一条白线上。我想知道如何将这些正方形与白线分开并检测它们。
我使用 OpenCV Python 编写代码。到目前为止,我所做的是我裁剪了图像,以便我只能访问图像的圆形部分。然后我裁剪图像以获得所需的部分,即白线。然后我使用了腐蚀,这样白线就会消失,而方块会保留在图像中。然后使用霍夫圆来检测正方形。这确实适用于某些图像,但不能一概而论。请帮我找到一个通用的代码。让我知道逻辑和python代码。
还有谁能帮我检测图像上的 aruco 标记。它被拒绝了。我不知道为什么。 图片在此链接中。 Detect small squares on an image
【问题讨论】:
-
你可以在黑白图像上尝试 distanceTransform 并在那里找到局部最大值。
-
我是 OpenCV 的新手。你能告诉我一些关于距离变换的事情吗?就像它实际做的那样。
-
对于所有非黑色像素:计算到最近黑色像素的距离。
-
何为霍夫?在侵蚀之后,您已经检测到了正方形。为什么检测不够好?
-
这不是一个可行的解决方案,因为会在白线上放置一个机器人,这会使检测白圈变得更加困难。那么有什么方法可以将正方形与白线分开?
标签: python opencv image-processing opencv-contour opencv-python