首页 > 解决方案 > 如果一个物体是一个圆,你需要知道的最少信息是多少?

问题描述

所以基本上我有一个程序可以遍历对象的图像,并且应该计算圆圈的数量。我可以或多或少准确地检测所有对象并存储每个对象的以下结果:区域(像素数)、xPosition、YPosition 等边界。

我尝试通过假设每个对象都是一个圆来区分圆和非圆,找到半径并使用 pi*r^2 来获取面积。如果该区域与像素数匹配,则它是一个圆圈。

然而,这会导致一些错误。例如,当一个物体占据与圆形相同的区域时,它会但不是圆形。

关于我可以尝试什么的任何想法?它在嘈杂的情况下也失败了,因为我的算法不保存黑暗的像素(这被视为像背景一样)

编辑:我不能使用任何已经建立的算法,例如休变换

标签: algorithmdata-structurescomputer-visionobject-detection

解决方案


理论上,只有圆的周长等于 2π 乘以(填充)面积的平方根。但是您需要对周长进行准确评估。

或者,通过任何方法*找到圆参数(中心和半径的坐标),并检查轮廓的像素是否满足圆方程(计算平均偏差)。

*如果形状不是圆形,这些参数将具有“随机”值,但这并不重要。


推荐阅读