3D点云处理:学习总结(更新整理中)
文章目录
- 开发工具
- 个人看法
微信:dhlddx
B站演示视频
前置说明:仅是个人在使用pcl开发过程中的总结(点云处理顺序或比较实用的功能),不喜勿喷;
开发工具
- 开发IDE:Qt Creator(Windows)
- 开发语言:C++
- 第三方库:PCL\Opencv等;
有关PCL和Opencv的配置可参考其他博主,这里不在叙述;
个人看法
如果有小伙伴使用过Opencv开发2D视觉算法的经验,应该了解Opencv提供的接口并不能完全实现我们工业视觉中遇见的场景,大部分可能是作为辅助;同样,PCL作为3D视觉的第三方库,在开发有关3D视觉的算法时也只是辅助,在工业3D视觉中大的开发内容,PCL内部的一些接口仅是辅助作用。
- 如果刚接触PCL,那么您可能需要了解一下在PCL中如何表示一个三维数据点,以及如何加载和保存点云
- 3D点云处理:PCL常用数据类型及IO说明
- 当加载了点云后,我们可能很好奇点云是什么状态,这时候,您可以通过下面的方法查看我们加载的点云:
- 3D点云处理:显示点云
- 显示不同的颜色;
- 显示点云的法向量;
- 显示点云的位姿等;
- 3D点云处理:显示点云
- 到此时,我们已经完成了最基本的点云加载和显示,这时候,我们可以像处理2D图像一样,通过pcl对点云进行一些简单的滤波操作(滤除噪声);如:直通滤波、高斯滤波、双边滤波、快速双边滤波、统计滤波、条件滤波、半径滤波、中值滤波等;
- 3D点云处理:直通滤波器&高斯滤波器
- 3D点云处理:双边滤波器&快速双边滤波器(附源码)
- 3D点云处理:统计滤波器&条件滤波器(附源码)
- 3D点云处理:半径滤波器&中值滤波器
项目中实际使用(至少对我来说)最多的还是“统计滤波器”;以及“法向滤波器”:3D点云处理:基于点云法向的点云滤波
另外“条件滤波器”可以演化为3D ROI(如2D ROI)提取感兴趣的点云(提速);
-
由于三维数据相对二维数据的数据量大,处理起来比较耗时,因此,需要适时的对点云进行一些预处理降低点云数量,如上述的滤波,以及此处的预处理:降采样(体素滤波器、均匀降采样等) + 感兴趣区域(上述的“条件滤波器”)
- 3D点云处理:基于八叉树的点云降采样
- 3D点云处理:体素滤波&均匀采样
- 上述PCL提供的方法中,存在的弊端是:降采样后的点与实际的点不在重合,因此,对其进行了优化,保证降采样后的点与原始点保持重合;如下:
- 3D点云处理:体素滤波器&均匀采样优化
相关文章:

3D点云处理:学习总结(更新整理中)
文章目录 开发工具个人看法 微信:dhlddx B站演示视频 前置说明:仅是个人在使用pcl开发过程中的总结(点云处理顺序或比较实用的功能),不喜勿喷; 开发工具 开发IDE:Qt Creator(Windo…...

Day45|leetcode 70. 爬楼梯、322. 零钱兑换、279.完全平方数
leetcode 70. 爬楼梯 题目链接:70. 爬楼梯 - 力扣(LeetCode) 本题可以用背包问题来解决,就相当于楼顶是背包,台阶是物品,相当于之前写法的进阶版。 代码实现 class Solution { public:int climbStairs(in…...

arm:day9
1。思维导图 2..I2C实验,检测温度和湿度 iic.h #ifndef __IIC_H__ #define __IIC_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "gpio.h" /* 通过程序模拟实现I2C总线的时序和协议* GPIOF ---> AHB4…...

【大模型AIGC系列课程 1-2】创建并部署自己的ChatGPT机器人
OpenAI API 调用 获取 openai api api-key https://platform.openai.com/account/api-keys 利用 python requests 请求 openai 参考 openai 接口说明:https://platform.openai.com/docs/api-reference/chat/create import json # 导入json包 import requests # 导入req…...

启动metastore服务报错
启动Metastore的时候报错: 简略的报错信息: MetaException(message:Error creating transactional connection factory)Caused by: MetaException(message:Error creating transactional connection factory)Caused by: javax.jdo.JDOFatalInternalExce…...

c 语言 算法 技巧 之 用移位来代替乘除
除法 当你需要计算一个数的一半时,通常我们会考虑使用除法运算(/)来实现。然而,计算机内部的运算中,除法通常比加法和乘法运算慢得多,因为除法需要更多的处理步骤。 位运算在这种情况下可以提供一个快速的…...

python爬虫实战零基础(3)——某云音乐
爬取某些云网页音乐,无需app 分析网页第二种方式批量爬取 声明:仅供参考学习,参考,若有不足,欢迎指正 你是不是遇到过这种情况,在pc端上音乐无法下载,必须下载客户端才能下载? 那么&…...

渗透测试漏洞原理之---【XSS 跨站脚本攻击】
文章目录 1、跨站 脚本攻击1.1、漏洞描述1.2、漏洞原理1.3、漏洞危害1.4、漏洞验证1.5、漏洞分类1.5.1、反射性XSS1.5.2、存储型XSS1.5.3、DOM型XSS 2、XSS攻防2.1、XSS构造2.1.1、利用<>2.1.2、JavaScript伪协议2.1.3、时间响应 2.2、XSS变形方式2.2.1、大小写转换2.2.2…...

【浮点数二分】
数的三次方根 #include<iostream> using namespace std;double n;int main(){cin>>n;double l -10000;double r 10000;while((r-l)>1e-8){double mid (lr)/2;if((mid*mid*mid)>n) r mid;else l mid;}printf("%lf",l);return 0; }...

基于FPGA的FIR低通滤波器实现(附工程源码),matlab+vivado19.2+simulation
基于FPGA的FIR低通滤波器实现(附工程源码) 文章目录 基于FPGA的FIR低通滤波器实现(附工程源码)前言一、matlab设计FIR滤波器,生成正弦波1.设计FIR滤波器1.生成正弦波.coe 二、vivado1.fir滤波器IP核2.正弦波生成IP核3.时钟IP核设置4.顶层文件/测试文件代码 三.simul…...

c++ qt--事件(第六部分)
c qt–事件(第六部分) 一.编辑伙伴,编辑顺序(按TAB进行切换) 1.编辑伙伴 此功能在设计界面如下的位置 1.设置伙伴关系 鼠标左键长按一个Label组件然后把鼠标移到另一个组件上 2.伙伴关系的作用 伙伴关系的作用就是…...

嵌入式系统入门实战:探索基本概念和应用领域
嵌入式系统是一种专用的计算机系统,它是为了满足特定任务而设计的。这些系统通常具有较低的硬件资源(如处理器速度、内存容量和存储容量),但具有较高的可靠性和实时性。嵌入式系统广泛应用于各种领域,如家用电器、汽车、工业控制、医疗设备等。 嵌入式系统的基本概念 微控…...

关于hive sql进行调优的理解
这是一个面试经常面的问题,很不幸,在没有准备的时候,我面到了这个题目,反思了下,将这部分的内容进行总结,给大家一点分享。 hive其实是基于hadoop的数据库管理工具,底层是基于MapReduce实现的&a…...

十大排序算法
一、冒泡排序 冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访要排序的数列,一次比 较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经…...

PIP 常用操作汇总
1. 升级 python -m pip install --upgrade pip2. 列出所有安装包 pip list3. 查找特定包 pip list | findstr xxx4. 查看特定包 pip show xxx5. 安装软件包 pip install pyzmq24.0.16. 卸载软件包 pip uninstall -y pyzmq7. 查看配置 # 生效的配置(global -&…...

线性代数的本质笔记(3B1B课程)
文章目录 前言向量矩阵行列式线性方程非方阵点积叉积基变换特征向量与特征值抽象向量空间 前言 最近在复习线代,李永乐的基础课我刷了一下,感觉讲的不够透彻,和我当年学线代的感觉一样,就是不够形象。 比如,行列式为…...

快速掌握MQ消息中间件rabbitmq
快速掌握MQ消息中间件rabbitmq 目录概述需求: 设计思路实现思路分析1.video 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,c…...

Git push拦截
遇到的问题 今天想提交代码到gitee,结果发现被拦截了,有段提示“forbidden by xxxx”… 我记得xxxx好像是公司的一个防泄密的东西… 这个东西是怎么实现的呢? 解决 原来git提供很多hook,push命令就有一个pre-push的hook&#x…...

拼多多anti-token分析
前言:拼多多charles抓包分析发现跟商品相关的请求头里都带了一个anti-token的字段且每次都不一样,那么下面的操作就从分析anti-token开始了 1.jadx反编译直接搜索 选中跟http相关的类对这个方法进行打印堆栈 结合堆栈方法调用的情况找到具体anti-token是由拦截器类f…...

基于微信小程序的中医体质辨识文体活动的设计与实现(Java+spring boot+MySQL)
获取源码或者论文请私信博主 演示视频: 基于微信小程序的中医体质辨识文体活动的设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java s…...

4.16 TCP 协议有什么缺陷?
目录 升级 TCP 的工作很困难 TCP 建立连接的延迟 TCP 存在队头阻塞问题 网络迁移需要重新建立 TCP 连接 升级 TCP 的工作很困难;TCP 建立连接的延迟;TCP 存在队头阻塞问题;网络迁移需要重新建立 TCP 连接; 升级 TCP 的工作很…...

VMware 修改ip地址 虚拟机静态ip设置 centos动态ip修改为静态ip地址 centos静态ip地址 vmware修改ip地址
虚拟机的centos服务器经常变换ip,测试起来有些麻烦,故将动态ip修改为静态ip 1. 查看vmware 虚拟机网络配置: 点击编辑,打开虚拟网络配置 2. 选中nat模式,点击nat设置,最终获取网关ip: 192.168.164.2 3. 进…...

Deepin添加Ubuntu源
升级Deepin V23后,无法安装Zeal了,后面发现可以通过ubuntu源来安装。参考了以下两个文档。 添加Ubuntu源1 添加Ubuntu源2 1.添加ubuntu.list sudo vim /etc/apt/sources.list.d/ubuntu.list 2.添加中科大Ubuntu源 deb http://mirrors.ustc.edu.cn/…...

Mysql的多表查询和索引
MySQL 多表查询 当两个表查询时,从第一张表中取出一行和第二张表的每一行进行组合 返回结果含有两张表的所有列,一共返回的记录数第一张表行数*第二张表的行数(笛卡尔积) -- ?显示雇员名,雇员工资及所在部门的名字 【笛卡尔集…...

Java设计模式之建造者模式
建造者模式,又称生成器模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 三个角色:建造者、具体的建造者、监工、使用者 建造者角色:定义生成实例所需要的所有方法; 具体的建…...

H5商城公众号商城系统源码 积分兑换商城系统独立后台
网购商城系统源码 积分兑换商城系统源码 独立后台附教程 测试环境:NginxPHP7.0MySQL5.6thinkphp伪静态...

华为OD机试 - 完全数计算(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示六、纵览全局 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》。 刷的越多&…...

每日一学——Vlan配置
VLAN(Virtual Local Area Network)是虚拟局域网的缩写,它是一种将多台主机和网络设备逻辑上划分成不同的局域网的技术。VLAN的实施可以基于端口、MAC地址、协议等多种方式进行。 VLAN的主要功能包括: 分割网络:VLAN可…...

Pimpl模式
写在前面 Pimpl(Pointer to implementation,又称作“编译防火墙”) 是一种减少代码依赖和编译时间的C编程技巧,其基本思想是将一个外部可见类(visible class)的实现细节(一般是所有私有的非虚成员)放在一个单独的实现类(implemen…...

Python 密码破解指南:5~9
协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神,试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 五、凯…...