我是 OpenCV 的新手,想知道是否有人可以指导我使用最合适的算法来解决识别如下所示的图像中圆圈和十字的位置的挑战。 .
[
有时会有线路连接。 .
它们甚至可能像这幅一样是手绘的。 .
到目前为止,我已经查看了模板匹配示例,但它可能不是正确的方法,并且它不会将模板的大小缩放到图像。
因此给出以下观察结果。 . .
- 十字和圆圈可以重叠。
- 如果图表是彩色的, 十字的颜色相同,圆圈的颜色相同。
- 有时它们会用线连接,有时则不会。
- 图中可能有其他形状符号
- 它们的符号大小和形状相似,但可能不是计算机生成的,因此不一定完全相同。
我应该从哪里开始我的冒险?
最佳答案
这不是一件容易的事。
对于彩色情况,您应该从分离颜色平面开始。您有可能将标记分开。
但对于黑白情况,无路可逃,必须深入。
我会先尝试尽可能准确地检测网格线,例如使用霍夫线检测器。然后删除这些线条。
然后尝试找到十字,这是短的斜线段(大部分时间被前面的操作打断)。
这些圆可能会被霍夫圆检测器检测到,使用小范围的半径。
或者,可以使用脊线或边缘检测器来获取短线段和短曲线弧。您可能必须添加一些过滤条件以避免连接线。
关于c++ - 检测图像中圆圈和十字的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40003500/