当前位置: 首页 > news >正文

鲁棒最小二乘法 拟合圆

​​​​​​​​​​​​​​圆拟合算法_基于huber加权的拟合圆算法-CSDN博客

首次拟合圆得到采用的上述blog中的 Kåsa Fit 方法。

该方法存在干扰点时,拟合得到的结果会被干扰。

首次拟合圆的方法

因此需要针对外点增加权重因子,经过多次迭代后,即可得到相对理想的结果。实验结果如下:

code 链接:

​​​​​​​https://download.csdn.net/download/lipeng19930407/88648546

int main()
{float CenterX = 100;float CenterY = 100;float Radius = 30;Mat Image(Size(200, 200), CV_8UC3, Scalar(0, 0, 0));// 生成符合要求的点float dTheta = 2 * 3.1415926 / 30;vector<Point> vecP;for (size_t i = 0; i < 30; i++){int x = CenterX + Radius * cos(i * dTheta) + rand() % 3;int y = CenterY + Radius * sin(i * dTheta) + rand() % 4;vecP.push_back(Point(x, y));}dTheta = 2 * 3.1415926 / 360;for (size_t i = 0; i < 360; i++){int x = 110 + 25 * cos(i * dTheta);int y = 120 + 25 * sin(i * dTheta);vecP.push_back(Point(x, y));}std::random_shuffle(vecP.begin(), vecP.end());circleFittingIRLS(vecP, 5, CenterX, CenterY, Radius);circle(Image, Point(int(CenterX), int(CenterY)), int(Radius), Scalar(50, 250, 250), 1);for (size_t i = 0; i < vecP.size(); i++){Image.at<Vec3b>(vecP[i].y, vecP[i].x)[0] = 150;Image.at<Vec3b>(vecP[i].y, vecP[i].x)[1] = 150;Image.at<Vec3b>(vecP[i].y, vecP[i].x)[2] = 150;}return 0;
}

基于opencv实现的拟合算法,上图绘制时,将圆心位置取整后绘制的示意图,因此存在一定偏差。

权重迭代 最小二乘法 IRLS 

参考下面blog:

迭代重加权最小二乘(IRLS)算法-CSDN博客

早看到这个就不写这个blog 了

Iterative Reweighted Least Squares(IRLS)_irls算法-CSDN博客

http://www.lryc.cn/news/268402.html

相关文章:

  • LeetCode——动态规划
  • opencv和gdal的读写图片波段顺序问题
  • PyQt 打包成exe文件
  • 【Web2D/3D】SVG(第二篇)
  • leetcode18. 四数之和
  • (十八)Flask之threaing.local()对象
  • ffmpeg 硬件解码零拷贝unity 播放
  • 高德地图_公共交通路径规划API,获取两地点之间的驾车里程和时间
  • PyTorch深度学习实战(28)——对抗攻击(Adversarial Attack)
  • MariaDB单机多实例的配置方法
  • 加强->servlet->tomcat
  • Python初学者必须吃透的69个内置函数!
  • Day73力扣打卡
  • Android原生实现分段选择
  • 在 Unity 中获取 Object 对象的编辑器对象
  • idea自动注释
  • 阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
  • 如何在无公网IP环境使用Windows远程桌面Ubuntu
  • Python——yolov8识别车牌2.0
  • Cookie的详解使用(创建,获取,销毁)
  • shell脚本自动化部署Zabbix4.2(修改脚本替换版本)
  • java SSM课程平台系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • k8s二进制最终部署(网络 负载均衡和master高可用)
  • 【51单片机系列】DS1302时钟模块
  • 深入理解C语言中冒泡排序(优化)
  • 低代码选型注意事项
  • Caffeine--缓存组件
  • Centos7:Jenkins+gitlab+node项目启动(1)
  • starrocks集群fe/be节点进程守护脚本
  • 奇富科技跻身国际AI学术顶级会议ICASSP 2024,AI智能感知能力迈入新纪元