algorithm - 如果一个物体是一个圆,你需要知道的最少信息是多少?
问题描述
所以基本上我有一个程序可以遍历对象的图像,并且应该计算圆圈的数量。我可以或多或少准确地检测所有对象并存储每个对象的以下结果:区域(像素数)、xPosition、YPosition 等边界。
我尝试通过假设每个对象都是一个圆来区分圆和非圆,找到半径并使用 pi*r^2 来获取面积。如果该区域与像素数匹配,则它是一个圆圈。
然而,这会导致一些错误。例如,当一个物体占据与圆形相同的区域时,它会但不是圆形。
关于我可以尝试什么的任何想法?它在嘈杂的情况下也失败了,因为我的算法不保存黑暗的像素(这被视为像背景一样)
编辑:我不能使用任何已经建立的算法,例如休变换
解决方案
理论上,只有圆的周长等于 2π 乘以(填充)面积的平方根。但是您需要对周长进行准确评估。
或者,通过任何方法*找到圆参数(中心和半径的坐标),并检查轮廓的像素是否满足圆方程(计算平均偏差)。
*如果形状不是圆形,这些参数将具有“随机”值,但这并不重要。
推荐阅读
- javascript - Flask,Ajax,获取 ajax url 的 url 值
- php - 如何用php中的模式替换所有出现的字符串开始和结束
- python-3.x - VS CODE 中没有终端输出
- mysql - 在满足其他条件后,MySQL SELECT 具有条件的最小行 ID
- c++ - Qt:无法直接将滚动条添加到有孩子的小部件
- java - java蚂蚁应用程序。linux下无法编译
- python - 当从 ODE 求解器调用非线性方程求解器时,fsolve 不匹配形状错误
- javascript - 我想将数据发送到本地服务器
- c# - ghost doc 生成的 C# xml 文档中的括号是什么意思?
- python - 使用 make_scorer 创建 True Positives 指标