matlab - 如何使用轮廓线的长度和宽度来确定轮廓线是圆形还是非圆形?
问题描述
在获取轮廓数据后,如何确定来自轮廓函数的轮廓线是否为圆形。
有没有办法计算轮廓线的长度和宽度,如果它更接近 1,它的比率会更圆。
解决方案
正如@Anthony 建议的那样,您可以使用一些圆拟合算法,例如Kasa's algorithm,它非常容易实现。
取x
和y
作为两列向量输入:
a=[x y ones(size(x))]\-(x.^2+y.^2);
centre_x = -.5*a(1);
centre_y = -.5*a(2);
radius = sqrt((a(1)^2+a(2)^2)/4-a(3));
在 Matlab 中,您可以\
用来求解线性方程组。如果您不熟悉它,请检查它。
推荐阅读
- c# - 在 Asp.Net core 3 的控制器中查看未找到操作
- javascript - 增量和减量如何在 Javascript 中工作
- java - 如何使用 POSTMAN JSON 发布“日期”?
- c++ - 'int a' 的声明隐藏了一个参数
- java - 如何防止 JFrame 中的形状在调整窗口大小后消失
- java - 检查数组是否包含具有递归和某些限制的 int
- php - Laravel Eloquent 中的多表继承
- angular - Angular 8 beforeunload 事件事件在关闭选项卡上不起作用
- python - 使用 Python 的 Format Specification Mini-Language 打印带变量的空格
- php - 为什么日期函数返回错误的星期 d?