我正在用 Matlab 编写一个程序来检测一个圆圈。
我已经设法检测出正方形、矩形和三角形等形状,基本上是通过搜索角,并根据它们之间的距离确定它是什么形状。图像是黑白的,黑色是背景,白色是形状,所以为了找到角落,我只需要搜索图像中的每个像素,直到找到一个白色像素。
但是我只是不知道如何识别圆圈。
这是一个圆形输入的示例:
我正在用 Matlab 编写一个程序来检测一个圆圈。
我已经设法检测出正方形、矩形和三角形等形状,基本上是通过搜索角,并根据它们之间的距离确定它是什么形状。图像是黑白的,黑色是背景,白色是形状,所以为了找到角落,我只需要搜索图像中的每个像素,直到找到一个白色像素。
但是我只是不知道如何识别圆圈。
这是一个圆形输入的示例:
如果没有更多信息,很难说最好的方法是什么:例如,是否可能存在多个圆,它是否始终在图像中居中,以及算法需要对失真有多大的弹性。此外,您是否需要确定形状的位置和尺寸,或者只是“是”/“否”输出。
然而,假设只有一个圆圈,一个非常简单的方法如下: