win10系统VS2019配置点云库PCL1.12.1的详细流程

目录
  • 0 写在最前
  • 1 PCL的下载安装
    • 1.1 PCL下载
    • 1.2 PCL安装
    • 1.3 bin文件拷贝
    • 1.4 其他问题
  • 2 在VS中配置PCL
    • 2.1 前期工作
    • 2.1 添加包含目录
    • 2.2 添加库目录
    • 2.3 添加依赖项
  • 3 PCL运行验证
  • 4 写在最后

0 写在最前

这是本人昨天在VS2019上配置PCL点云库的一些基本流程以及一些问题的总结,有些问题我的解决办法不一定是最优的,仅供大家参考,当然这里也记录了我这个小白在配置过程中踩过的一些小坑,希望能为大家带来方便。

本文参考博文:https://www.jb51.net/article/256389.htm

1 PCL的下载安装

1.1 PCL下载

下载版本:PCL 1.12.1

下载网址:https://github.com/PointCloudLibrary/pcl/releases

进入界面后下载如下两个文件:

1.2 PCL安装

下载完成后,运行PCL-1.12.1-rc1-AllInOne-msvc2019-win64.exe,开始安装
这里有两个小点需要注意:
一是选择Add PCL to the system PATH for all users
二是要安装到非系统盘,且路径全英文

1.3 bin文件拷贝

我们将刚刚下载的pcl-1.12.1-rc1-pdb-msvc2019-win64.zip解压
可以看到里面都是.pdb文件

再找到刚才下载好的PCL 1.12.1文件夹,打开,将这些.pdb文件拷贝到PCL 1.12.1\bin目录中

1.4 其他问题

这时,打开PCL 1.12.1文件夹检查一下
可以看到,这时我的PCL 1.12.1\3rdParty\OpenNI2文件夹中只有一个安装文件,空空如也,我们打开这个安装文件,要先选择remove执行一次卸载,然后再打开安装文件进行安装,安装路径就是这个PCL 1.12.1\3rdParty\OpenNI2文件夹

安装好就可以看到OpenNI2文件夹下出现了我们后面需要用到的include文件和Lib文件等

至此,PCL 的安装准备过程已经完成。

2 在VS中配置PCL

2.1 前期工作

首先用VS 2019打开一个项目
这里有这么几步:
1.我这里原先是x86,要改成x64
2.右键点击项目
3.选择属性

进入项目属性页后,也有很重要的一步:将平台改为x64
我当时就是漏掉了这一步导致后面代码一直出错

2.1 添加包含目录

选择VC++目录 -> 包含目录 -> 点击右列,出现一个下拉列表,点击后出现编辑,点击进入。

将7个包含目录复制粘贴进去就好。

我的包含目录如下,大家可以打开自己的PCL 1.12.1文件夹核对,如果版本或者路径不一样,按照自己的来

D:\PCL 1.12.1\3rdParty\Eigen\eigen3
D:\PCL 1.12.1\3rdParty\FLANN\include
D:\PCL 1.12.1\3rdParty\VTK\include\vtk-9.1
D:\PCL 1.12.1\3rdParty\Qhull\include
D:\PCL 1.12.1\include\pcl-1.12
D:\PCL 1.12.1\3rdParty\Boost\include\boost-1_78
D:\PCL 1.12.1\3rdParty\OpenNI2\Include

2.2 添加库目录

步骤同上,选择VC++目录 -> 库目录 -> 点击右列编辑
我的库目录如下,注意这里也是要根据自己的路径和版本号来

D:\PCL 1.12.1\3rdParty\Boost\lib
D:\PCL 1.12.1\3rdParty\FLANN\lib
D:\PCL 1.12.1\3rdParty\OpenNI2\Lib
D:\PCL 1.12.1\3rdParty\Qhull\lib
D:\PCL 1.12.1\3rdParty\VTK\lib
D:\PCL 1.12.1\lib

2.3 添加依赖项

同样的方法进入添加依赖项界面,选择链接器 ->输入 -> 点击右列,出现一个下拉列表,点击后出现编辑,点击进入。

附加依赖项太多,对于不同版本的PCL可能附加依赖项就会略有不同,全盘复制很有可能导致link error,有些依赖项找不到有些又缺失。因此如果版本与我相同可直接复制下面我的依赖项,如果版本不是1.12.1可以利用bat文件自己分一下,这个工程看似很大,实则不难。
我们可以在每个库目录中找到所需要的.lib文件,也就是依赖项,根据不同库目录下的.lib文件名,可以区分出debug模式和release模式各自的.lib文件。

也可以参考这篇文章,写的很详细:https://www.jb51.net/article/256395.htm

在不同的lib文件夹下新建.txt文本文档,以我这里的D:\PCL 1.12.1\3rdParty\VTK为例,可以看出VTK中的每一对.lib文件就差一个字母d,因此我们在.txt中把带d的和不带d的区分出来。编辑好.txt文档后将后缀改成.bat,点击运行。

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*d.lib) do echo %%I>>adebug.txt
for %%I in (*9.1.lib) do echo %%I>>arelease.txt
pause

同理,将这一堆文件夹中凡是带lib的,都用上述方法提取区分一下,别忘了D:\PCL 1.12.1\lib也要。PCL 1.12.1 提取总结好的.lib文件集合如下:

PCL1.12.1 debug版本.lib文件列表:
pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib
libboost_atomic-vc142-mt-gd-x64-1_78.lib
libboost_bzip2-vc142-mt-gd-x64-1_78.lib
libboost_chrono-vc142-mt-gd-x64-1_78.lib
libboost_container-vc142-mt-gd-x64-1_78.lib
libboost_context-vc142-mt-gd-x64-1_78.lib
libboost_contract-vc142-mt-gd-x64-1_78.lib
libboost_coroutine-vc142-mt-gd-x64-1_78.lib
libboost_date_time-vc142-mt-gd-x64-1_78.lib
libboost_exception-vc142-mt-gd-x64-1_78.lib
libboost_filesystem-vc142-mt-gd-x64-1_78.lib
libboost_graph-vc142-mt-gd-x64-1_78.lib
libboost_graph_parallel-vc142-mt-gd-x64-1_78.lib
libboost_iostreams-vc142-mt-gd-x64-1_78.lib
libboost_json-vc142-mt-gd-x64-1_78.lib
libboost_locale-vc142-mt-gd-x64-1_78.lib
libboost_log-vc142-mt-gd-x64-1_78.lib
libboost_log_setup-vc142-mt-gd-x64-1_78.lib
libboost_math_c99-vc142-mt-gd-x64-1_78.lib
libboost_math_c99f-vc142-mt-gd-x64-1_78.lib
libboost_math_c99l-vc142-mt-gd-x64-1_78.lib
libboost_math_tr1-vc142-mt-gd-x64-1_78.lib
libboost_math_tr1f-vc142-mt-gd-x64-1_78.lib
libboost_math_tr1l-vc142-mt-gd-x64-1_78.lib
libboost_mpi-vc142-mt-gd-x64-1_78.lib
libboost_nowide-vc142-mt-gd-x64-1_78.lib
libboost_numpy38-vc142-mt-gd-x64-1_78.lib
libboost_prg_exec_monitor-vc142-mt-gd-x64-1_78.lib
libboost_program_options-vc142-mt-gd-x64-1_78.lib
libboost_python38-vc142-mt-gd-x64-1_78.lib
libboost_random-vc142-mt-gd-x64-1_78.lib
libboost_regex-vc142-mt-gd-x64-1_78.lib
libboost_serialization-vc142-mt-gd-x64-1_78.lib
libboost_system-vc142-mt-gd-x64-1_78.lib
libboost_test_exec_monitor-vc142-mt-gd-x64-1_78.lib
libboost_thread-vc142-mt-gd-x64-1_78.lib
libboost_timer-vc142-mt-gd-x64-1_78.lib
libboost_type_erasure-vc142-mt-gd-x64-1_78.lib
libboost_unit_test_framework-vc142-mt-gd-x64-1_78.lib
libboost_wave-vc142-mt-gd-x64-1_78.lib
libboost_wserialization-vc142-mt-gd-x64-1_78.lib
libboost_zlib-vc142-mt-gd-x64-1_78.lib
flann-gd.lib
flann_cpp-gd.lib
flann_cpp_s-gd.lib
flann_s-gd.lib
OpenNI2.lib
qhullcpp_d.lib
qhullstatic_d.lib
qhullstatic_rd.lib
qhull_rd.lib
vtkcgns-9.1d.lib
vtkChartsCore-9.1d.lib
vtkCommonColor-9.1d.lib
vtkCommonComputationalGeometry-9.1d.lib
vtkCommonCore-9.1d.lib
vtkCommonDataModel-9.1d.lib
vtkCommonExecutionModel-9.1d.lib
vtkCommonMath-9.1d.lib
vtkCommonMisc-9.1d.lib
vtkCommonSystem-9.1d.lib
vtkCommonTransforms-9.1d.lib
vtkDICOMParser-9.1d.lib
vtkDomainsChemistry-9.1d.lib
vtkDomainsChemistryOpenGL2-9.1d.lib
vtkdoubleconversion-9.1d.lib
vtkexodusII-9.1d.lib
vtkexpat-9.1d.lib
vtkFiltersAMR-9.1d.lib
vtkFiltersCore-9.1d.lib
vtkFiltersExtraction-9.1d.lib
vtkFiltersFlowPaths-9.1d.lib
vtkFiltersGeneral-9.1d.lib
vtkFiltersGeneric-9.1d.lib
vtkFiltersGeometry-9.1d.lib
vtkFiltersHybrid-9.1d.lib
vtkFiltersHyperTree-9.1d.lib
vtkFiltersImaging-9.1d.lib
vtkFiltersModeling-9.1d.lib
vtkFiltersParallel-9.1d.lib
vtkFiltersParallelImaging-9.1d.lib
vtkFiltersPoints-9.1d.lib
vtkFiltersProgrammable-9.1d.lib
vtkFiltersSelection-9.1d.lib
vtkFiltersSMP-9.1d.lib
vtkFiltersSources-9.1d.lib
vtkFiltersStatistics-9.1d.lib
vtkFiltersTexture-9.1d.lib
vtkFiltersTopology-9.1d.lib
vtkFiltersVerdict-9.1d.lib
vtkfmt-9.1d.lib
vtkfreetype-9.1d.lib
vtkGeovisCore-9.1d.lib
vtkgl2ps-9.1d.lib
vtkglew-9.1d.lib
vtkhdf5-9.1d.lib
vtkhdf5_hl-9.1d.lib
vtkImagingColor-9.1d.lib
vtkImagingCore-9.1d.lib
vtkImagingFourier-9.1d.lib
vtkImagingGeneral-9.1d.lib
vtkImagingHybrid-9.1d.lib
vtkImagingMath-9.1d.lib
vtkImagingMorphological-9.1d.lib
vtkImagingSources-9.1d.lib
vtkImagingStatistics-9.1d.lib
vtkImagingStencil-9.1d.lib
vtkInfovisCore-9.1d.lib
vtkInfovisLayout-9.1d.lib
vtkInteractionImage-9.1d.lib
vtkInteractionStyle-9.1d.lib
vtkInteractionWidgets-9.1d.lib
vtkIOAMR-9.1d.lib
vtkIOAsynchronous-9.1d.lib
vtkIOCGNSReader-9.1d.lib
vtkIOChemistry-9.1d.lib
vtkIOCityGML-9.1d.lib
vtkIOCONVERGECFD-9.1d.lib
vtkIOCore-9.1d.lib
vtkIOEnSight-9.1d.lib
vtkIOExodus-9.1d.lib
vtkIOExport-9.1d.lib
vtkIOExportGL2PS-9.1d.lib
vtkIOExportPDF-9.1d.lib
vtkIOGeometry-9.1d.lib
vtkIOHDF-9.1d.lib
vtkIOImage-9.1d.lib
vtkIOImport-9.1d.lib
vtkIOInfovis-9.1d.lib
vtkIOIOSS-9.1d.lib
vtkIOLegacy-9.1d.lib
vtkIOLSDyna-9.1d.lib
vtkIOMINC-9.1d.lib
vtkIOMotionFX-9.1d.lib
vtkIOMovie-9.1d.lib
vtkIONetCDF-9.1d.lib
vtkIOOggTheora-9.1d.lib
vtkIOParallel-9.1d.lib
vtkIOParallelXML-9.1d.lib
vtkIOPLY-9.1d.lib
vtkIOSegY-9.1d.lib
vtkIOSQL-9.1d.lib
vtkioss-9.1d.lib
vtkIOTecplotTable-9.1d.lib
vtkIOVeraOut-9.1d.lib
vtkIOVideo-9.1d.lib
vtkIOXML-9.1d.lib
vtkIOXMLParser-9.1d.lib
vtkjpeg-9.1d.lib
vtkjsoncpp-9.1d.lib
vtkkissfft-9.1d.lib
vtklibharu-9.1d.lib
vtklibproj-9.1d.lib
vtklibxml2-9.1d.lib
vtkloguru-9.1d.lib
vtklz4-9.1d.lib
vtklzma-9.1d.lib
vtkmetaio-9.1d.lib
vtknetcdf-9.1d.lib
vtkogg-9.1d.lib
vtkParallelCore-9.1d.lib
vtkParallelDIY-9.1d.lib
vtkpng-9.1d.lib
vtkpugixml-9.1d.lib
vtkRenderingAnnotation-9.1d.lib
vtkRenderingContext2D-9.1d.lib
vtkRenderingContextOpenGL2-9.1d.lib
vtkRenderingCore-9.1d.lib
vtkRenderingFreeType-9.1d.lib
vtkRenderingGL2PSOpenGL2-9.1d.lib
vtkRenderingImage-9.1d.lib
vtkRenderingLabel-9.1d.lib
vtkRenderingLOD-9.1d.lib
vtkRenderingOpenGL2-9.1d.lib
vtkRenderingSceneGraph-9.1d.lib
vtkRenderingUI-9.1d.lib
vtkRenderingVolume-9.1d.lib
vtkRenderingVolumeOpenGL2-9.1d.lib
vtkRenderingVtkJS-9.1d.lib
vtksqlite-9.1d.lib
vtksys-9.1d.lib
vtkTestingRendering-9.1d.lib
vtktheora-9.1d.lib
vtktiff-9.1d.lib
vtkverdict-9.1d.lib
vtkViewsContext2D-9.1d.lib
vtkViewsCore-9.1d.lib
vtkViewsInfovis-9.1d.lib
vtkWrappingTools-9.1d.lib
vtkzlib-9.1d.lib

PCL1.12.1 release版本.lib文件列表:
pcl_common.lib
pcl_features.lib
pcl_filters.lib
pcl_io.lib
pcl_io_ply.lib
pcl_kdtree.lib
pcl_keypoints.lib
pcl_ml.lib
pcl_octree.lib
pcl_outofcore.lib
pcl_people.lib
pcl_recognition.lib
pcl_registration.lib
pcl_sample_consensus.lib
pcl_search.lib
pcl_segmentation.lib
pcl_stereo.lib
pcl_surface.lib
pcl_tracking.lib
pcl_visualization.lib
libboost_atomic-vc142-mt-x64-1_78.lib
libboost_bzip2-vc142-mt-x64-1_78.lib
libboost_chrono-vc142-mt-x64-1_78.lib
libboost_container-vc142-mt-x64-1_78.lib
libboost_context-vc142-mt-x64-1_78.lib
libboost_contract-vc142-mt-x64-1_78.lib
libboost_coroutine-vc142-mt-x64-1_78.lib
libboost_date_time-vc142-mt-x64-1_78.lib
libboost_exception-vc142-mt-x64-1_78.lib
libboost_filesystem-vc142-mt-x64-1_78.lib
libboost_graph-vc142-mt-x64-1_78.lib
libboost_graph_parallel-vc142-mt-x64-1_78.lib
libboost_iostreams-vc142-mt-x64-1_78.lib
libboost_json-vc142-mt-x64-1_78.lib
libboost_locale-vc142-mt-x64-1_78.lib
libboost_log-vc142-mt-x64-1_78.lib
libboost_log_setup-vc142-mt-x64-1_78.lib
libboost_math_c99-vc142-mt-x64-1_78.lib
libboost_math_c99f-vc142-mt-x64-1_78.lib
libboost_math_c99l-vc142-mt-x64-1_78.lib
libboost_math_tr1-vc142-mt-x64-1_78.lib
libboost_math_tr1f-vc142-mt-x64-1_78.lib
libboost_math_tr1l-vc142-mt-x64-1_78.lib
libboost_mpi-vc142-mt-x64-1_78.lib
libboost_nowide-vc142-mt-x64-1_78.lib
libboost_numpy38-vc142-mt-x64-1_78.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_78.lib
libboost_program_options-vc142-mt-x64-1_78.lib
libboost_python38-vc142-mt-x64-1_78.lib
libboost_random-vc142-mt-x64-1_78.lib
libboost_regex-vc142-mt-x64-1_78.lib
libboost_serialization-vc142-mt-x64-1_78.lib
libboost_system-vc142-mt-x64-1_78.lib
libboost_test_exec_monitor-vc142-mt-x64-1_78.lib
libboost_thread-vc142-mt-x64-1_78.lib
libboost_timer-vc142-mt-x64-1_78.lib
libboost_type_erasure-vc142-mt-x64-1_78.lib
libboost_unit_test_framework-vc142-mt-x64-1_78.lib
libboost_wave-vc142-mt-x64-1_78.lib
libboost_wserialization-vc142-mt-x64-1_78.lib
libboost_zlib-vc142-mt-x64-1_78.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
OpenNI2.lib
qhullcpp.lib
qhullstatic.lib
qhullstatic_r.lib
qhull_r.lib
vtkcgns-9.1.lib
vtkChartsCore-9.1.lib
vtkCommonColor-9.1.lib
vtkCommonComputationalGeometry-9.1.lib
vtkCommonCore-9.1.lib
vtkCommonDataModel-9.1.lib
vtkCommonExecutionModel-9.1.lib
vtkCommonMath-9.1.lib
vtkCommonMisc-9.1.lib
vtkCommonSystem-9.1.lib
vtkCommonTransforms-9.1.lib
vtkDICOMParser-9.1.lib
vtkDomainsChemistry-9.1.lib
vtkDomainsChemistryOpenGL2-9.1.lib
vtkdoubleconversion-9.1.lib
vtkexodusII-9.1.lib
vtkexpat-9.1.lib
vtkFiltersAMR-9.1.lib
vtkFiltersCore-9.1.lib
vtkFiltersExtraction-9.1.lib
vtkFiltersFlowPaths-9.1.lib
vtkFiltersGeneral-9.1.lib
vtkFiltersGeneric-9.1.lib
vtkFiltersGeometry-9.1.lib
vtkFiltersHybrid-9.1.lib
vtkFiltersHyperTree-9.1.lib
vtkFiltersImaging-9.1.lib
vtkFiltersModeling-9.1.lib
vtkFiltersParallel-9.1.lib
vtkFiltersParallelImaging-9.1.lib
vtkFiltersPoints-9.1.lib
vtkFiltersProgrammable-9.1.lib
vtkFiltersSelection-9.1.lib
vtkFiltersSMP-9.1.lib
vtkFiltersSources-9.1.lib
vtkFiltersStatistics-9.1.lib
vtkFiltersTexture-9.1.lib
vtkFiltersTopology-9.1.lib
vtkFiltersVerdict-9.1.lib
vtkfmt-9.1.lib
vtkfreetype-9.1.lib
vtkGeovisCore-9.1.lib
vtkgl2ps-9.1.lib
vtkglew-9.1.lib
vtkhdf5-9.1.lib
vtkhdf5_hl-9.1.lib
vtkImagingColor-9.1.lib
vtkImagingCore-9.1.lib
vtkImagingFourier-9.1.lib
vtkImagingGeneral-9.1.lib
vtkImagingHybrid-9.1.lib
vtkImagingMath-9.1.lib
vtkImagingMorphological-9.1.lib
vtkImagingSources-9.1.lib
vtkImagingStatistics-9.1.lib
vtkImagingStencil-9.1.lib
vtkInfovisCore-9.1.lib
vtkInfovisLayout-9.1.lib
vtkInteractionImage-9.1.lib
vtkInteractionStyle-9.1.lib
vtkInteractionWidgets-9.1.lib
vtkIOAMR-9.1.lib
vtkIOAsynchronous-9.1.lib
vtkIOCGNSReader-9.1.lib
vtkIOChemistry-9.1.lib
vtkIOCityGML-9.1.lib
vtkIOCONVERGECFD-9.1.lib
vtkIOCore-9.1.lib
vtkIOEnSight-9.1.lib
vtkIOExodus-9.1.lib
vtkIOExport-9.1.lib
vtkIOExportGL2PS-9.1.lib
vtkIOExportPDF-9.1.lib
vtkIOGeometry-9.1.lib
vtkIOHDF-9.1.lib
vtkIOImage-9.1.lib
vtkIOImport-9.1.lib
vtkIOInfovis-9.1.lib
vtkIOIOSS-9.1.lib
vtkIOLegacy-9.1.lib
vtkIOLSDyna-9.1.lib
vtkIOMINC-9.1.lib
vtkIOMotionFX-9.1.lib
vtkIOMovie-9.1.lib
vtkIONetCDF-9.1.lib
vtkIOOggTheora-9.1.lib
vtkIOParallel-9.1.lib
vtkIOParallelXML-9.1.lib
vtkIOPLY-9.1.lib
vtkIOSegY-9.1.lib
vtkIOSQL-9.1.lib
vtkioss-9.1.lib
vtkIOTecplotTable-9.1.lib
vtkIOVeraOut-9.1.lib
vtkIOVideo-9.1.lib
vtkIOXML-9.1.lib
vtkIOXMLParser-9.1.lib
vtkjpeg-9.1.lib
vtkjsoncpp-9.1.lib
vtkkissfft-9.1.lib
vtklibharu-9.1.lib
vtklibproj-9.1.lib
vtklibxml2-9.1.lib
vtkloguru-9.1.lib
vtklz4-9.1.lib
vtklzma-9.1.lib
vtkmetaio-9.1.lib
vtknetcdf-9.1.lib
vtkogg-9.1.lib
vtkParallelCore-9.1.lib
vtkParallelDIY-9.1.lib
vtkpng-9.1.lib
vtkpugixml-9.1.lib
vtkRenderingAnnotation-9.1.lib
vtkRenderingContext2D-9.1.lib
vtkRenderingContextOpenGL2-9.1.lib
vtkRenderingCore-9.1.lib
vtkRenderingFreeType-9.1.lib
vtkRenderingGL2PSOpenGL2-9.1.lib
vtkRenderingImage-9.1.lib
vtkRenderingLabel-9.1.lib
vtkRenderingLOD-9.1.lib
vtkRenderingOpenGL2-9.1.lib
vtkRenderingSceneGraph-9.1.lib
vtkRenderingUI-9.1.lib
vtkRenderingVolume-9.1.lib
vtkRenderingVolumeOpenGL2-9.1.lib
vtkRenderingVtkJS-9.1.lib
vtksqlite-9.1.lib
vtksys-9.1.lib
vtkTestingRendering-9.1.lib
vtktheora-9.1.lib
vtktiff-9.1.lib
vtkverdict-9.1.lib
vtkViewsContext2D-9.1.lib
vtkViewsCore-9.1.lib
vtkViewsInfovis-9.1.lib
vtkWrappingTools-9.1.lib
vtkzlib-9.1.lib

至此,PCL的配置完成,下面就是尝试运行程序检查一下配置是否成功。

3 PCL运行验证

首先要下载点云模型

下载网址:https://www.cc.gatech.edu/projects/large_models/

不过网络真的很慢,我至今也没成功下载过,因此我选择的方法是找学长要了一下点云模型的数据。。
这里的代码我也是使用了原博主的代码,注意要自己更改一下点云数据的路径:

#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#pragma warning(disable:4996)
using namespace pcl;
using namespace pcl::io;

int user_data;

void
viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor(1.0, 0.5, 1.0);
    pcl::PointXYZ o;
    o.x = 1.0;
    o.y = 0;
    o.z = 0;
    //viewer.addSphere(o, 0.25, "sphere", 0);
    std::cout << "i only run once" << std::endl;

}

void
viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
    static unsigned count = 0;
    std::stringstream ss;
    ss << "Once per viewer loop: " << count++;
    //viewer.removeShape("text", 0);
    //viewer.addText(ss.str(), 200, 300, "text", 0);

    //FIXME: possible race condition here:
    user_data++;
}

int
main()
{

    pcl::PLYReader reader;
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
    reader.read<pcl::PointXYZ>("bunny\\reconstruction\\bun_zipper.ply", *cloud1);
    pcl::io::savePCDFile("bunny\\pointcloud.pcd", *cloud1);

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile("bunny\\pointcloud.pcd", *cloud);

    pcl::visualization::CloudViewer viewer("Cloud Viewer");

    //blocks until the cloud is actually rendered
    viewer.showCloud(cloud);

    //use the following functions to get access to the underlying more advanced/powerful
    //PCLVisualizer

    //This will only get called once
    viewer.runOnVisualizationThreadOnce(viewerOneOff);

    //This will get called once per visualization iteration
    viewer.runOnVisualizationThread(viewerPsycho);
    while (!viewer.wasStopped())
    {
        //you can also do cool processing here
        //FIXME: Note that this is running in a separate thread from viewerPsycho
        //and you should guard against race conditions yourself...
        user_data++;
    }
    return 0;
}

运行后会发现出现了这样的问题:找不到dll文件

上网查了一下,选择如下方法:
打开属性页,选择配置属性 -> 调试 -> 环境,将下面环境粘贴进去

PATH=$(PCL_ROOT)\bin;$(PCL_ROOT)\3rdParty\FLANN\bin;$(PCL_ROOT)\3rdParty\VTK\bin;$(PCL_ROOT)\Qhull\bin;$(PCL_ROOT)\3rdParty\OpenNI2\Tools;$(PATH)

然后再运行,不会报错,出现配准结果

4 写在最后

说实话在这整个配置纠错的过程中还有许多许多小细节有些记不清了,另外我的全过程都有参考开头博文的链接,我觉得那位博主写的是非常清晰正确的,也欢迎大家对我的过程批评指正。

到此这篇关于win10系统VS2019配置点云库PCL1.12.1的教程与经验总结的文章就介绍到这了,更多相关win10 VS2019 PCL1.12.1配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pcl1.8.0+vs2013环境配置超详细教程

    目录 准备 安装 配置 最近开始学习pcl,经过几天的捣鼓终于将pcl1.8.0和vs2013的环境搭建起来. 准备 pcl版本:PCL-1.8.0-AllInOne-msvc2013-win64 vs版本:vs2013 下载地址链接:链接: https://pan.baidu.com/s/1L6trLERkzylkBUjTw94RNQ?pwd=ep39   提取码: ep39 因为我的电脑是64位的,所以只有64位版本. 安装 vs2013下载解压默认安装就好了. PCL整个安装过程需要注意以

  • VS中PCL库附加依赖项配置过程解析

    在VS中使用PCL库通常要经过一些配置,参考https://www.jb51.net/article/256416.htm教程中第一部分PCL安装及在VS2013中使用PCL. 其中包含目录和库目录的设置都简单,根据自己安装目录的差别略有不同:但是附加依赖项则较为复杂一点,主要是因为附加依赖项太多了.很多情况下我们配置附加依赖项都是直接复制网上教程中别人的附加依赖项,对于不同版本的PCL可能附加依赖项就会略有不同,全盘复制很有可能导致link error,有些依赖项找不到有些又缺失.其实附加依赖

  • win10系统下 VS2019点云库PCL1.12.0的安装与配置教程

    PCL简介:点云库全称是Point Cloud Library(PCL),是一个独立的.大规模的.开放的2D/3D图像和点云处理项目.PCL根据BSD许可条款发布的,是可以免费用于商用和研究使用. PCL相关网站: PCL官网.项目GitHub 项目开发需要用到PCL,下面记录一下我的PCL安装和配置过程. 参考博文:pcl1.8.0+vs2013环境配置(详细 1. 版本信息 win10系统 PCL:我安装的是PCL 1.12.0,需要下载两个文件: 下载地址: Releases · Poin

  • win7/win10+vs2015+pcl1.8.0配置方案详解

    目录 一.下载相关文件 二.Windows7下安装步骤: 三.系统配置步骤 四.VS2015工程配置步骤 五.程序实际测试 一.下载相关文件 1.下载PCL-1.8.0-AllInOne-msvc2015-win64.exe.属性表和PDB和测试pcd文件rabbit.pcd,其中,属性表可以不下载. 链接: https://pan.baidu.com/s/1aDvkLxAcvOdVQWqXu1pPlA?pwd=27fa 提取码: 27fa 二.Windows7下安装步骤: 1.点击PCL-1.

  • win10系统VS2019配置点云库PCL1.12.1的详细流程

    目录 0 写在最前 1 PCL的下载安装 1.1 PCL下载 1.2 PCL安装 1.3 bin文件拷贝 1.4 其他问题 2 在VS中配置PCL 2.1 前期工作 2.1 添加包含目录 2.2 添加库目录 2.3 添加依赖项 3 PCL运行验证 4 写在最后 0 写在最前 这是本人昨天在VS2019上配置PCL点云库的一些基本流程以及一些问题的总结,有些问题我的解决办法不一定是最优的,仅供大家参考,当然这里也记录了我这个小白在配置过程中踩过的一些小坑,希望能为大家带来方便. 本文参考博文:ht

  • Win10 系统下VisualStudio2019 配置点云库 PCL1.11.0的图文教程

    一.下载PCL1.11.0 Github下载地址:https://github.com/PointCloudLibrary/pcl/releases 下载红框内的两个文件 二.安装PCL1.11.0 2.1 安装"PCL-1.11.0-AllInOne-msvc2019-win64.exe". (1)选择第二个,自动添加系统变量 (2)安装路径选择D盘,系统会自动新建PCL 1.11.0文件夹. 2.2 安装完成之后打开文件夹 D:\PCL 1.11.0\3rdParty\OpenNI

  • c# 理解csredis库实现分布式锁的详细流程

    声明: 这里首先使用的是csredis,地址是https://github.com/2881099/csredis 该库本身已经足够完善,这里我画蛇添足一下,为了方便自己的使用. 本身csredis库已经实现了完整的加锁和去锁的逻辑,这里实现的与库本身所实现的有以下几点区别(csredis实现代码位置为:https://github.com/2881099/csredis/blob/bb6d947695770333027f3936f80052041db41b64/src/CSRedisCore/

  • win10系统下python3安装及pip换源和使用教程

    一.python3的安装 建议安装python3,python2在未来将不再维护. python官方下载地址 https://www.python.org/downloads/windows/ 选择 executable installer ,根据自己系统选择64位还是32位的安装包. 下载完成后双击运行 勾选Add Python 3.7 to PATH,方便在cmd命令行中调用,然后选择Customize installation. pip必选,其他根据自己的情况选择,无Pycharm等pyt

  • ubuntu用 vmware 安装win10系统的教程(分享)

    1,下载 VMware Workstation 14 Pro 官网:https://www.vmware.com/cn.html 需要注册一下才能下载,当然你也可以在其他网站下载.需要下载VMware Workstation 14.0.0 Pro for Linux 这个版本,下载结束之后的文件是:VMware-Workstation-Full-14.0.0-6661328.x86_64.bundle 永久激活密钥: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFX

  • Win10系统下安装labelme及json文件批量转化方法

    一.安装环境:windows10,anaconda3,python3.6 由于框架maskrcnn需要json数据集,在没安装labelme环境和跑深度学习之前,我安装的是anaconda3,其中pyhton是3.7版本的,经网上查阅资料,经过一番查找资料,发现,原来在2019年,TensorFlow还不支持python3.7,所以,迫于无奈,我只能乖乖把python的版本退回到3.6版本,具体步骤也很简单.就是打开anaconda prompt ,然后输入conda install pytho

  • win10系统下安装superset的步骤

    superset是一个轻量级自助式BI框架,以优雅的界面和根据数据表动态生成数据为主要特点. 一. 环境 windows 10 64位 Python 3.7 二. 安装步骤 安装Python 建议安装Python 3.7 版本,Python官网:https://www.python.org/downloads/release/python-373/ 下载64位Python下载 python-3.7.3-amd64.exe,直接使用exe的安装包即可,安装过程中选中增加到环境变量. 安装VS201

  • python词云库wordCloud使用方法详解(解决中文乱码)

    文章中的例子主要借鉴wordColud的examples,在文章对examples中的例子做了一些改动. 一.wordColud设计中文词云乱码 使用wordColud设计词云的时候可能会产生乱码问题,因为wordColud默认的字体不支持中文,所以我们只需要替换wordColud的默认字体即可正常显示中文. 1.中文词云乱码 我们使用simhei(黑体)来替换wordColud的默认字体. 2.替换默认字体 a.在字体文件*.tff字体文件(simhei.tff)拷贝到wordColud安装的

  • 如何在Win10系统使用Python3连接Hive

    由于数据存放在大数据平台的Hive数据仓库中,我需要在Win10系统上利用Python3连接Hive,然后读取数据,进行探索.分析和挖掘工作. 我通过网上查找资料和实际测试,把Win10系统Python3成功连接Hive配置总结如下. 第一步:安装依赖库 pip install bitarray pip install bit_array pip install thrift pip install thriftpy pip install pure_sasl pip install --no-

随机推荐