CloudCompare——点云空间圆拟合

目录

  • 1.概述
  • 2.软件实现
  • 3.完整操作
  • 4.算法源码
  • 5.相关代码

在这里插入图片描述

本文由CSDN点云侠原创,CloudCompare——点云空间圆拟合,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。

1.概述

   CloudCompare软件中的'Tools——>Fit——>Circle功能可以实现点云的空间圆拟合。

2.软件实现

1. 首先选中点云
在这里插入图片描述

2. 拟合功能
在这里插入图片描述

3. 拟合结果
白色的线为拟合出来的空间圆模型
在这里插入图片描述

4. 拟合参数
在这里插入图片描述

5. 修改拟合圆的颜色
选中拟合的空间圆模型使用Edit中的Colors功能即可对拟合结果进行颜色修改。
在这里插入图片描述

3.完整操作

在这里插入图片描述

4.算法源码

void MainWindow::doActionFitCircle()
{ccProgressDialog pDlg(true, this);pDlg.setAutoClose(false);for (ccHObject* entity : getSelectedEntities()){ccPointCloud* cloud = ccHObjectCaster::ToPointCloud(entity);if (!cloud)continue;CCVector3 center;CCVector3 normal;PointCoordinateType radius = 0;double rms = std::numeric_limits<double>::quiet_NaN();if (CCCoreLib::GeometricalAnalysisTools::DetectCircle(	cloud,center,normal,radius,rms,&pDlg) != CCCoreLib::GeometricalAnalysisTools::NoError){ccLog::Warning(tr("[Fit circle] Failed to fit a circle on cloud '%1'").arg(cloud->getName()));continue;}ccLog::Print(tr("[Fit circle] Cloud '%1': center (%2,%3,%4) - radius = %5 [RMS = %6]").arg(cloud->getName()).arg(center.x).arg(center.y).arg(center.z).arg(radius).arg(rms));ccLog::Print(tr("[Fit circle] Normal (%1,%2,%3)").arg(normal.x).arg(normal.y).arg(normal.z));// create the circle representation as a polylineccPolyline* circle = ccPolyline::Circle(CCVector3(0, 0, 0), radius, 128);if (circle){circle->setName(QObject::tr("Circle r=%1").arg(radius));cloud->addChild(circle);circle->prepareDisplayForRefresh();circle->copyGlobalShiftAndScale(*cloud);circle->setMetaData("RMS", rms);ccGLMatrix trans = ccGLMatrix::FromToRotation(CCVector3(0, 0, 1), normal);trans.setTranslation(center);circle->applyGLTransformation_recursive(&trans);addToDB(circle, false, false, false);}}refreshAll();
}

5.相关代码

  • PCL RANSAC拟合空间圆
  • PCL RANSAC分割提取多个空间圆
  • Open3D——RANSAC拟合空间圆
  • Open3D 进阶(20)附有限制条件的间接平差拟合空间圆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/336905.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索AI技术的奥秘:揭秘人工智能的核心原理

目录 前言 学习AI要看的第一本书 人工智能应当以人为本 史蒂芬卢奇&#xff08;Stephen Lucci&#xff09; 萨尔汗M穆萨&#xff08;Sarhan M . Musa&#xff09; 丹尼科佩克&#xff08;Danny Kopec&#xff09;&#xff08;已故&#xff09; 通晓六点&#xff0c;明白…

webpack魔法注释-预获取/预加载模块

Webpack v4.6.0 增加了对预获取&#xff08;prefetch&#xff09;和预加载&#xff08;preload&#xff09;的支持。 在声明 import 时&#xff0c;使用下面这些内置指令&#xff0c;可以让 webpack 输出“resource hint”&#xff0c;来告知浏览器&#xff1a; prefetch&…

ABAP 工单状态读取

CDS代码 CDS代码如下&#xff0c;可自行转换成OPEN SQL代码 AbapCatalog.sqlViewName: ZPPV024 AbapCatalog.compiler.compareFilter: true AbapCatalog.preserveKey: true AccessControl.authorizationCheck: #NOT_REQUIRED EndUserText.label: 读取生产工单状态 define vie…

【音视频】海康的音频没有的问题

目录 海康的错误 参考文章 海康的错误 参考文章 PS流详解&#xff08;载荷H264&#xff09;-CSDN博客 海康摄像头PS流格式解析&#xff08;RTP/PS/H264&#xff09; RTP协议全解析&#xff08;H264码流和PS流&#xff09;-CSDN博客

鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

C++上位软件通过Snap7开源库访问西门子S7-200/LOGO PLC/合信M226ES PLC V存储区的方法

前言 在前面例程中谈到了C 通过Snap7开源库S7通信库跟西门子S7-1200PLC/S7-1500PLC以及合信CTMC M226ES PLC/CPU226 PLC通信的方式方法和应用例程。但是遗憾的是Snap7中根据官方资料显示只能访问PLC的 DB区、MB区、C区、T区 、I区、Q区&#xff0c;并没有提到有关如何访问S7-20…

C++:多态|虚函数、虚表底层原理|多态原理

C&#xff1a;多态|虚函数、虚表底层原理|多态原理 前言一、多态的概念二、多态的定义及实现2.1 多态的构成条件2. 2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的例外1&#xff1a;协变(基类与派生类虚函数返回值类型不同)2.3.2 虚函数重写的例外2&#xff1a;析构函数的重写(基…

Elasticsearch windows开箱即用【记录】

一、准备工作 安装ES之前要在本机安装好JDK&#xff0c;对应的兼容性见官网链接&#xff1a;https://www.elastic.co/cn/support/matrix ES官网链接&#xff1a;https://www.elastic.co/cn/, 我本机安装的是JDK8&#xff0c;测试使用的是7.3.0版本的ES和Kibana。 1、首先去…

CMake入门教程【核心篇】设置和使用缓存变量

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 概述设置缓存变量使用缓存变量更改缓存变量完整代码示例实战使用技巧注意事项总结与分析

基于宝塔搭建Discuz!论坛

一、安装宝塔 我是在我的虚拟机上安装图的宝塔 虚拟机版本&#xff1a;Ubuntu 18.04 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 6dca892c安装完成之后在浏览器输入你的地址 https://你的域名&#xff08;或…

sql将查询出的数值变为中文

在开发中通常会遇到的情况就是&#xff0c;用户的性别在数据库中不是以中文字符“男&#xff0c;女”来表示的&#xff0c;而是使用数字 1 0 来表示。但是显示到界面的时候&#xff0c;如果显示 1 0 用户也不明白是什么意思&#xff0c;就需要将其转为原有的意思。当然方法…

Vue-10、Vue键盘事件

1、vue中常见的按键别名 回车 ---------enter <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>键盘事件</title><!--引入vue--><script type"text/javascript" src"h…