IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于 PCL/Cloud compare/CGAL 的双边滤波环境配置,代码实现及结果分析 -> 正文阅读

[人工智能]基于 PCL/Cloud compare/CGAL 的双边滤波环境配置,代码实现及结果分析

0.双边滤波算法原理:通过取邻近采样点的加权平均,沿点的法矢方向修正当前采样点的位置。双边滤波的权重不仅考虑了点云间的距离,还考虑了邻域点在原点切平面上投影点到原点的距离=双边滤波不会减少点云数量,会影响点云位置、法线方向
1.基于PCL的双边滤波:需要点云有强度字段I,对点云数量、位置、法线方向没有任何影响,只改变强度信息
2.基于Cloud compare的双边滤波:同样需要点云有强度字段I,对点云数量、位置、法线方向没有任何影响,只改变强度信息
基于PCL/Cloud compare的双边滤波,需要点云有强度字段I,对点云数量、位置、法线方向没有任何影响,只改变强度信息
3.基于CGAL的双边滤波:基于CGAL的双边滤波需要点云格式为PointNormal,PointNormal即XYZ字段+Normal字段,可以改变点云数量、位置、法线方向,可以实现双边滤波的目标效果

一. 基于PCL的双边滤波

pcl::BilateralFilter < pcl::PointXYZI>基于pcl的双边滤波需要点云的强度字段I,。现有的points类型中,只有PointXYZI和PointXYZINormal有强度信息。这里使用有强度信息的点云模型数据集:kitti

1.代码实现

pcl双边滤波代码实现
pcl双边滤波参数说明

2.结果分析

两窗口对比显示基于pcl库的双边滤波处理前后点云位置法向量变化,可以发现 使用pcl库双边滤波对点云数量、位置、法线方向没有任何影响!
在这里插入图片描述
打开滤波前后的pcd文件,发现 pcl库双边滤波只改变了强度信息!
在这里插入图片描述
说明:pcl无法实现双边滤波的目标效果,对点云数量、位置、法线方向没有任何影响,只改变强度信息

二. 基于Cloud compare的双边滤波

1.操作实现

Cloud compare双边滤波操作实现

2.结果分析

(1)没有强度信息的点云无法点击Cloud compare的双边滤波
基于Cloud compare的双边滤波,需要点云有强度字段I
(2)两窗口对比显示Cloud compare双边滤波前后的点云位置,发现无变化
(3)Cloud compare双边滤波前后保存文件在pcl上计算法线并显示无区别,结果图省略
使用Cloud compare双边滤波对点云数量、位置、法线方向没有任何影响! 以强度信息作为颜色属性,可以发现双边滤波前后,颜色有变化(截图不明显,运行时很明显),发现 Cloud compare双边滤波只改变了强度信息!
在这里插入图片描述
说明: 基于Cloud compare的双边滤波,需要点云有强度字段I,对点云数量、位置、法线方向没有任何影响,只改变强度信息

三. 基于CGAL的双边滤波

1.配置实现

Windows编译安装CGAL
Win 10 + VS 2017 + Qt +CGAL+Boost+CMake+Eigen

2.代码实现

CGAL有双边滤波的示例代码,位置在 :\CGAL\examples\Point_set_processing_3,
运行CGAL的双边滤波的示例代码,发现基于CGAL的双边滤波可以改变点云数量、位置、法线方向,可以实现双边滤波的目标效果
在这里插入图片描述

3.格式问题:PointXYZ如何转换为PointNormal

观察示例代码的输入文件为 sphere_20k_normal.xyz
点云格式为PointNormal : x y z normal_x normal_y normal_z
在这里插入图片描述

大多数点云为PointXYZ格式,试改变示例代码,将输入文件路径改为目标文件(PointXYZ格式),代码运行时间变长,滤波后文件字段都是nan(Not a Number,非数,是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值),说明CGAL的双边滤波代码中输入文件格式必须为PointNormal
在这里插入图片描述

4.问题解决

思路:计算Normal并保存+基于pcl库合并XYZ和Normal字段
步骤1:Normal计算显示并保存
步骤2:基于pcl库合并XYZ和Normal字段
步骤3:将输入文件路径改为目标文件(新合成的PointNormal格式),运行双边滤波代码
在这里插入图片描述
说明:1.CGAL的双边滤波代码中输入文件格式必须为PointNormal
2.基于CGAL的双边滤波可以改变点云数量、位置、法线方向,可以实现双边滤波的目标效果

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:37:27  更:2021-11-30 15:38:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:28:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码