pcl

Sample Consensus

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 23:15:56
The following models are supported: SACMODEL_PLANE - used to determine plane models. The four coefficients of the plane are its Hessian Normal form : [ normal_x normal_y normal_z d ] SACMODEL_LINE - used to determine line models. The six coefficients of the line are given by a point on the line and the direction of the line as: [ point_on_line.x point_on_line.y point_on_line.z line_direction.x line_direction.y line_direction.z ] SACMODEL_CIRCLE2D - used to determine 2D circles in a plane. The circle's three coefficients are given by its center and radius as: [ center.x center.y radius ]

运行pcl程序时,显示/usr/bin/ld: cannot find -lvtkproj4和No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so'

无人久伴 提交于 2019-12-04 08:49:42
编译报错 : make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by 'joinMap'. Stop. CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/joinMap.dir/all' failed make[1]: *** [CMakeFiles/joinMap.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 *** Failure: Exit code 2 *** 解决方法,执行: sudo apt-get install libproj-dev 当使用pcl库时 编译出现如下错误 : -- Build files have been written to: /home/wd/code/slambook-master/ch5/joinMap/build [ 50%] Linking CXX executable joinMap /usr/bin/ld: cannot find -lvtkproj4 collect2: error: ld returned 1 exit status

HDL_Graph_slam骨头记(5)——src/hdl_graph_slam/registration

可紊 提交于 2019-12-04 06:21:34
#include <hdl_graph_slam/registrations.hpp> #include <iostream> #include <pcl/registration/ndt.h> #include <pcl/registration/icp.h> #include <pcl/registration/gicp.h> #include <pclomp/ndt_omp.h> #include <pclomp/gicp_omp.h> namespace hdl_graph_slam { boost::shared_ptr<pcl::Registration<pcl::PointXYZI, pcl::PointXYZI>> select_registration_method(ros::NodeHandle& pnh) { using PointT = pcl::PointXYZI; // select a registration method (ICP, GICP, NDT) std::string registration_method = pnh.param<std::string>("registration_method", "NDT_OMP"); if(registration_method == "ICP") { std::cout <<

PCl 点云可视化

折月煮酒 提交于 2019-12-04 06:10:46
#include <iostream> #include <pcl/io/ply_io.h> #include <pcl/point_types.h> #include <pcl/filters/filter_indices.h> #include <pcl/point_cloud.h> #include <pcl/visualization/pcl_visualizer.h> #include "pclhl.h" int main() { using io::loadPCDFile; std::string path = "1.txt"; std::string path0 = "CloudPoint.pcd"; PointCloud<PointXYZ>::Ptr cloud(new PointCloud<PointXYZ>()); //读入数据 readCloudFile(path, cloud); //int ret = pcl::io::loadPCDFile(path0, *cloud); //loadPCDFile("CloudPoint.pcd", *cloud); std::cout << cloud->size() << std::endl; //去除无效点 std::vector<int>index; removeNaNFromPointCloud(*cloud

PCL点云读取和显示

天大地大妈咪最大 提交于 2019-12-04 03:19:09
#include <iostream> //标准输入输出流 #include <pcl/io/pcd_io.h> //PCL的PCD格式文件的输入输出头文件 #include <pcl/point_types.h> //PCL对各种格式的点的支持头文件 #include <pcl/visualization/cloud_viewer.h> int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 创建点云(指针) if (pcl::io::loadPCDFile<pcl::PointXYZ>("E:/rabbit_gra.pcd", *cloud) == -1) //* 读入PCD格式的文件,如果文件不存在,返回-1 { PCL_ERROR("Couldn't read file test_pcd.pcd \n"); //文件不存在时,返回错误,终止程序。 return (-1); } std::cout << "Loaded " << cloud->width * cloud->height << " data points from test_file.pcd with the following

PLY点云数据在PCL中读取与显示

谁说胖子不能爱 提交于 2019-12-04 03:14:48
今天开始着手处理PLY数据,由于之前没有接触过PCL,所以连最简单的数据读取与显示都搞了半天,现在将代码公布出来以供参考。 使用的环境是:vs2015+pcl1.8.1 #include "stdafx.h" #include <iostream> #include <string> #include <pcl/point_types.h> #include <pcl/io/ply_io.h> #include <pcl/io/pcd_io.h> #include <pcl/PCLPointCloud2.h> #include <pcl/visualization/cloud_viewer.h> using namespace pcl; using namespace pcl::io; using namespace std; int main() { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPLYFile<pcl::PointXYZ>("pointCloud.ply", *cloud) == -1) { PCL_ERROR("Couldnot read file.\n"); system("pause"); return(-1);

PCL 点云数据读取并显示

我的未来我决定 提交于 2019-12-04 03:14:39
在上一篇文章中我们已经将txt转化成pcd格式了,现在想查看生成的pcd文件是否确实是txt中的数据 ,参考一下代码: #include <iostream> //标准输入输出流 #include <pcl/io/pcd_io.h> //PCL的PCD格式文件的输入输出头文件 #include <pcl/point_types.h> //PCL对各种格式的点的支持头文件 #include <pcl/visualization/cloud_viewer.h>//点云查看窗口头文件 int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 创建点云(指针) if (pcl::io::loadPCDFile<pcl::PointXYZ>("11.pcd", *cloud) == -1) //* 读入PCD格式的文件,如果文件不存在,返回-1 { PCL_ERROR("Couldn't read file test_pcd.pcd \n"); //文件不存在时,返回错误,终止程序。 return (-1); } pcl::visualization::CloudViewer viewer("Simple Cloud

PCL点云的基本读取和显示

喜欢而已 提交于 2019-12-04 03:14:19
废话不多说,直接上代码,这是最基本的读取与显示,皆是利用PCL库: #include <iostream> //标准输入输出流 #include <pcl/io/pcd_io.h> //PCL的PCD格式文件的输入输出头文件 #include <pcl/point_types.h> //PCL对各种格式的点的支持头文件 #include <pcl/visualization/cloud_viewer.h> int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 创建点云(指针) if (pcl::io::loadPCDFile<pcl::PointXYZ>("E:/rabbit_gra.pcd", *cloud) == -1) //* 读入PCD格式的文件,如果文件不存在,返回-1 { PCL_ERROR("Couldn't read file test_pcd.pcd \n"); //文件不存在时,返回错误,终止程序。 return (-1); } std::cout << "Loaded " << cloud->width * cloud->height << " data points from

pcd格式点云数据的读取和显示

扶醉桌前 提交于 2019-12-04 03:13:02
本文基于python-pcl实现,python-pcl可以通过pycharm的Settings<<Project中搜索python-pcl实现安装,python-pcl相关例程:https://github.com/strawlab/python-pcl/tree/master/examples pcd数据的读取并保存为txt #-*- coding:utf-8 -*- import pcl import os point_3d = [ ] cloud = pcl . load ( '/home/song/pcl_test/test.pcd' ) f = open ( '/home/song/pcl_test/point_3d.txt' , 'w' ) print ( '共计 ' + str ( cloud . width * cloud . height ) + ' 个点' ) for i in range ( 0 , cloud . size ) : x_raw = float ( cloud [ i ] [ 0 ] ) y_raw = float ( cloud [ i ] [ 1 ] ) z_raw = float ( cloud [ i ] [ 2 ] ) point_3d = [ ] point_3d . append ( x_raw ) point_3d .

PCL点云分割(1)

家住魔仙堡 提交于 2019-12-04 01:34:23
点云分割是根据空间,几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征,点云的有效分割往往是许多应用的前提,例如逆向工作,CAD领域对零件的不同扫描表面进行分割,然后才能更好的进行空洞修复曲面重建,特征描述和提取,进而进行基于3D内容的检索,组合重用等。 案例分析 用一组点云数据做简单的平面的分割: planar_segmentation.cpp #include <iostream> #include <pcl/ModelCoefficients.h> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/sample_consensus/method_types.h> // 随机参数估计方法头文件 #include <pcl/sample_consensus/model_types.h> // 模型定义头文件 #include <pcl/segmentation/sac_segmentation.h> // 基于采样一致性分割的类的头文件 int main ( int argc, char ** argv) { pcl::PointCloud <pcl::PointXYZ>::Ptr cloud( new pcl::PointCloud<pcl::PointXYZ> ); //