Visual Studio配置PCL库

Visual Studio配置PCL库

  • Debug和Release
    • 配置新建项目
    • 配置属性表
    • 测试
    • 参考

Debug和Release

Debug和Release的配置过程一模一样,唯一区别就在于最后一步插入的附加依赖项不同,因此下面以debug为例。

配置新建项目

1、新建一个C++空项目,模式设置为Debug,X64
在这里插入图片描述
在这里插入图片描述
2、在源文件内新建一个c++文件,后缀是cpp。
在这里插入图片描述
3、右键刚刚新建的项目(注意不是源文件),选择:属性–配置属性–调试–环境–编辑,添加如下的环境
在这里插入图片描述

PATH=D:/Windows/softwares/PCL 1.13.1/bin;D:/Windows/softwares/PCL 1.13.1/3rdParty/FLANN/bin;D:/Windows/softwares/PCL 1.13.1/3rdParty/VTK/bin;D:/Windows/softwares/PCL 1.13.1/3rdParty/OpenNI2/Tools

4、选择 C/C+±-语言–符合模式–设置为否
在这里插入图片描述
5、选择 C/C+±-所有选项–SDL检查–设置为否
在这里插入图片描述
5、点击应用确定

配置属性表

1、找到属性管理器:视图–其他窗口–属性管理器
在这里插入图片描述
2、在属性管理器里找到Debug|x64(如果配置release,就找到release|x64),右键打开后选择新建新的项目属性表,名称自定义
在这里插入图片描述
在这里插入图片描述
3、右键新建的属性表,打开属性:C/C++ – 所有选项 – SDL检查 – 设置为否:
在这里插入图片描述
在这里插入图片描述
4、选择VC++目录 – 包含目录 – 编辑 --添加新的目录如下
在这里插入图片描述
在这里插入图片描述
内容如下:

D:/Windows/softwares/PCL 1.13.1/include/pcl-1.13
D:/Windows/softwares/PCL 1.13.1/3rdParty/Boost/include/boost-1_82
D:/Windows/softwares/PCL 1.13.1/3rdParty/Eigen/eigen3
D:/Windows/softwares/PCL 1.13.1/3rdParty/FLANN/include
D:/Windows/softwares/PCL 1.13.1/3rdParty/Qhull/include
D:/Windows/softwares/PCL 1.13.1/3rdParty/VTK/include/vtk-9.2
D:/Windows/softwares/PCL 1.13.1/3rdParty/OpenNI2/Include```

5、选择VC++目录 – 库目录 – 编辑 --添加新的目录如下
在这里插入图片描述
内容如下:

D:/Windows/softwares/PCL 1.13.1/lib
D:/Windows/softwares/PCL 1.13.1/3rdParty/Boost/lib
D:/Windows/softwares/PCL 1.13.1/3rdParty/FLANN/lib
D:/Windows/softwares/PCL 1.13.1/3rdParty/Qhull/lib
D:/Windows/softwares/PCL 1.13.1/3rdParty/VTK/lib
D:/Windows/softwares/PCL 1.13.1/3rdParty/OpenNI2/Lib

6、选择C/C++ – 预处理器 – 预处理器定义 – 编辑 --添加预处理器定义如下
在这里插入图片描述
在这里插入图片描述
内容如下:

BOOST_USE_WINDOWS_H
NOMINMAX
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

7、接着点击属性页中的链接器下的输入,点击右侧的附加依赖项右侧的下拉菜单,选择编辑,将链接库名填入:
在这里插入图片描述
在这里插入图片描述
链接库名可以自动生成,在pcl文件夹的lib目录3rdParty中Boost、FLANN、Qhull、VTK、OpenNI2的lib目录下分别新建txt文件:get.txt,并写入如下内容,随后改为get.bat运行生成相应文件。读取出来的链接库是包含了release版本和Debug版本(名字后面带d或者gd的)两种。

pcl的,这里自动读出来debug版本链接库名和全部链接库名,手动从liblist-all.txt中删除liblist-debug.txt中出现的文件名就生成了release版本

DIR *d.lib /B >liblist-debug.txt
DIR *.lib /B >liblist-all.txt

Boost的,这里自动生成debug和release版本

DIR *mt-gd-x64-1_82.lib /B >aboost-debug.txt
DIR *mt-x64-1_82.lib /B >aboost-rel.txt
DIR *.lib /B >aboost-all.txt

FLANN的,这里自动读出来debug版本和全部链接库名,手动从aflann-all.txt中删除aflann-debug.txt中出现的文件名就生成了release版本

DIR *gd.lib /B >aflann-debug.txt
DIR *.lib /B >aflann-all.txt

Qhull的,这里自动读出来debug版本和全部链接库名,手动从aqhull-all.txt中删除aqhull-debug.txt中出现的文件名就生成了release版本

DIR *d.lib /B >aqhull-debug.txt
DIR *.lib /B >aqhull-rel.txt
DIR *.lib /B >aqhull-all.txt

VTK的,这里自动生成debug和release版本

DIR *gd.lib /B >vtk-debug.txt
DIR *9.2.lib /B >vtk-rel.txt
DIR *.lib /B >vtk-all.txt

OpenNI2的Lib目录下只有一个lib文件,直接复制文件名(带扩展名)即可。这一个既放入debug中也放入release中。

PCL1.13.1版本汇总如下,如果PCL版本和我一样,可以直接复制我下面汇总好的。
debug版本:

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
vtkcgns-9.2-gd.lib
vtkChartsCore-9.2-gd.lib
vtkCommonColor-9.2-gd.lib
vtkCommonComputationalGeometry-9.2-gd.lib
vtkCommonCore-9.2-gd.lib
vtkCommonDataModel-9.2-gd.lib
vtkCommonExecutionModel-9.2-gd.lib
vtkCommonMath-9.2-gd.lib
vtkCommonMisc-9.2-gd.lib
vtkCommonSystem-9.2-gd.lib
vtkCommonTransforms-9.2-gd.lib
vtkDICOMParser-9.2-gd.lib
vtkDomainsChemistry-9.2-gd.lib
vtkDomainsChemistryOpenGL2-9.2-gd.lib
vtkdoubleconversion-9.2-gd.lib
vtkexodusII-9.2-gd.lib
vtkexpat-9.2-gd.lib
vtkFiltersAMR-9.2-gd.lib
vtkFiltersCore-9.2-gd.lib
vtkFiltersExtraction-9.2-gd.lib
vtkFiltersFlowPaths-9.2-gd.lib
vtkFiltersGeneral-9.2-gd.lib
vtkFiltersGeneric-9.2-gd.lib
vtkFiltersGeometry-9.2-gd.lib
vtkFiltersHybrid-9.2-gd.lib
vtkFiltersHyperTree-9.2-gd.lib
vtkFiltersImaging-9.2-gd.lib
vtkFiltersModeling-9.2-gd.lib
vtkFiltersParallel-9.2-gd.lib
vtkFiltersParallelImaging-9.2-gd.lib
vtkFiltersPoints-9.2-gd.lib
vtkFiltersProgrammable-9.2-gd.lib
vtkFiltersSelection-9.2-gd.lib
vtkFiltersSMP-9.2-gd.lib
vtkFiltersSources-9.2-gd.lib
vtkFiltersStatistics-9.2-gd.lib
vtkFiltersTexture-9.2-gd.lib
vtkFiltersTopology-9.2-gd.lib
vtkFiltersVerdict-9.2-gd.lib
vtkfmt-9.2-gd.lib
vtkfreetype-9.2-gd.lib
vtkGeovisCore-9.2-gd.lib
vtkgl2ps-9.2-gd.lib
vtkglew-9.2-gd.lib
vtkhdf5-9.2-gd.lib
vtkhdf5_hl-9.2-gd.lib
vtkImagingColor-9.2-gd.lib
vtkImagingCore-9.2-gd.lib
vtkImagingFourier-9.2-gd.lib
vtkImagingGeneral-9.2-gd.lib
vtkImagingHybrid-9.2-gd.lib
vtkImagingMath-9.2-gd.lib
vtkImagingMorphological-9.2-gd.lib
vtkImagingSources-9.2-gd.lib
vtkImagingStatistics-9.2-gd.lib
vtkImagingStencil-9.2-gd.lib
vtkInfovisCore-9.2-gd.lib
vtkInfovisLayout-9.2-gd.lib
vtkInteractionImage-9.2-gd.lib
vtkInteractionStyle-9.2-gd.lib
vtkInteractionWidgets-9.2-gd.lib
vtkIOAMR-9.2-gd.lib
vtkIOAsynchronous-9.2-gd.lib
vtkIOCesium3DTiles-9.2-gd.lib
vtkIOCGNSReader-9.2-gd.lib
vtkIOChemistry-9.2-gd.lib
vtkIOCityGML-9.2-gd.lib
vtkIOCONVERGECFD-9.2-gd.lib
vtkIOCore-9.2-gd.lib
vtkIOEnSight-9.2-gd.lib
vtkIOExodus-9.2-gd.lib
vtkIOExport-9.2-gd.lib
vtkIOExportGL2PS-9.2-gd.lib
vtkIOExportPDF-9.2-gd.lib
vtkIOGeometry-9.2-gd.lib
vtkIOHDF-9.2-gd.lib
vtkIOImage-9.2-gd.lib
vtkIOImport-9.2-gd.lib
vtkIOInfovis-9.2-gd.lib
vtkIOIOSS-9.2-gd.lib
vtkIOLegacy-9.2-gd.lib
vtkIOLSDyna-9.2-gd.lib
vtkIOMINC-9.2-gd.lib
vtkIOMotionFX-9.2-gd.lib
vtkIOMovie-9.2-gd.lib
vtkIONetCDF-9.2-gd.lib
vtkIOOggTheora-9.2-gd.lib
vtkIOParallel-9.2-gd.lib
vtkIOParallelXML-9.2-gd.lib
vtkIOPLY-9.2-gd.lib
vtkIOSegY-9.2-gd.lib
vtkIOSQL-9.2-gd.lib
vtkioss-9.2-gd.lib
vtkIOTecplotTable-9.2-gd.lib
vtkIOVeraOut-9.2-gd.lib
vtkIOVideo-9.2-gd.lib
vtkIOXML-9.2-gd.lib
vtkIOXMLParser-9.2-gd.lib
vtkjpeg-9.2-gd.lib
vtkjsoncpp-9.2-gd.lib
vtkkissfft-9.2-gd.lib
vtklibharu-9.2-gd.lib
vtklibproj-9.2-gd.lib
vtklibxml2-9.2-gd.lib
vtkloguru-9.2-gd.lib
vtklz4-9.2-gd.lib
vtklzma-9.2-gd.lib
vtkmetaio-9.2-gd.lib
vtknetcdf-9.2-gd.lib
vtkogg-9.2-gd.lib
vtkParallelCore-9.2-gd.lib
vtkParallelDIY-9.2-gd.lib
vtkpng-9.2-gd.lib
vtkpugixml-9.2-gd.lib
vtkRenderingAnnotation-9.2-gd.lib
vtkRenderingContext2D-9.2-gd.lib
vtkRenderingContextOpenGL2-9.2-gd.lib
vtkRenderingCore-9.2-gd.lib
vtkRenderingFreeType-9.2-gd.lib
vtkRenderingGL2PSOpenGL2-9.2-gd.lib
vtkRenderingHyperTreeGrid-9.2-gd.lib
vtkRenderingImage-9.2-gd.lib
vtkRenderingLabel-9.2-gd.lib
vtkRenderingLICOpenGL2-9.2-gd.lib
vtkRenderingLOD-9.2-gd.lib
vtkRenderingOpenGL2-9.2-gd.lib
vtkRenderingSceneGraph-9.2-gd.lib
vtkRenderingUI-9.2-gd.lib
vtkRenderingVolume-9.2-gd.lib
vtkRenderingVolumeOpenGL2-9.2-gd.lib
vtkRenderingVtkJS-9.2-gd.lib
vtksqlite-9.2-gd.lib
vtksys-9.2-gd.lib
vtkTestingRendering-9.2-gd.lib
vtktheora-9.2-gd.lib
vtktiff-9.2-gd.lib
vtkverdict-9.2-gd.lib
vtkViewsContext2D-9.2-gd.lib
vtkViewsCore-9.2-gd.lib
vtkViewsInfovis-9.2-gd.lib
vtkWrappingTools-9.2-gd.lib
vtkzlib-9.2-gd.lib
qhullcpp_d.lib
qhullstatic_d.lib
qhullstatic_rd.lib
qhull_rd.lib
flann-gd.lib
flann_cpp-gd.lib
flann_cpp_s-gd.lib
flann_s-gd.lib
libboost_atomic-vc143-mt-gd-x64-1_82.lib
libboost_bzip2-vc143-mt-gd-x64-1_82.lib
libboost_chrono-vc143-mt-gd-x64-1_82.lib
libboost_container-vc143-mt-gd-x64-1_82.lib
libboost_context-vc143-mt-gd-x64-1_82.lib
libboost_contract-vc143-mt-gd-x64-1_82.lib
libboost_coroutine-vc143-mt-gd-x64-1_82.lib
libboost_date_time-vc143-mt-gd-x64-1_82.lib
libboost_exception-vc143-mt-gd-x64-1_82.lib
libboost_fiber-vc143-mt-gd-x64-1_82.lib
libboost_filesystem-vc143-mt-gd-x64-1_82.lib
libboost_graph-vc143-mt-gd-x64-1_82.lib
libboost_graph_parallel-vc143-mt-gd-x64-1_82.lib
libboost_iostreams-vc143-mt-gd-x64-1_82.lib
libboost_json-vc143-mt-gd-x64-1_82.lib
libboost_locale-vc143-mt-gd-x64-1_82.lib
libboost_log-vc143-mt-gd-x64-1_82.lib
libboost_log_setup-vc143-mt-gd-x64-1_82.lib
libboost_math_c99-vc143-mt-gd-x64-1_82.lib
libboost_math_c99f-vc143-mt-gd-x64-1_82.lib
libboost_math_c99l-vc143-mt-gd-x64-1_82.lib
libboost_math_tr1-vc143-mt-gd-x64-1_82.lib
libboost_math_tr1f-vc143-mt-gd-x64-1_82.lib
libboost_math_tr1l-vc143-mt-gd-x64-1_82.lib
libboost_mpi-vc143-mt-gd-x64-1_82.lib
libboost_nowide-vc143-mt-gd-x64-1_82.lib
libboost_numpy310-vc143-mt-gd-x64-1_82.lib
libboost_prg_exec_monitor-vc143-mt-gd-x64-1_82.lib
libboost_program_options-vc143-mt-gd-x64-1_82.lib
libboost_python310-vc143-mt-gd-x64-1_82.lib
libboost_random-vc143-mt-gd-x64-1_82.lib
libboost_regex-vc143-mt-gd-x64-1_82.lib
libboost_serialization-vc143-mt-gd-x64-1_82.lib
libboost_stacktrace_noop-vc143-mt-gd-x64-1_82.lib
libboost_stacktrace_windbg-vc143-mt-gd-x64-1_82.lib
libboost_stacktrace_windbg_cached-vc143-mt-gd-x64-1_82.lib
libboost_system-vc143-mt-gd-x64-1_82.lib
libboost_test_exec_monitor-vc143-mt-gd-x64-1_82.lib
libboost_thread-vc143-mt-gd-x64-1_82.lib
libboost_timer-vc143-mt-gd-x64-1_82.lib
libboost_type_erasure-vc143-mt-gd-x64-1_82.lib
libboost_unit_test_framework-vc143-mt-gd-x64-1_82.lib
libboost_url-vc143-mt-gd-x64-1_82.lib
libboost_wave-vc143-mt-gd-x64-1_82.lib
libboost_wserialization-vc143-mt-gd-x64-1_82.lib
libboost_zlib-vc143-mt-gd-x64-1_82.lib
OpenNI2.lib

release版本:

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
vtkcgns-9.2.lib
vtkChartsCore-9.2.lib
vtkCommonColor-9.2.lib
vtkCommonComputationalGeometry-9.2.lib
vtkCommonCore-9.2.lib
vtkCommonDataModel-9.2.lib
vtkCommonExecutionModel-9.2.lib
vtkCommonMath-9.2.lib
vtkCommonMisc-9.2.lib
vtkCommonSystem-9.2.lib
vtkCommonTransforms-9.2.lib
vtkDICOMParser-9.2.lib
vtkDomainsChemistry-9.2.lib
vtkDomainsChemistryOpenGL2-9.2.lib
vtkdoubleconversion-9.2.lib
vtkexodusII-9.2.lib
vtkexpat-9.2.lib
vtkFiltersAMR-9.2.lib
vtkFiltersCore-9.2.lib
vtkFiltersExtraction-9.2.lib
vtkFiltersFlowPaths-9.2.lib
vtkFiltersGeneral-9.2.lib
vtkFiltersGeneric-9.2.lib
vtkFiltersGeometry-9.2.lib
vtkFiltersHybrid-9.2.lib
vtkFiltersHyperTree-9.2.lib
vtkFiltersImaging-9.2.lib
vtkFiltersModeling-9.2.lib
vtkFiltersParallel-9.2.lib
vtkFiltersParallelImaging-9.2.lib
vtkFiltersPoints-9.2.lib
vtkFiltersProgrammable-9.2.lib
vtkFiltersSelection-9.2.lib
vtkFiltersSMP-9.2.lib
vtkFiltersSources-9.2.lib
vtkFiltersStatistics-9.2.lib
vtkFiltersTexture-9.2.lib
vtkFiltersTopology-9.2.lib
vtkFiltersVerdict-9.2.lib
vtkfmt-9.2.lib
vtkfreetype-9.2.lib
vtkGeovisCore-9.2.lib
vtkgl2ps-9.2.lib
vtkglew-9.2.lib
vtkhdf5-9.2.lib
vtkhdf5_hl-9.2.lib
vtkImagingColor-9.2.lib
vtkImagingCore-9.2.lib
vtkImagingFourier-9.2.lib
vtkImagingGeneral-9.2.lib
vtkImagingHybrid-9.2.lib
vtkImagingMath-9.2.lib
vtkImagingMorphological-9.2.lib
vtkImagingSources-9.2.lib
vtkImagingStatistics-9.2.lib
vtkImagingStencil-9.2.lib
vtkInfovisCore-9.2.lib
vtkInfovisLayout-9.2.lib
vtkInteractionImage-9.2.lib
vtkInteractionStyle-9.2.lib
vtkInteractionWidgets-9.2.lib
vtkIOAMR-9.2.lib
vtkIOAsynchronous-9.2.lib
vtkIOCesium3DTiles-9.2.lib
vtkIOCGNSReader-9.2.lib
vtkIOChemistry-9.2.lib
vtkIOCityGML-9.2.lib
vtkIOCONVERGECFD-9.2.lib
vtkIOCore-9.2.lib
vtkIOEnSight-9.2.lib
vtkIOExodus-9.2.lib
vtkIOExport-9.2.lib
vtkIOExportGL2PS-9.2.lib
vtkIOExportPDF-9.2.lib
vtkIOGeometry-9.2.lib
vtkIOHDF-9.2.lib
vtkIOImage-9.2.lib
vtkIOImport-9.2.lib
vtkIOInfovis-9.2.lib
vtkIOIOSS-9.2.lib
vtkIOLegacy-9.2.lib
vtkIOLSDyna-9.2.lib
vtkIOMINC-9.2.lib
vtkIOMotionFX-9.2.lib
vtkIOMovie-9.2.lib
vtkIONetCDF-9.2.lib
vtkIOOggTheora-9.2.lib
vtkIOParallel-9.2.lib
vtkIOParallelXML-9.2.lib
vtkIOPLY-9.2.lib
vtkIOSegY-9.2.lib
vtkIOSQL-9.2.lib
vtkioss-9.2.lib
vtkIOTecplotTable-9.2.lib
vtkIOVeraOut-9.2.lib
vtkIOVideo-9.2.lib
vtkIOXML-9.2.lib
vtkIOXMLParser-9.2.lib
vtkjpeg-9.2.lib
vtkjsoncpp-9.2.lib
vtkkissfft-9.2.lib
vtklibharu-9.2.lib
vtklibproj-9.2.lib
vtklibxml2-9.2.lib
vtkloguru-9.2.lib
vtklz4-9.2.lib
vtklzma-9.2.lib
vtkmetaio-9.2.lib
vtknetcdf-9.2.lib
vtkogg-9.2.lib
vtkParallelCore-9.2.lib
vtkParallelDIY-9.2.lib
vtkpng-9.2.lib
vtkpugixml-9.2.lib
vtkRenderingAnnotation-9.2.lib
vtkRenderingContext2D-9.2.lib
vtkRenderingContextOpenGL2-9.2.lib
vtkRenderingCore-9.2.lib
vtkRenderingFreeType-9.2.lib
vtkRenderingGL2PSOpenGL2-9.2.lib
vtkRenderingHyperTreeGrid-9.2.lib
vtkRenderingImage-9.2.lib
vtkRenderingLabel-9.2.lib
vtkRenderingLICOpenGL2-9.2.lib
vtkRenderingLOD-9.2.lib
vtkRenderingOpenGL2-9.2.lib
vtkRenderingSceneGraph-9.2.lib
vtkRenderingUI-9.2.lib
vtkRenderingVolume-9.2.lib
vtkRenderingVolumeOpenGL2-9.2.lib
vtkRenderingVtkJS-9.2.lib
vtksqlite-9.2.lib
vtksys-9.2.lib
vtkTestingRendering-9.2.lib
vtktheora-9.2.lib
vtktiff-9.2.lib
vtkverdict-9.2.lib
vtkViewsContext2D-9.2.lib
vtkViewsCore-9.2.lib
vtkViewsInfovis-9.2.lib
vtkWrappingTools-9.2.lib
vtkzlib-9.2.lib
qhullcpp.lib
qhullstatic.lib
qhullstatic_r.lib
qhull_r.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
libboost_atomic-vc143-mt-x64-1_82.lib
libboost_bzip2-vc143-mt-x64-1_82.lib
libboost_chrono-vc143-mt-x64-1_82.lib
libboost_container-vc143-mt-x64-1_82.lib
libboost_context-vc143-mt-x64-1_82.lib
libboost_contract-vc143-mt-x64-1_82.lib
libboost_coroutine-vc143-mt-x64-1_82.lib
libboost_date_time-vc143-mt-x64-1_82.lib
libboost_exception-vc143-mt-x64-1_82.lib
libboost_fiber-vc143-mt-x64-1_82.lib
libboost_filesystem-vc143-mt-x64-1_82.lib
libboost_graph-vc143-mt-x64-1_82.lib
libboost_graph_parallel-vc143-mt-x64-1_82.lib
libboost_iostreams-vc143-mt-x64-1_82.lib
libboost_json-vc143-mt-x64-1_82.lib
libboost_locale-vc143-mt-x64-1_82.lib
libboost_log-vc143-mt-x64-1_82.lib
libboost_log_setup-vc143-mt-x64-1_82.lib
libboost_math_c99-vc143-mt-x64-1_82.lib
libboost_math_c99f-vc143-mt-x64-1_82.lib
libboost_math_c99l-vc143-mt-x64-1_82.lib
libboost_math_tr1-vc143-mt-x64-1_82.lib
libboost_math_tr1f-vc143-mt-x64-1_82.lib
libboost_math_tr1l-vc143-mt-x64-1_82.lib
libboost_mpi-vc143-mt-x64-1_82.lib
libboost_nowide-vc143-mt-x64-1_82.lib
libboost_numpy310-vc143-mt-x64-1_82.lib
libboost_prg_exec_monitor-vc143-mt-x64-1_82.lib
libboost_program_options-vc143-mt-x64-1_82.lib
libboost_python310-vc143-mt-x64-1_82.lib
libboost_random-vc143-mt-x64-1_82.lib
libboost_regex-vc143-mt-x64-1_82.lib
libboost_serialization-vc143-mt-x64-1_82.lib
libboost_stacktrace_noop-vc143-mt-x64-1_82.lib
libboost_stacktrace_windbg-vc143-mt-x64-1_82.lib
libboost_stacktrace_windbg_cached-vc143-mt-x64-1_82.lib
libboost_system-vc143-mt-x64-1_82.lib
libboost_test_exec_monitor-vc143-mt-x64-1_82.lib
libboost_thread-vc143-mt-x64-1_82.lib
libboost_timer-vc143-mt-x64-1_82.lib
libboost_type_erasure-vc143-mt-x64-1_82.lib
libboost_unit_test_framework-vc143-mt-x64-1_82.lib
libboost_url-vc143-mt-x64-1_82.lib
libboost_wave-vc143-mt-x64-1_82.lib
libboost_wserialization-vc143-mt-x64-1_82.lib
libboost_zlib-vc143-mt-x64-1_82.lib
OpenNI2.lib

测试

在源文件内的cpp文件中,拷贝如下内容,运行成功即配置成功。代码需要的test.pcd文件,详见
https://blog.csdn.net/weixin_43464623/article/details/117172725?spm=1001.2014.3001.5506

#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/features/normal_3d.h>
#include <pcl/sample_consensus/method_types.h>
#include <pcl/sample_consensus/model_types.h>
#include <pcl/segmentation/sac_segmentation.h>
#include <pcl/visualization/cloud_viewer.h>int	main(int argc, char* argv[])
{pcl::PCDReader reader;pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);reader.read("test.pcd", *cloud); //读取点云std::cerr << "test point cloud has: " << cloud->size() << " points." << std::endl;pcl::PointCloud<pcl::Normal>::Ptr cloud_normals(new pcl::PointCloud<pcl::Normal>);pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>());pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> ne;  //计算点云法向量ne.setSearchMethod(tree);  //使用kdtree搜索方法ne.setInputCloud(cloud);ne.setKSearch(5);  //使用邻近5个点计算法向量ne.compute(*cloud_normals);pcl::ModelCoefficients::Ptr coefficients_cylinder(new pcl::ModelCoefficients);pcl::PointIndices::Ptr inliers_cylinder(new pcl::PointIndices);pcl::SACSegmentationFromNormals<pcl::PointXYZ, pcl::Normal> seg;  //使用ransac分割圆柱体seg.setOptimizeCoefficients(true);seg.setModelType(pcl::SACMODEL_CYLINDER);  //分割模型设置为圆柱体seg.setMethodType(pcl::SAC_RANSAC);seg.setNormalDistanceWeight(0.05);seg.setMaxIterations(10000);   //迭代次数设置这么大是因为圆柱体不好分割,因此项目中慎用seg.setDistanceThreshold(0.03);seg.setRadiusLimits(0, 0.1);  //半径都要设置的很精确,因此此算法鲁棒性并不高,项目中慎用seg.setInputCloud(cloud);seg.setInputNormals(cloud_normals);seg.segment(*inliers_cylinder, *coefficients_cylinder); std::cerr << "cylinder coefficients: " << *coefficients_cylinder << std::endl;  //打印圆柱体几何模型系数pcl::ExtractIndices<pcl::PointXYZ> extract;extract.setInputCloud(cloud);extract.setIndices(inliers_cylinder);extract.setNegative(false);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_cylinder(new pcl::PointCloud<pcl::PointXYZ>());extract.filter(*cloud_cylinder);  //抽取圆柱体点云if (cloud_cylinder->points.empty()){std::cerr << "Can't find the cylindrical component." << std::endl;}pcl::visualization::PCLVisualizer viewer("Cloud Viewer");int v1(0);  //创建左窗口显式cloud1(原始点云)viewer.createViewPort(0, 0, 0.5, 1.0, v1);  //左右窗口大小划分,1:1viewer.setBackgroundColor(0, 0, 0, v1);viewer.addText("Cloud1", 2, 2, "Cloud1", v1);  //窗口下的标题pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> rgb1(cloud, "z");viewer.addPointCloud<pcl::PointXYZ>(cloud, rgb1, "cloud1", v1);viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud1", v1);int v2(1);  //创建右窗口显示cloud2(圆柱体点云)viewer.createViewPort(0.5, 0, 1.0, 1.0, v2);  //左右窗口大小划分,1:1viewer.setBackgroundColor(0, 0, 0, v2);viewer.addText("Cloud2", 2, 2, "Cloud2", v2);  //窗口下的标题pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> rgb2(cloud_cylinder, "z");viewer.addPointCloud<pcl::PointXYZ>(cloud_cylinder, rgb2, "cloud2", v2);viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud2", v2);viewer.spin();return (0);
}

参考

【1】: https://blog.csdn.net/qq_45006390/article/details/118928500?spm=1001.2014.3001.5506
【2】: https://blog.csdn.net/qq_42676511/article/details/126054136?spm=1001.2014.3001.5506
【3】: https://blog.csdn.net/weixin_43464623/article/details/117172725?spm=1001.2014.3001.5506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux文本三剑客之awk

目录 前言 awk 1.认识awk 2.使用awk 2.1语法 2.2常用命令选项 2.3awk变量 2.3.1内置变量 2.3.2自定义变量 2.4printf命令 awk例题 前言 awk、grep、sed是linux操作文本的三大利器&#xff0c;合称文本三剑客&#xff0c;也是必须掌握的linux命令之一。三者的功能都是…

FreeRTOS源码分析-9 互斥信号量

目录 1 优先级翻转问题 2 互斥信号量概念及其应用 2.2FreeRTOS互斥信号量介绍 2.3FreeRTOS互斥信号量工作原理 3 互斥信号量函数应用 3.1功能分析 3.2API详解 3.3功能实现 4 递归互斥信号量函数应用 4.1死锁现象 ​编辑 4.2API详解 4.3解决死锁 5 互斥信号量实现原…

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)

本文目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 06.代码注意插入算法删除算法完整代码&#xff1a…

关于接口测试用例设计的一些思考

接口测试发现的典型问题 传入参数处理不当&#xff0c;引起程序错误类型溢出&#xff0c;导致数据读取和写入不一致对象权限校验出错&#xff0c;可获取其他角色信息状态出错&#xff0c;导致逻辑处理出现问题逻辑校验不完善定时任务执行出错 接口测试用例设计 接口测试用例…

redis入门3-在java中操作redis

Redis的java客户端 Jedis、Lettuce、Redisson、以及spring提供的spring data redis Jedis操作redis //添加依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.8.0</version> </dep…

JJWT快速入门

本篇介绍使用 JJWT&#xff08;Java JWT&#xff09;库来生成 JWT Token&#xff0c;步骤如下&#xff1a; 添加依赖&#xff1a; 在项目中添加 JJWT 依赖项。对于 Maven 项目&#xff0c;可以在 pom.xml 文件中添加以下依赖项&#xff1a; <dependency><groupId>…

python解析帆软cpt及frm文件(xml)获取源数据表及下游依赖表

#!/user/bin/evn python import os,re,openpyxl 输入&#xff1a;帆软脚本文件路径输出&#xff1a;帆软文件检查结果Excel#获取来源表 def table_scan(sql_str):# remove the /* */ commentsq re.sub(r"/\*[^*]*\*(?:[^*/][^*]*\*)*/", "", sql_str)# r…

c++学习(特殊类设计)[30]

只能在堆上创建对象的类 如果你想要确保对象只能在堆上创建&#xff0c;可以通过将析构函数声明为私有&#xff0c;并提供一个静态成员函数来创建对象。这样&#xff0c;类的实例化只能通过调用静态成员函数来完成&#xff0c;而无法直接在栈上创建对象。 以下是一个示例&…

【开源项目--稻草】Day03

【开源项目--稻草】Day03 1. 续Spring-Security1.1 自定义登录界面 2. 用户注册2.1 将注册页面显示2.2 编写控制器进行测试2.3 编写注册业务逻辑2.4 注册功能的收尾 3. VUE3.1 VUE的基本使用3.1.1 什么是VUE 3.2 使用VUEAjax完善稻草问答的注册功能 1. 续Spring-Security 1.1 …

Kubespray-offline v2.21.0-1 下载 Kubespray v2.22.1 离线部署 kubernetes v1.25.6

文章目录 1. 目标2. 预备条件3. vcenter 创建虚拟机4. 系统初始化4.1 配置网卡4.2 配置主机名4.3 内核参数 5. 打快照6. 安装 git7. 配置科学8. 安装 docker9. 下载介质9.1 下载安装 docker 介质9.2 下载 kubespray-offline-ansible 介质9.3 下载 kubernetes 介质 10. 搬运介质…

6.物联网操作系统信号量

一。信号量的概念与应用 信号量定义 FreeRTOS信号量介绍 FreeRTOS信号量工作原理 1.信号量的定义 多任务环境下使用&#xff0c;用来协调多个任务正确合理使用临界资源。 2.FreeRTOS信号量介绍 Semaphore包括Binary&#xff0c;Count&#xff0c;Mutex&#xff1b; Mutex包…

【2种方法,jmeter用一个正则提取器提取多个值!】

jmeter中&#xff0c;用json提取器&#xff0c;一次提取多个值&#xff0c;这个很多人都会。但是&#xff0c;用正则提取器一次提取多个&#xff0c;是否可以呢&#xff1f; 肯定&#xff0c;很多人都自信满满的说&#xff0c;可以&#xff01;形如&#xff1a;token":&q…

Jenkins触发器时间、次数设定

触发器触发条件介绍 触发器触发条件公式&#xff1a;由5颗星组成 * * * * * 分别代表&#xff1a;分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6) 企业项目中常用场景介绍 场景1&#xff1a;接口脚本部分测试通过&#xff0c;部分还在进行&#xff0c;回归测试脚本执行…

Windows上安装 jdk 环境并配置环境变量 (超详细教程)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

torchvision.datasets数据加载失败

torchvision.datasets数据加载失败 如何使用torchvision.datasets进行自动下载数据失败&#xff0c;可以使用手动下载数据 Ctrl点击可以进入相关包文件&#xff0c;查找下载地址&#xff1a;https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 手动下载之后解压&#x…

企业微信小程序在调用wx.qy.login时返回错误信息qy.login:fail

原因是大概是绑定了多个企业但是在开发者工具中没有选择正确的企业 解决方法&#xff1a; 重新选择企业后即可成功获取code

RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式

RabbitMQ结构 Publisher &#xff1a; 生产者 Queue: 存储消息的容器队列&#xff1b; Consumer:消费者 Connection&#xff1a;消费者与消息服务的TCP连接 Channel:信道&#xff0c;是TCP里面的虚拟连接。例如&#xff1a;电缆相当于TCP&#xff0c;信道是一条独立光纤束&…

web开发中的安全和防御入门——csp (content-security-policy内容安全策略)

偶然碰到iframe跨域加载被拒绝的问题&#xff0c;原因是父页面默认不允许加载跨域的子页面&#xff0c;也就是的content-security-policy中没有设置允许跨域加载。 简单地说&#xff0c;content-security-policy能限制页面允许和不允许加载的所有资源&#xff0c;常见的包括&a…

原型链污染

文章目录 1. javascript 原型链2. 原型链变量的搜索3. prototype 原型链污染4. 原型链污染例题4.1 题1&#xff1a;4.2.题2&#xff1a; 1. javascript 原型链 js在ECS6之前没有类的概念&#xff0c;之前的类都是用funtion来声明的。如下 可以看到b在实例化为test对象以后&…

【C语言进阶】指针的高级应用(下)

文章目录 一、指针数组与数组指针1.1 指针数组与数组指针的表达式 二、函数指针2.1 函数指针的书写方式 三、二重指针与一重指针3.1 二重指针的本质3.2 二重指针的用法3.3 二重指针与数组指针 总结 一、指针数组与数组指针 (1)指针数组的实质是一个数组&#xff0c;这个数组中存…