PCL
pcl学习笔记
Sun.1998
这个作者很懒,什么都没留下…
展开
-
渐进形态学
过滤地面原创 2022-06-29 15:17:02 · 261 阅读 · 1 评论 -
PCL根据PCA特征进行几何形状分析
根据PCA特征判断点云的局部形状特征转载 2022-06-15 15:18:47 · 606 阅读 · 0 评论 -
无序点云预处理
点云的预处理主要包括:点云去噪和点云的简化点云的去噪主要是去除离群点点云的平滑处理去除离群点方法:半径滤波和统计滤波平滑处理方法:双边滤波和导向滤波点云简化:体素滤波去除背景:主要是去除地面方法:渐进形态学滤波,平面拟合,布料法统计滤波半径滤波导向滤波GuildFilter.hmain...原创 2022-06-09 17:12:16 · 601 阅读 · 0 评论 -
PCL循环分割多个平面
#include <iostream>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/filters/voxel_grid.h>#include <pcl/filters/approxi.原创 2022-05-18 16:31:22 · 684 阅读 · 3 评论 -
PCL获取点云中某点坐标
#include <string>#include <pcl/io/pcd_io.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/visualization/pcl_visualizer.h>using PointT = pcl::PointXYZ;using PointCloudT = pcl::PointCloud<PointT&转载 2022-04-28 15:04:12 · 2858 阅读 · 0 评论 -
PCL区域生长的代码实现
---------原理介绍:(1)首先计算出来各点的曲率值,将曲率值按照从小到大的顺序进行排序。(2)设置一空的种子点序列和一个空的聚类数组。(3)选取曲率最小的点放入上述种子点序列中。(4)从序列中拿出来一个种子点搜索其邻域。(5)搜索到邻域后,这些点先过法线夹角阈值,通过的保留到聚类数据,然后再从这些通过法线夹角阈值的点中,检查是否通过曲率阈值,通过的加入种子点序列。即比较邻域点的法线与当前种子点法线之间的夹角,如果小于阈值将该邻域点加入聚类数组。再从这些小于法线阈值的点中判断是否小于曲率阈值原创 2022-04-21 15:37:29 · 315 阅读 · 0 评论 -
PCL提取点云的边界
#include <iostream>#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/io/pcd_io.h>#include <pcl/features/normal_3d.h>#include <pcl/features/boundary.h> //边界提取#include <pcl/visualization/pcl_vi原创 2022-04-20 17:54:39 · 2305 阅读 · 4 评论 -
根据法线得到点云曲率
曲率的定义:在计算点云的法向量时,该点的曲率就被计算出来了,下面是pcl::Normal的结构体struct Normal : public _Normal{ inline Normal (const _Normal &p) { normal_x = p.normal_x; normal_y = p.normal_y; normal_z = p.normal_z; data_n[3] = 0.0f; curvature原创 2022-04-19 17:28:17 · 723 阅读 · 0 评论 -
用sift提取的特征点进行ftfh描述
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/common/io.h>#include <pcl/keypoints/sift_keypoint.h>#include <pcl/features/normal_3d.h>#include <pcl/visualization/pcl_visua原创 2022-04-08 15:17:59 · 149 阅读 · 0 评论 -
用FPFH进行特征点的提取
#include <iostream>#include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/visualization/histogram_visualizer.h>#include <pcl/point_types.h>#include <pcl原创 2022-04-04 20:02:43 · 706 阅读 · 0 评论 -
PFH与FPFH的代码实现
FPFH#include <iostream>#include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/visualization/histogram_visualizer.h>#include <pcl/point_types.h>#include &l原创 2022-04-04 17:38:03 · 443 阅读 · 0 评论 -
牛奶盒子识别的代码
#include <pcl/io/pcd_io.h> // IO头文件用于传输pcd格式文件#include <pcl/point_cloud.h> // 点云头文件#include <pcl/correspondence.h> // 点,描述符等之间的匹配头文件#include <pcl/features/normal_3d_omp.h> // OMP加速计算点云法向#include <pcl/fe原创 2022-04-04 16:08:32 · 188 阅读 · 0 评论 -
特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释
特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的。本文希望通过一种通俗易懂的方式来阐述特征匹配这个过程,以及在过程中遇到的一些问题。首先我通过几张图片来指出什么是特征匹配,以及特征匹配的过程。在这里插入图片描述图像二:在这里插入图片描述图像一与图像二的匹配:在这里插入图片描述**概念理解:**什么是特征,什么是特征描述,什么是特征匹配假设这样的一个场景,小白和小黑都在看一个转载 2022-04-03 15:21:24 · 716 阅读 · 0 评论 -
3D包围盒子
#include <vector>#include <thread>#include <pcl/features/moment_of_inertia_estimation.h>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/visualization/cloud_viewer.h>using namespace std::chrono原创 2022-04-01 10:51:25 · 239 阅读 · 0 评论 -
无序,有序点云的法线及可视化
无序点云的法线特征及可视化#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>#include <pcl/features/integral_image_normal.h> //法线估计类头文件#include <pcl/visualization/cloud_viewer.h>#include <pcl/point_types.h>#include <pcl/features/nor原创 2022-03-31 13:39:35 · 537 阅读 · 0 评论 -
VoxelGrid滤波器对点云进行下采样
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/filters/voxel_grid.h>intmain(int argc, char** argv){ pcl::PCLPointCloud2::Ptr cloud(new pcl::PCLPointCloud2()); pcl::PCLPointCloud2::Ptr原创 2022-03-25 09:58:33 · 108 阅读 · 0 评论 -
在一个窗口显示两个点云文件
#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/visualization/pcl_visualizer.h>typedef pcl::PointXYZ PointT;int main(int argc, char** argv){ // All the objects needed pcl::PCDReader reader; // Datasets pc.原创 2022-03-24 15:52:23 · 344 阅读 · 0 评论 -
PCL入门——点云平面分割
点云平面分割#include <iostream>#include <pcl/console/parse.h>#include <pcl/filters/extract_indices.h> // 由索引提取点云#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/sample_consensus/ransac.h>原创 2022-03-15 16:38:30 · 2267 阅读 · 0 评论 -
PCL入门——Kd tree
Kd tree对于区间和近邻搜索十分有用,使用 KdTree 查找特定点或位置的 K 个最近邻域,然后我们还将介绍如何查找用户指定的某个半径内的所有相邻要素(在本例中为随机)#include <pcl/point_cloud.h>#include <pcl/kdtree/kdtree_flann.h>#include <iostream>#include <vector>#include <ctime>intmain (int a原创 2022-03-15 10:42:07 · 198 阅读 · 0 评论 -
PCL入门——PCD文件的读与写
从PCD文件中读取点云数据及其代码解释#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>intmain (int argc, char** argv){ pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);//创建POintClou原创 2022-03-15 10:12:39 · 1000 阅读 · 0 评论 -
PCL入门(一)--基本数据类型
基本数据类型PCL是处理点云数据的一个第三方库,在PCL中PointCloud是一个PointCloud是一个C++的*模板类 *,类模板的格式template <typename T1,typename T2,…>class <类名>{<成员说明>};类模板的实例化类名<typename ,typename> 实例化的类名PointCloud模板template class PCL_EXPORTS PointCloud{……}模原创 2022-03-15 09:10:20 · 2953 阅读 · 0 评论 -
PCL入门(二)——PCD
PCD 不是第 一个支持 3D点云数据的文件类型,尤其是计算机图形学和计算几何学领域,已经创建了很多格式来描述任意多边形和激光扫描仪获取的点云。常见的有下面几种格式:PLY 是一种多边形文件格式 , 由 Stanford 大学的 Turk 等人设计开发;STL 是 3D Systems 公司创建的模型文件格式,主要应用于 CAD 、 CAM领域 ;OBJ 是从几何学上定义的文件格式,首先由 Wavefront Technologies 开发;其他格式以上所有格式都有其优缺点,因为他们是在不同时期为原创 2022-03-15 09:43:17 · 862 阅读 · 0 评论 -
PCL入门(二)——点云可视化
利用CloudViewer实现点云可视化#include <pcl/visualization/cloud_viewer.h>#include <iostream>#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>//pcl中PCD文件读写类的头文件int user_data;voidviewerOneOff(pcl::visualization::PCLVisualizer &viewe原创 2022-03-15 09:28:35 · 2087 阅读 · 1 评论 -
点云入门——Ply,Obj转换PCD
#include #include <pcl/common/io.h>#include <pcl/point_cloud.h>#include <pcl/point_types.h>#include <pcl/PolygonMesh.h>#include <vtkSmartPointer.h>#include <vtkPolyData.h>#include <pcl/io/pcd_io.h>#include原创 2022-03-14 21:58:04 · 721 阅读 · 0 评论 -
Error: no override found for ‘vtkPolyDataMapper‘
vs2017+pcl1.8执行报错:Generic Warning: In C:\Build\3rdParty\x64\VTK-7.0.0\Rendering\Core\vtkPolyDataMapper.cxx, line 28Error: no override found for ‘vtkPolyDataMapper’.解决办法:第一步:在源代码中添加下面三条代码#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL原创 2022-03-14 17:00:14 · 672 阅读 · 0 评论