c#发展

注册

 

发新话题 回复该主题

VS2017配置点云库PCL191编 [复制链接]

1#

最近由于工作需要处理相关点云数据,用于处理三维分析重建。三维点云数据处理技术包括以下几个方面:点云滤波(数据预处理)、点云关键点、特征和特征描述、点云配准、点云分割与分类、SLAM图优化、目标识别检索、变化检测、三维重建、点云数据管理等,相关的算法非常复杂。前期了解到网上有开源的点云处理库PointCloudLibrary(PCL),可以用于2D/3D图像和点云处理,PCL基于BSD开源协议,可以免费用于商业和研究用途。

PointCloud

PointCloudLibrary(PCL)库基于C++语言开发,前期同事下载了点云库,但是编译一直没通过,本着简单的原则看看有没有其他语言版本的,搜索github发现确实有其他语言的移植版本,如pclpy、pcl.py、pcl-java、PclSharp(c#)测试过后发现均不太理想(移植不太完整/示例缺乏/运行报错)

所以还是老老实实使用PCL吧,首先我们从github点云库PointCloudLibrary/pcl/releases根据自己操作系统版本下载最新的PCL安装文件:PCL-1.9.1-AllInOne-msvc-win64.exe、pcl-1.9.1-pdb-msvc-win64.zip。首先安装AllInOne-msvc,安装过程很简单直接下一步即可,安装过程中会弹出另外OpenNI的安装界面,建议安装在\3rdParty\OpenNI2目录下,当然安装在其他目录也是可以的。安装完毕后会自动创建环境变量,如果提示环境变量创建失败,则需要自己添加环境变量(总共8个),添加的环境变量如下图所示:

\PCL1.9.1\3rdParty\OpenNI2\Lib

\PCL1.9.1\3rdParty\OpenNI2\Redist

\PCL1.9.1\3rdParty\OpenNI2\Tools

\PCL1.9.1\bin\PCL1.9.1\3rdParty\Boost\lib

\PCL1.9.1\3rdParty\FLANN\bin

\PCL1.9.1\3rdParty\Qhull\bin

\PCL1.9.1\3rdParty\VTK\bin

更新path环境变量

安装完毕,环境变量确认无误后,解压pcl-1.9.1-pdb-msvc-win64.zip,将解压得到的pdb文件复制到PCL安装目录\PCL1.9.0\bin

打开VS/19新建C++空项目,我们在配置管理器里面新建配置,取名PCL1.9.1X64,平台选择X64,然后打开属性管理器选择我们刚才新建的PCL1.9.1X64,点击小扳手图标,对编译选项进行一些配置。

属性管理器

通用属性-VC++目录-包含目录增加以下项:D:\ProgramFiles\PCL1.9.1\include\pcl-1.9

D:\ProgramFiles\PCL1.9.1\3rdParty\Boost\include\boost-1_68

D:\ProgramFiles\PCL1.9.1\3rdParty\Eigen\eigen3

D:\ProgramFiles\PCL1.9.1\3rdParty\FLANN\include

D:\ProgramFiles\PCL1.9.1\3rdParty\Qhull\include

D:\ProgramFiles\PCL1.9.1\3rdParty\OpenNI2\Include

D:\ProgramFiles\PCL1.9.1\3rdParty\VTK\include\vtk-8.1

通用属性-VC++目录-库目录,增加以下项:D:\ProgramFiles\PCL1.9.1\lib

D:\ProgramFiles\PCL1.9.1\3rdParty\Boost\lib

D:\ProgramFiles\PCL1.9.1\3rdParty\FLANN\lib

D:\ProgramFiles\PCL1.9.1\3rdParty\OpenNI2\Lib

D:\ProgramFiles\PCL1.9.1\3rdParty\Qhull\lib

D:\ProgramFiles\PCL1.9.1\3rdParty\VTK\lib

C/C++-预处理器-预处理器定义中添加:

_CRT_SECURE_NO_WARNINGS

_SCL_SECURE_NO_WARNINGS

_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

用于去除编译警告

C/C++-所有选项-SDL检查改为否

通用属性-链接器-输入-附加的依赖项,主要是以下2个目录下的lib文件:

PCL1.9.0\PCL1.9.0\3rdParty\VTK\lib

PCL1.9.1\lib(只添加_release.lib结尾的lib)

然后百度搜索一个实例,发现正常编译运行,运行这个三角化示例如果编译提示:编译遇到pop_t找不到标志符的话,我们修改dist.h文件将typedefunsignedlonglongpop_t语句放置到#if__GNUC__之前即可。

运行示例
分享 转发
TOP
发新话题 回复该主题