基于windows平台的pcl点云分析库部署
来源:互联网 发布:php yaf文档 编辑:程序博客网 时间:2024/05/30 04:31
部署需求安装包:
1.pcl源码(https://github.com/PointCloudLibrary/pcl/archive/master.zip)
2.boost 1.50版 c++扩展库
3.eigen 3.0.5版 矩阵运算
4.flann 1.7.1版 最邻近算法库
5.qhull 6.2.0版 凸包计算,主要用于表面重建
6.cmake 生成编译解决方案
1.pcl源码(https://github.com/PointCloudLibrary/pcl/archive/master.zip)
2.boost 1.50版 c++扩展库
3.eigen 3.0.5版 矩阵运算
4.flann 1.7.1版 最邻近算法库
5.qhull 6.2.0版 凸包计算,主要用于表面重建
6.cmake 生成编译解决方案
先安装上面提到的PCL需求的第三方库,都有现成的安装包,很方便,需要注意的是在安装这些第三方库的时候要将第三方库所在的路径加入到系统环境中。
说明一下,因为这里只是用pcl进行计算,所以没有引入VTK,QT,NI这三个库,其中VTK用于三维可视化,QT用于提供GUI界面,NI提供点云的输入输出接口,例如一些商业化的体感摄像头。
下面, 解压下载好的pcl源码包,打开Cmake,在source code 这一栏里面设置解压好的PCL源码路径,在build the binaries 这一栏里填写想要存放解决方案的路径。
填完地址后configure, 选择编译环境,官方推荐用visual studio 2008或者visual studio 2010,在搜索框里搜索CMAKE_INSTALL_PREFIX ,这里填写希望输出PCL库文件以及头文件的目录(注意,尽量不要写在program files文件夹底下,这个文件夹的文件写入需要管理员权限),完成之后进行Generate
等待生成解决方案,打开build目录下pcl.sln,编译INSTALL这一项。时间较长,请耐心等待。
到此,PCL就已经编译完成,下面进行项目部署
新建一个空项目,新建文件test.cpp,在项目属性中配置包含目录
pclinstall/include/pcl-1.8/
boost/include/
Eigen/include/
flann/include/
qhull/include/
pclinstall/include/pcl-1.8/
boost/include/
Eigen/include/
flann/include/
qhull/include/
在库目录中加入下列目录
pclinstall/lib/
boost/lib/
Eigen/lib/
flann/lib/
qhull/lib/
boost/lib/
Eigen/lib/
flann/lib/
qhull/lib/
在连接器-》附加依赖项 中加入下列文件
pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_ml_debug.lib
pcl_octree_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_ml_debug.lib
pcl_octree_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
这里用debug方式编译,方便调试PCL源码,若用release方式编译,则lib文件后面没有_debug后缀
在test.cpp中写入下面计算法向量的代码
#include <iostream>
#include <pcl\point_types.h>
#include <pcl\features\normal_3d.h>
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
for(int i = 0; i < 100; i++)
{
cloud->push_back(pcl::PointXYZ(1.0, 0.0, i/10));
cloud->push_back(pcl::PointXYZ(0.0, 1.0, i/10));
cloud->push_back(pcl::PointXYZ(0.0, 0.0, i/10));
}
pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> normal;
normal.setInputCloud(cloud);
normal.setRadiusSearch(2.0);
pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>); //创建法向量点云
normal.compute(*normals);//计算法向量
std::cout<<*normals<<std::endl;
int i;
std::cin>>i;
}
运行成功则表示PCL部署成功。
#include <pcl\point_types.h>
#include <pcl\features\normal_3d.h>
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
for(int i = 0; i < 100; i++)
{
cloud->push_back(pcl::PointXYZ(1.0, 0.0, i/10));
cloud->push_back(pcl::PointXYZ(0.0, 1.0, i/10));
cloud->push_back(pcl::PointXYZ(0.0, 0.0, i/10));
}
pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> normal;
normal.setInputCloud(cloud);
normal.setRadiusSearch(2.0);
pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>); //创建法向量点云
normal.compute(*normals);//计算法向量
std::cout<<*normals<<std::endl;
int i;
std::cin>>i;
}
运行成功则表示PCL部署成功。
0 0
- 基于windows平台的pcl点云分析库部署
- PCL点云的显示
- pcl点云的离群点去除
- 基于Qt-Windows平台的Android开发部署
- 基于PCL的三维重建——点云的滤波处理
- 基于PCL库对三维空间点的K-Means聚类算法的实现
- MFashion的基于微信平台关键点分析
- 基于Kinect v2+PCL的模型奶牛重建(下)——点云融合
- 基于PCL和Kinect的图像采集和点云生成
- 基于PCL(Point Cloud Library)进行点云压缩
- PCL入门<一> 点云的数据结构
- PCL入门<二>点云的滤波
- pcl--不同格式点云的转换
- PCL点云滤波
- 点云python-pcl
- PCL点云处理BUG记录及分析
- 65.[PCL]点云及PCL基础
- PCL点云压缩的,--自己输入点云
- Java 反射的入门用法示例
- 51nod-【1283 最小周长】
- 常见HTTP状态码
- Linux 进程通信—共享内存
- java编程思想读书笔记 第十五章 泛型(下)
- 基于windows平台的pcl点云分析库部署
- AsyncTask异步加载
- ubuntu下安装mysql
- 洛谷 P1514 引水入城
- 算法思想总结第一弹
- 关于sop
- 代码中改变drawableTop等属性的图片
- 软件测试面试总结
- iOS开发AFNetworking的再次封装