PCL1.8.1 VS2015 X64系统点云配置经验

最近接触了3D轮廓建模,pcl安装与使用。PCL已经广泛使用在各种轮廓扫描建模中,在机器人自主导航和ROS中都有很大用处。官网和论坛都有很多资料,但是很少看到有介绍在vs2015下配置PCL1.8.1(目前最新2018年)的经验分享,而这些涉及到PCL本身的安装配置,还有个人项目里的配置。在此做个经验分享交流。

主要难点在于lib的配置,源文件里如max min 等的修改,如果使用结合MFC来显示的话,还需要相应的头文件,模板文件,实现文件(.h .hpp .cpp).相关头文件,库文件路径及在工程属性里各项的设置!!!! 

sensor_msgs::PointCloud2    ------------------------>pcl::PCLPointCloud2 

 

下载相关文件

1.下载PCL-1.8.1-AllInOne-msvc2015-win32.exe

https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.8.1

二、Windows7下安装步骤:

1.点击CL-1.8.1-AllInOne-msvc2015-win32.exe一键安装,可以默认也可以自己选择安装路径,如本文所选择的路径D:\Program Files;(放在D盘更好,避免有时没有权限修改或者移动C盘缺省文件!!!!);

2.在安装过程中,OpenNI2在安装时会弹出界面。其他教程中说可以自己选择路径(选择第一步的),但本人安装时并没有弹出该界面,而是默认安装,但安装位置不对,需要手动将错误的文件夹下的OpenNI2移到C:\Program Files\PCL;

3.等待一段时间,则安装完成。

注意事项:在安装点击“我接收(I)”之后弹出来的对话框中一定要选择第二项Add PCL to the systemPATH for all users:(如图)


三、系统配置步骤

1.点击win7的控制面板->系统->高级系统设置->在系统属性的“高级选项”卡下点击“环境变量”;

2.在系统子菜单里面找到“Path”,如图(这里面显示的C盘的安装):

3.点击编辑,依次加入

C:\Qt\4.8.0\bin;C:\Program Files (x86)\PCL 1.8.1\bin;%PCL_ROOT%\bin;%OPENNI2_REDIST%;C:\Program Files(x86)\PCL 1.8.1\3rdParty\FLANN\bin;C:\Program Files(x86)\PCL 1.8.1\3rdParty\Qhull\bin;C:\Program Files(x86)\PCL 1.8.1\3rdParty\OpenNI2\Tools;C:\Program Files(x86)\PCL 1.8.1\3rdParty\VTK\bin

注意,第一项在“一键安装”时就已经添加。

4.重启电脑

四、VS2015工程配置步骤

1.打开VS2015,创建新的win32控制台工程;

2.点击项目菜单的属性,如图:

3.在弹出的对话框中,

①       点击“包含目录”下拉箭头->编辑,添加文件路径:

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\VTK\include\vtk-8.0

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\VTK\include

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Qhull\include

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\FLANN\include

C:\Program Files (x86)\PCL 1.8.1\3rdParty\Eigen\eigen3

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\include\boost-1_64

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost

C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\include

C:\ProgramFiles (x86)\PCL 1.8.1\include\pcl-1.8

C:\ProgramFiles (x86)\PCL 1.8.1\include\pcl-1.8\pcl

完成后点击确定;

②   点击“库目录”下拉箭头->编辑,添加文件路径:

 

完成后点击确定;

4.点击连接器->输入->附加依赖项:

PCL1.8.0 的一些库文件为1.6.1或7.0lib。PCL1.8.1 的大部分库文件为1.6.4或8.0lib。点击下拉箭头->编辑,添加下列文件:

pcl_common_debug.lib

vtknetcdf_c++-gd.lib

pcl_features_debug.lib

pcl_filters_debug.lib

pcl_io_ply_debug.lib

pcl_io_debug.lib

pcl_kdtree_debug.lib

pcl_keypoints_debug.lib

pcl_ml_debug.lib

pcl_octree_debug.lib

pcl_outofcore_debug.lib

pcl_people_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_visualization_debug.lib

libboost_atomic-vc140-mt-gd-1_64.lib

libboost_bzip2-vc140-mt-gd-1_64.lib

libboost_chrono-vc140-mt-gd-1_64.lib

libboost_container-vc140-mt-gd-1_64.lib

libboost_context-vc140-mt-gd-1_64.lib

libboost_coroutine-vc140-mt-gd-1_64.lib

libboost_date_time-vc140-mt-gd-1_64.lib

libboost_exception-vc140-mt-gd-1_64.lib

libboost_fiber-vc140-mt-gd-1_64.lib

libboost_filesystem-vc140-mt-gd-1_64.lib

libboost_graph-vc140-mt-gd-1_64.lib

libboost_graph_parallel-vc140-mt-gd-1_64.lib

libboost_iostreams-vc140-mt-gd-1_64.lib

libboost_locale-vc140-mt-gd-1_64.lib

libboost_log-vc140-mt-gd-1_64.lib

libboost_log_setup-vc140-mt-gd-1_64.lib

libboost_math_c99-vc140-mt-gd-1_64.lib

libboost_math_c99f-vc140-mt-gd-1_64.lib

libboost_math_c99l-vc140-mt-gd-1_64.lib

libboost_math_tr1-vc140-mt-gd-1_64.lib

libboost_math_tr1f-vc140-mt-gd-1_64.lib

libboost_math_tr1l-vc140-mt-gd-1_64.lib

libboost_mpi-vc140-mt-gd-1_64.lib

libboost_numpy3-vc140-mt-gd-1_64.lib

libboost_numpy-vc140-mt-gd-1_64.lib

libboost_prg_exec_monitor-vc140-mt-gd-1_64.lib

libboost_program_options-vc140-mt-gd-1_64.lib

libboost_python3-vc140-mt-gd-1_64.lib

libboost_python-vc140-mt-gd-1_64.lib

libboost_random-vc140-mt-gd-1_64.lib

libboost_regex-vc140-mt-gd-1_64.lib

libboost_serialization-vc140-mt-gd-1_64.lib

libboost_signals-vc140-mt-gd-1_64.lib

libboost_system-vc140-mt-gd-1_64.lib

libboost_test_exec_monitor-vc140-mt-gd-1_64.lib

libboost_thread-vc140-mt-gd-1_64.lib

libboost_timer-vc140-mt-gd-1_64.lib

libboost_type_erasure-vc140-mt-gd-1_64.lib

libboost_unit_test_framework-vc140-mt-gd-1_64.lib

libboost_wave-vc140-mt-gd-1_64.lib

libboost_wserialization-vc140-mt-gd-1_64.lib

libboost_zlib-vc140-mt-gd-1_64.lib

flann-gd.lib

flann_cpp-gd.lib

flann_cpp_s-gd.lib

flann_s-gd.lib

qhull_d.lib

qhullcpp_d.lib

qhullstatic_d.lib

qhullstatic_r_d.lib

qhull_p_d.lib

qhull_r_d.lib

vtkalglib-8.0-gd.lib

vtkChartsCore-8.0-gd.lib

vtkCommonColor-8.0-gd.lib

vtkCommonComputationalGeometry-8.0-gd.lib

vtkCommonCore-8.0-gd.lib

vtkCommonDataModel-8.0-gd.lib

vtkCommonExecutionModel-8.0-gd.lib

vtkCommonMath-8.0-gd.lib

vtkCommonMisc-8.0-gd.lib

vtkCommonSystem-8.0-gd.lib

vtkCommonTransforms-8.0-gd.lib

vtkDICOMParser-8.0-gd.lib

vtkDomainsChemistry-8.0-gd.lib

vtkexoIIc-8.0-gd.lib

vtkexpat-8.0-gd.lib

vtkFiltersAMR-8.0-gd.lib

vtkFiltersCore-8.0-gd.lib

vtkFiltersExtraction-8.0-gd.lib

vtkFiltersFlowPaths-8.0-gd.lib

vtkFiltersGeneral-8.0-gd.lib

vtkFiltersGeneric-8.0-gd.lib

vtkFiltersGeometry-8.0-gd.lib

vtkFiltersHybrid-8.0-gd.lib

vtkFiltersHyperTree-8.0-gd.lib

vtkFiltersImaging-8.0-gd.lib

vtkFiltersModeling-8.0-gd.lib

vtkFiltersParallel-8.0-gd.lib

vtkFiltersParallelImaging-8.0-gd.lib

vtkFiltersPoints-8.0-gd.lib

vtkFiltersProgrammable-8.0-gd.lib

vtkFiltersSelection-8.0-gd.lib

vtkFiltersSMP-8.0-gd.lib

vtkFiltersSources-8.0-gd.lib

vtkFiltersStatistics-8.0-gd.lib

vtkFiltersTexture-8.0-gd.lib

vtkFiltersTopology-8.0-gd.lib

vtkFiltersVerdict-8.0-gd.lib

vtkfreetype-8.0-gd.lib

vtkGeovisCore-8.0-gd.lib

vtkgl2ps-8.0-gd.lib

vtkhdf5-8.0-gd.lib

vtkhdf5_hl-8.0-gd.lib

vtkImagingColor-8.0-gd.lib

vtkImagingCore-8.0-gd.lib

vtkImagingFourier-8.0-gd.lib

vtkImagingGeneral-8.0-gd.lib

vtkImagingHybrid-8.0-gd.lib

vtkImagingMath-8.0-gd.lib

vtkImagingMorphological-8.0-gd.lib

vtkImagingSources-8.0-gd.lib

vtkImagingStatistics-8.0-gd.lib

vtkImagingStencil-8.0-gd.lib

vtkInfovisCore-8.0-gd.lib

vtkInfovisLayout-8.0-gd.lib

vtkInteractionImage-8.0-gd.lib

vtkInteractionStyle-8.0-gd.lib

vtkInteractionWidgets-8.0-gd.lib

vtkIOAMR-8.0-gd.lib

vtkIOCore-8.0-gd.lib

vtkIOEnSight-8.0-gd.lib

vtkIOExodus-8.0-gd.lib

vtkIOExport-8.0-gd.lib

vtkIOExportOpenGL-8.0-gd.lib

vtkIOGeometry-8.0-gd.lib

vtkIOImage-8.0-gd.lib

vtkIOImport-8.0-gd.lib

vtkIOInfovis-8.0-gd.lib

vtkIOLegacy-8.0-gd.lib

vtkIOLSDyna-8.0-gd.lib

vtkIOMINC-8.0-gd.lib

vtkIOMovie-8.0-gd.lib

vtkIONetCDF-8.0-gd.lib

vtkIOParallel-8.0-gd.lib

vtkIOParallelXML-8.0-gd.lib

vtkIOPLY-8.0-gd.lib

vtkIOSQL-8.0-gd.lib

vtkIOTecplotTable-8.0-gd.lib

vtkIOVideo-8.0-gd.lib

vtkIOXML-8.0-gd.lib

vtkIOXMLParser-8.0-gd.lib

vtkjpeg-8.0-gd.lib

vtkjsoncpp-8.0-gd.lib

vtklibharu-8.0-gd.lib

vtklibxml2-8.0-gd.lib

vtklz4-8.0-gd.lib

vtkmetaio-8.0-gd.lib

vtkNetCDF-8.0-gd.lib

vtkoggtheora-8.0-gd.lib

vtkParallelCore-8.0-gd.lib

vtkpng-8.0-gd.lib

vtkproj4-8.0-gd.lib

vtkRenderingAnnotation-8.0-gd.lib

vtkRenderingContext2D-8.0-gd.lib

vtkRenderingContextOpenGL-8.0-gd.lib

vtkRenderingCore-8.0-gd.lib

vtkRenderingFreeType-8.0-gd.lib

vtkRenderingGL2PS-8.0-gd.lib

vtkRenderingImage-8.0-gd.lib

vtkRenderingLabel-8.0-gd.lib

vtkRenderingLIC-8.0-gd.lib

vtkRenderingLOD-8.0-gd.lib

vtkRenderingOpenGL-8.0-gd.lib

vtkRenderingVolume-8.0-gd.lib

vtkRenderingVolumeOpenGL-8.0-gd.lib

vtksqlite-8.0-gd.lib

vtksys-8.0-gd.lib

vtktiff-8.0-gd.lib

vtkverdict-8.0-gd.lib

vtkViewsContext2D-8.0-gd.lib

vtkViewsCore-8.0-gd.lib

vtkViewsInfovis-8.0-gd.lib

vtkzlib-8.0-gd.lib

opengl32.lib

完成后点击确定;

注意:上面为在debug下运行的文件,如果想在release运行,则将其中的gd改成r即可!!!


后面就可以使用PCL相关的定义,数据类型,和算法等等!! 主要可以用在相机或激光传感器扫描的数据中,生成相应的3D环境!!下图为结合激光测距做出的3D图形。

 

如有相关技术交流,可联系:yyjqr789@sina.com 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值