![](https://img-blog.csdnimg.cn/20190619091656757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
点云库PCL学习
针对于
1.《点云库PCL教程》
2.《点云库PCL从入门到精通》
所进行的笔记
图灵小眼睛
专注深度学习与计算机视觉,包括(Opencv,PCL3D点云数据处理),QT。
展开
-
PCL点云库学习——点云分割案例解析
该案例主要包括(点云序列获取、滤波模块、平面检测及删除模块、聚类分割模块、运动分割模块、ICP配准模块、可视化模块)1.点云序列读取第三方库boost,实现同一个文件内所有pcd文件的读取std::vector<std::string> pcd_files_; //点云序列std::vector<boost::filesy...原创 2019-07-22 15:19:43 · 4955 阅读 · 4 评论 -
SICK激光扫描仪LMS511连接通讯
一、设备介绍:型号:LMS511-10100(DC 24v)品牌:SICK操作环境:Windows 10 64bit软件:SOPAS ET连接线:串口转网口线(1根/4针 子头),电源线(1根/5针 母头)软件/文档下载地址:https://www.sick.com/cn/zh/detection-and-ranging-solutions/2d-lidar-/lms5xx/lms5...原创 2019-07-18 15:36:09 · 4540 阅读 · 0 评论 -
点云库PCL学习——点云分割之最小图割
原理:将一幅图像中所用点之间的联系分为两种类型。n-links(各个像素点之间联系)和 t-links(各像素点与外部终端顶点的链接)。每个连接之间有权重,根据权重大小来判断如何分割。这个最小割把图的顶点划分为两个不相交的子集S和T,这两个子集就对应于图像的前景像素集合背景像素集。n-links具有潜在将相邻类似像素分类在一起且相邻差异较大的像素分割开的能力。t-links具有潜...原创 2019-07-16 15:28:21 · 1550 阅读 · 0 评论 -
使用深度学习的三维点云分类的介绍
在过去的这些年里,对二维图像已经有了大量深入的研究,并且有着长足的发展。它在分类任务上取得了极好的结果主要得益于一下两个关键因素:1.卷积神经网络。2.数据 - 大量图像数据可用。但是对于3D点云,数据正在迅速增长。大有从2D向3D发展的趋势,比如在opencv中就已经慢慢包含了3D点云的处理的相关模块,在数据方面点云的获取也是有多种渠道, 无论是源于CAD模型还是来自LiDAR传感器或RG...转载 2019-06-24 08:55:58 · 637 阅读 · 0 评论 -
如何不弹出vtkOutputWindow窗口
在使用VS+QT+VTK时,运行程序时会弹出vtkOutputWindow窗口,虽然不影响运行,但是对于强迫症来说看着很不舒服,下面解决方案是如何使其不弹出。我使用的是QtGUIApplication在main函数上方加入#include “vtkoutputwindow.h”在main函数第一行加入vtkOutputWindow::SetGlobalWarningDisplay(0);...原创 2019-06-05 10:41:26 · 5101 阅读 · 7 评论 -
QT creator使用VTK时遇到的一些问题
问题1:一系列的无法解析的外部符号。这个问题困扰了我一天,在网上寻找大多数说是删除、清空、重新编译,但是对我的不好使,终于找到了解决方法,也就是我的VS的附加依赖项少包含了几个库。主要是最下面的几个库,我把我的附加依赖项在这里做个备份。然后问题解决了,当然这不是QT creator中的解决方法,这个是吧我VS新建QT时,拖入QVTKwidget时,进行编译出现的无法解析的问题。在QT cre...原创 2019-04-02 18:21:34 · 1840 阅读 · 1 评论 -
点云库PCL学习——位姿估计
#include <Eigen/Core>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/common/time.h>#include <pcl/console/print.h>#include <pcl/features/nor...原创 2019-07-02 11:09:01 · 3784 阅读 · 8 评论 -
点云库PCL学习——ICP交互配准
经典的小猴子ICP配准:每次当用户按下space按键时,ICP配准将迭代用户设置的次数,显示器也随之更新最新的配准结果。#pragma warning(disable:4996)#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);VTK_MODULE_INIT(vtkInteractionStyle);...原创 2019-07-02 09:16:22 · 1832 阅读 · 0 评论 -
点云库pcl学习——ICP配准
随机生成一个点云作为源点云,并将其沿X轴平移后作为目标点云。#pragma warning(disable:4996)#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);VTK_MODULE_INIT(vtkInteractionStyle);#define BOOST_TYPEOF_EMULATION#i...原创 2019-06-26 16:15:38 · 1237 阅读 · 2 评论 -
点云库PCL学习——特征描述与提取(3)
一、点特征直方图描述子(PFH)计算方式通过参数化查询点与淋浴点之间的空间差异,并形成一个多维直方图对点的k邻域集合属性进行描述。以下代码段对输入数据集中所有点估计其对应的PFH特征。#include <pcl/point_types.h>#include <pcl/features/pfh.h> //PFHpcl::PointCloud<...原创 2019-06-25 09:28:33 · 1124 阅读 · 0 评论 -
点云库PCL学习——特征描述与提取(2)
法线估计实例详解~1、法线估计类NormalEstimation的实际计算调用程序内部执行以下操作。对点云P中的每个点p:(1)得到p点的最近邻元素。(2)计算p点的表面法线n。(3)检查n的方向是否一致指向视点,如果不是则翻转。#pragma warning(disable:4996)#include <vtkAutoInit.h>VTK_MODULE_...原创 2019-06-25 08:40:56 · 874 阅读 · 0 评论 -
点云库PCL学习——特征描述与提取(1)
点云的识别、分割、重采样、配准、曲面重建等处理的大部分算法,都严重依赖特征描述与提取的结果。特征向量所满足的条件:刚体变换——具有平移旋转不变性 改变采样密度——具有抗密度干扰性 噪音——对点云特征具有鲁棒性通常,PCL中特征向量利用K-d tree 查询。决定一个查询点的k邻域元素(K-搜索) 在半径r的范围内,确定一个查询点的所有邻元素(半径-搜索)输入点云调用习惯:...原创 2019-06-24 14:13:13 · 1784 阅读 · 0 评论 -
点云库PCL学习——如何使用随机采样一致性模型
针对于平面模型、圆球模型进行实例解析原创 2019-06-21 15:18:32 · 920 阅读 · 0 评论 -
点云库PCL学习——采样一致性
PCL中以随机采样一致性算法(RANSAC)为核心,同时实现了五种类似于采样一致性估计参数算法的随机参数估计算法。如:随机采样一致性估计(RANSAC)、最大似然一致性估计(MLESAC)、最小中值方差一致性估计(LMEDS)。应用:对点云进行分割。 点云的配准对的剔除。...原创 2019-06-21 11:24:49 · 656 阅读 · 0 评论 -
点云库PCL学习——多视图可视化
本文对PCL库中如何在一个窗口中显示多个点云图进行了探索。主要所有函数如下:viewer->createViewPort(double Xmin,double Ymin,double Xmax,double Ymax) createViewPort是用于创建新视口的函数,所需的4个参数分别是视口在X轴的最小值、最大值,Y轴的最小值、最大值,取值在0-1。 双视口举例:...原创 2019-06-20 16:49:34 · 1987 阅读 · 0 评论 -
点云库PCL学习——几种滤波方式
本章主要介绍几种PCL点云滤波方式:下采样均匀采样增采样原创 2019-06-20 16:15:32 · 3710 阅读 · 1 评论 -
点云库PCL学习——Harris关键点
本节将演示如何检测点云的3DHarris角点。Harris算子是常见的特征检测算子,既可以提取角点也可以提取边缘点。与2DHarris角点检测原理不同,3DHarris角点检测利用的是点云法向量的信息。首先介绍一下Harris算子所用到的类:HarrisKeyPoint2D类 pcl::HarrisKeypoint2D< PointInT, PointOutT, Intensi...原创 2019-06-20 10:27:02 · 4851 阅读 · 2 评论 -
点云库PCL学习——SIFT关键点
SIFT关键点SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),最初用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子,后来被引入3D点云领域用于关键点的检测。原创 2019-06-20 09:52:31 · 3357 阅读 · 1 评论 -
点云库PCL学习——NARF关键点
一、NARF(Normal Aligned Radial Feature)关键点是为了从深度图像中识别物体而提出的。 对NARF关键点的提取过程有以下要求:提取的过程考虑边缘以及物体表面变化信息在内; 在不同视角关键点可以被重复探测; 关键点所在位置有足够的支持区域,可以计算描述子和进行唯一的估计法向量。 其对应的探测步骤如下:遍历每个深度图像点,通...转载 2019-06-20 08:59:37 · 2438 阅读 · 0 评论 -
点云库PCL学习——关键点
关键点也称为兴趣点,它是2D图像或是3D点云或者曲面模型上,可以通过定义检测标准来获取的具有稳定性,区别性的点集,从技术上来说,关键点的数量相比于原始点云或图像的数据量减小很多,与局部特征描述子结合在一起,组成关键点描述子常用来形成原始数据的表示,而且不失代表性和描述性,从而加快了后续的识别,追踪等对数据的处理了速度,故而,关键点技术成为在2D和3D 信息处理中非常关键的技术。1.关键点提...原创 2019-06-19 16:44:40 · 919 阅读 · 0 评论 -
点云库PCL——点云转换为深度图
设置深度图像的宽度/高度 /光心坐标/焦距等,将从一个视点获取的点云转换为深度图。voidcreateFromPointCloudWithFixedSize (const PointCloudType &point_cloud, int di_width, int di_height, float di_center_x, float di_center_y, float ...原创 2019-06-19 16:22:00 · 6377 阅读 · 1 评论 -
点云库PCL学习——深度图像-从点云创建深度图像
此程序是生成一个矩形的点云,然后基于该点云创建深度图像 ,并显示点云和深度图:#include <pcl/range_image/range_image.h>#include <pcl/visualization/range_image_visualizer.h>#include <pcl/visualization/pcl_visualizer.h>#...原创 2019-06-19 14:08:44 · 1103 阅读 · 0 评论 -
点云库PCL学习——CropHull滤波器
CropHullCropHull滤波器得到2D封闭多边形内部或者外部的点云;pcl::CropHull< PointT >void setHullIndices (const std::vector< Vertices > &polygons)输入封闭多边形的顶点;void setHullCloud (PointCloudPtr points)输入封...转载 2019-06-19 08:57:18 · 1825 阅读 · 0 评论 -
点云库PCL学习——ConditionalRemoval和RadiusOutlierRemoval滤波
一、ConditionalRemoval滤波器它可以一次删除满足对输入的点云设定的一个或多个条件指标的所有数据点。下面例子,我们使用“z”轴方向上大于0.0和小于800这两个条件来建立滤波器。#include <pcl/point_types.h>#include <pcl/filters/conditional_removal.h>int main() { p...原创 2019-06-18 09:52:34 · 904 阅读 · 0 评论 -
点云库PCL学习——点云常用操作
1.如何获取pcd文件点云里点的格式,比如是pcl::PointXYZ还是pcl::PointXYZRGB等类型?#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/PCLPointCloud2.h> ...原创 2019-06-17 14:39:29 · 3383 阅读 · 0 评论 -
点云库PCL学习——点云可视化时遇到的error
static_cast: 无法从vtkObjectBase *const转换为“T”解决方法:加入#include <vtkRenderWindow.h>原创 2019-06-05 16:15:06 · 2184 阅读 · 10 评论 -
点云库PCL学习——滤波
创建滤波时头文件:#include <pcl/common/common_headers.h>#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/io/io.h>#include <pcl/visua...原创 2019-03-29 09:54:40 · 413 阅读 · 0 评论 -
PCL可视化时遇到问题之 Error:no override found for 'vtkPolyDataMapper'
You can add following code:#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);VTK_MODULE_INIT(vtkInteractionStyle);and add “opengl32.lib” to Linker --> Input --> Additional D...原创 2019-03-28 08:44:35 · 859 阅读 · 2 评论 -
点云库PCL学习——kd-tree
首先按照书上的内容写了kd-tree的代码,如下#include <pcl/point_cloud.h>#include<pcl/kdtree/kdtree_flann.h>#include<iostream>#include<vector>#include<ctime>using namespace std;int ma...原创 2019-03-27 14:37:10 · 1204 阅读 · 0 评论 -
点云库PCL学习——向pcd文件中写入点云数据
首先对pcd中基本结构PointCloud做一个笔记:PCL中的基本数据结构是PointCloud,PointCloud是一个C++类,包含了如下数据域:一、width (int)用点云数据集中的点数初始化width,width其实有两个含义:(1)对于无组织或者说无结构的点云来说,width就是指点云中点的个数。(2) 对于有结构的点云来说,width是指点云数据集一行上点的个数。有结...原创 2019-03-27 09:45:06 · 1713 阅读 · 0 评论 -
点云库PCL学习——pcd文件及其打开显示
#include<iostream> //标准C++库输入输出类相关#include<pcl/io/pcd_io.h> //pcl读写类相关#include<pcl/point_types.h>//PCL中支持的点类型头文件#include<pcl/point_cloud.h>#include <pcl/visualizatio...原创 2019-03-26 17:03:03 · 4962 阅读 · 0 评论 -
PCL学习历程-前篇
由于工作的需要,我从一个小白开始学习PCL对点云数据的处理,将在这里开始记录我的学习过程,以及最后对工作上的一个贡献。首先经过了一个星期的环境配置。主要参考[这篇博文]。(https://blog.csdn.net/gurenyigu/article/details/78773395)还有这篇博文现在构建了widows7+VS2017+PCL+QT的配置环境。当然在这之前还有Ope...原创 2019-03-26 08:49:26 · 1921 阅读 · 2 评论