Windows11:QT5.14.2+PCL1.12.0+VS2019环境配置

2023-11-20

之前在win10系统下配置了PCL1.8.1+QT5.9.1+VS2015的开发环境,由于PCL库已经更新到了1.12.1而且1.8.1一直有bug,为了使用下新的算法库,今天配置一下新的开发环境。

1. 安装Qt5.14.2

Qt5.14.2的安装包可以从国内各大镜像源里下载,我是从清华大学开源镜像网站上下载的https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.14/5.14.2/,选中如下所示的文件点击即可,会自动跳转到迅雷下载的。在这里插入图片描述5.14.2版本需要你登录账号,如果没有注册直接点击下图红色框注册即可,注册完毕再登录账号,然后安装位置自己设置或者按照默认位置安装也行。在这里插入图片描述
对于安装的模块,因为我只需要MSVC编译器,所以MinGW编译器以及其他的我没有安装,我的安装模块选择如下图:
在这里插入图片描述
然后,剩下的一路安装即可。

2. 安装VS2019

安装vs2019需要先下载相应的visual studio installer,微软官网现在都是VS2022的下载链接,你需要所搜历史版本然后登录账号才可以下载,下载链接如下https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/,按照下图红框中的提示选择相应的vs版本。在这里插入图片描述
运行visual studio installer,选择相应的组件进行安装,我只选择了使用C++的桌面开发,然后又添加了MSVC V141-VS2017 C++ x64/x86生成工具,如下图:
在这里插入图片描述
还可以在安装位置界面手动修改vs的安装位置,然后一路安装即可。

3. 安装PCL1.12.0

PCL1.12.0的安装包直接去github上下载就行,下载链接:https://github.com/PointCloudLibrary/pcl/releases
安装PCL的时候一定要注意安装路径不要有空格!!!
记住自己的安装路径,等会需要根据安装路径添加PCL的环境变量。安装过程中,选择将PCL添加到环境变量中,如下图:
在这里插入图片描述
PCL的OPENNI2需要重新安装一下,安装路径最好与VTK等其他第三方库一致。我的安装路径如下图所示。
在这里插入图片描述

4.添加环境变量

当所有的软件安装完毕后,需要添加qt,pcl的环境变量,我的环境变量如下图所示。
首先添加系统变量:
在这里插入图片描述
然后添加path变量:

在这里插入图片描述

5. 设置QT

打开qt后,依次选择工具栏中的工具(T)、选项(O)…,打开kits界面,设置相应的编译器,如下图:
在这里插入图片描述
我安装的编译器版本如下图所示:
在这里插入图片描述

6. PCL测试

(1) pro文件配置:


INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\include\pcl-1.12"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\Boost\include\boost-1_76"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\FLANN\include"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\OpenNI2\Include"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\Qhull\include"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\VTK\include\vtk-9.0"
INCLUDEPATH += "D:\PCL1.12.0\PCL-1.12.0\3rdParty\Eigen\eigen3"

#MSVC编译器添加静态库文件方式:
#设置添加的静态库文件,根据当前项目的编译模式确定是调用debug库还是release库
win32:CONFIG(debug,debug|release):LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\Boost\lib\
    -llibboost_atomic-vc142-mt-gd-x64-1_76 \
    -llibboost_bzip2-vc142-mt-gd-x64-1_76 \
    -llibboost_chrono-vc142-mt-gd-x64-1_76 \
    -llibboost_container-vc142-mt-gd-x64-1_76 \
    -llibboost_context-vc142-mt-gd-x64-1_76 \
    -llibboost_contract-vc142-mt-gd-x64-1_76 \
    -llibboost_coroutine-vc142-mt-gd-x64-1_76 \
    -llibboost_date_time-vc142-mt-gd-x64-1_76 \
    -llibboost_exception-vc142-mt-gd-x64-1_76 \
    -llibboost_fiber-vc142-mt-gd-x64-1_76 \
    -llibboost_filesystem-vc142-mt-gd-x64-1_76 \
    -llibboost_graph-vc142-mt-gd-x64-1_76 \
    -llibboost_graph_parallel-vc142-mt-gd-x64-1_76 \
    -llibboost_iostreams-vc142-mt-gd-x64-1_76 \
    -llibboost_json-vc142-mt-gd-x64-1_76 \
    -llibboost_locale-vc142-mt-gd-x64-1_76 \
    -llibboost_log-vc142-mt-gd-x64-1_76 \
    -llibboost_log_setup-vc142-mt-gd-x64-1_76 \
    -llibboost_math_c99-vc142-mt-gd-x64-1_76 \
    -llibboost_math_c99f-vc142-mt-gd-x64-1_76 \
    -llibboost_math_c99l-vc142-mt-gd-x64-1_76 \
    -llibboost_math_tr1-vc142-mt-gd-x64-1_76 \
    -llibboost_math_tr1f-vc142-mt-gd-x64-1_76 \
    -llibboost_math_tr1l-vc142-mt-gd-x64-1_76 \
    -llibboost_mpi-vc142-mt-gd-x64-1_76 \
    -llibboost_nowide-vc142-mt-gd-x64-1_76 \
    -llibboost_numpy38-vc142-mt-gd-x64-1_76 \
    -llibboost_prg_exec_monitor-vc142-mt-gd-x64-1_76 \
    -llibboost_program_options-vc142-mt-gd-x64-1_76 \
    -llibboost_python38-vc142-mt-gd-x64-1_76 \
    -llibboost_random-vc142-mt-gd-x64-1_76 \
    -llibboost_regex-vc142-mt-gd-x64-1_76 \
    -llibboost_serialization-vc142-mt-gd-x64-1_76 \
    -llibboost_stacktrace_noop-vc142-mt-gd-x64-1_76 \
    -llibboost_stacktrace_windbg-vc142-mt-gd-x64-1_76 \
    -llibboost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_76 \
    -llibboost_system-vc142-mt-gd-x64-1_76 \
    -llibboost_test_exec_monitor-vc142-mt-gd-x64-1_76 \
    -llibboost_thread-vc142-mt-gd-x64-1_76 \
    -llibboost_timer-vc142-mt-gd-x64-1_76 \
    -llibboost_type_erasure-vc142-mt-gd-x64-1_76 \
    -llibboost_unit_test_framework-vc142-mt-gd-x64-1_76 \
    -llibboost_wave-vc142-mt-gd-x64-1_76 \
    -llibboost_wserialization-vc142-mt-gd-x64-1_76 \
    -llibboost_zlib-vc142-mt-gd-x64-1_76
else:win32:CONFIG(release,debug|release):
LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\Boost\lib\
    -llibboost_atomic-vc142-mt-x64-1_76 \
    -llibboost_bzip2-vc142-mt-x64-1_76 \
    -llibboost_chrono-vc142-mt-x64-1_76 \
    -llibboost_container-vc142-mt-x64-1_76 \
    -llibboost_context-vc142-mt-x64-1_76 \
    -llibboost_contract-vc142-mt-x64-1_76 \
    -llibboost_coroutine-vc142-mt-x64-1_76 \
    -llibboost_date_time-vc142-mt-x64-1_76 \
    -llibboost_exception-vc142-mt-x64-1_76 \
    -llibboost_fiber-vc142-mt-x64-1_76 \
    -llibboost_filesystem-vc142-mt-x64-1_76 \
    -llibboost_graph-vc142-mt-x64-1_76 \
    -llibboost_graph_parallel-vc142-mt-x64-1_76 \
    -llibboost_iostreams-vc142-mt-x64-1_76 \
    -llibboost_json-vc142-mt-x64-1_76 \
    -llibboost_locale-vc142-mt-x64-1_76 \
    -llibboost_log-vc142-mt-x64-1_76 \
    -llibboost_log_setup-vc142-mt-x64-1_76 \
    -llibboost_math_c99-vc142-mt-x64-1_76 \
    -llibboost_math_c99f-vc142-mt-x64-1_76 \
    -llibboost_math_c99l-vc142-mt-x64-1_76 \
    -llibboost_math_tr1-vc142-mt-x64-1_76 \
    -llibboost_math_tr1f-vc142-mt-x64-1_76 \
    -llibboost_math_tr1l-vc142-mt-x64-1_76 \
    -llibboost_mpi-vc142-mt-x64-1_76 \
    -llibboost_nowide-vc142-mt-x64-1_76 \
    -llibboost_numpy38-vc142-mt-x64-1_76 \
    -llibboost_prg_exec_monitor-vc142-mt-x64-1_76 \
    -llibboost_program_options-vc142-mt-x64-1_76 \
    -llibboost_python38-vc142-mt-x64-1_76 \
    -llibboost_random-vc142-mt-x64-1_76 \
    -llibboost_regex-vc142-mt-x64-1_76 \
    -llibboost_serialization-vc142-mt-x64-1_76 \
    -llibboost_stacktrace_noop-vc142-mt-x64-1_76 \
    -llibboost_stacktrace_windbg-vc142-mt-x64-1_76 \
    -llibboost_stacktrace_windbg_cached-vc142-mt-x64-1_76 \
    -llibboost_system-vc142-mt-x64-1_76 \
    -llibboost_test_exec_monitor-vc142-mt-x64-1_76 \
    -llibboost_thread-vc142-mt-x64-1_76 \
    -llibboost_timer-vc142-mt-x64-1_76 \
    -llibboost_type_erasure-vc142-mt-x64-1_76 \
    -llibboost_unit_test_framework-vc142-mt-x64-1_76 \
    -llibboost_wave-vc142-mt-x64-1_76 \
    -llibboost_wserialization-vc142-mt-x64-1_76 \
    -llibboost_zlib-vc142-mt-x64-1_76

win32:CONFIG(debug, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\lib\
    -lpcl_commond \
    -lpcl_featuresd \
    -lpcl_filtersd \
    -lpcl_io_plyd \
    -lpcl_iod \
    -lpcl_kdtreed \
    -lpcl_keypointsd \
    -lpcl_mld \
    -lpcl_octreed \
    -lpcl_outofcored \
    -lpcl_peopled \
    -lpcl_recognitiond \
    -lpcl_registrationd \
    -lpcl_sample_consensusd \
    -lpcl_searchd \
    -lpcl_segmentationd \
    -lpcl_stereod \
    -lpcl_surfaced \
    -lpcl_trackingd \
    -lpcl_visualizationd
else:win32:CONFIG(release, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\lib\
    -lpcl_common \
    -lpcl_features \
    -lpcl_filters \
    -lpcl_io \
    -lpcl_io_ply \
    -lpcl_kdtree \
    -lpcl_keypoints \
    -lpcl_ml \
    -lpcl_octree \
    -lpcl_outofcore \
    -lpcl_people \
    -lpcl_recognition \
    -lpcl_registration \
    -lpcl_sample_consensus \
    -lpcl_search \
    -lpcl_segmentation \
    -lpcl_stereo \
    -lpcl_surface \
    -lpcl_tracking \
    -lpcl_visualization

win32:CONFIG(debug, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\FLANN\lib\
    -lflann-gd \
    -lflann_cpp-gd \
    -lflann_cpp_s-gd \
    -lflann_s-gd
else:win32:CONFIG(release, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\FLANN\lib\
    -lflann \
    -lflann_cpp \
    -lflann_cpp_s \
    -lflann_s

win32:CONFIG(debug, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\OpenNI2\Lib\
-lOpenNI2
else:win32:CONFIG(release, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\OpenNI2\Lib\
-lOpenNI2

win32:CONFIG(debug, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\Qhull\lib\
    -lqhull_rd \
    -lqhullcpp_d \
    -lqhullstatic_d \
    -lqhullstatic_rd
else:win32:CONFIG(release, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\Qhull\lib\
    -lqhull_r \
    -lqhullcpp \
    -lqhullstatic \
    -lqhullstatic_r

win32:CONFIG(debug, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\VTK\lib\
    -lvtkChartsCore-9.0d \
    -lvtkCommonColor-9.0d \
    -lvtkCommonComputationalGeometry-9.0d \
    -lvtkCommonCore-9.0d \
    -lvtkCommonDataModel-9.0d \
    -lvtkCommonExecutionModel-9.0d \
    -lvtkCommonMath-9.0d \
    -lvtkCommonMisc-9.0d \
    -lvtkCommonSystem-9.0d \
    -lvtkCommonTransforms-9.0d \
    -lvtkDICOMParser-9.0d \
    -lvtkDomainsChemistry-9.0d \
    -lvtkDomainsChemistryOpenGL2-9.0d \
    -lvtkFiltersAMR-9.0d \
    -lvtkFiltersCore-9.0d \
    -lvtkFiltersExtraction-9.0d \
    -lvtkFiltersFlowPaths-9.0d \
    -lvtkFiltersGeneral-9.0d \
    -lvtkFiltersGeneric-9.0d \
    -lvtkFiltersGeometry-9.0d \
    -lvtkFiltersHybrid-9.0d \
    -lvtkFiltersHyperTree-9.0d \
    -lvtkFiltersImaging-9.0d \
    -lvtkFiltersModeling-9.0d \
    -lvtkFiltersParallel-9.0d \
    -lvtkFiltersParallelImaging-9.0d \
    -lvtkFiltersPoints-9.0d \
    -lvtkFiltersProgrammable-9.0d \
    -lvtkFiltersSMP-9.0d \
    -lvtkFiltersSelection-9.0d \
    -lvtkFiltersSources-9.0d \
    -lvtkFiltersStatistics-9.0d \
    -lvtkFiltersTexture-9.0d \
    -lvtkFiltersTopology-9.0d \
    -lvtkFiltersVerdict-9.0d \
    -lvtkGeovisCore-9.0d \
    -lvtkIOAMR-9.0d \
    -lvtkIOAsynchronous-9.0d \
    -lvtkIOCityGML-9.0d \
    -lvtkIOCore-9.0d \
    -lvtkIOEnSight-9.0d \
    -lvtkIOExodus-9.0d \
    -lvtkIOExport-9.0d \
    -lvtkIOExportGL2PS-9.0d \
    -lvtkIOExportPDF-9.0d \
    -lvtkIOGeometry-9.0d \
    -lvtkIOImage-9.0d \
    -lvtkIOImport-9.0d \
    -lvtkIOInfovis-9.0d \
    -lvtkIOLSDyna-9.0d \
    -lvtkIOLegacy-9.0d \
    -lvtkIOMINC-9.0d \
    -lvtkIOMotionFX-9.0d \
    -lvtkIOMovie-9.0d \
    -lvtkIONetCDF-9.0d \
    -lvtkIOOggTheora-9.0d \
    -lvtkIOPLY-9.0d \
    -lvtkIOParallel-9.0d \
    -lvtkIOParallelXML-9.0d \
    -lvtkIOSQL-9.0d \
    -lvtkIOSegY-9.0d \
    -lvtkIOTecplotTable-9.0d \
    -lvtkIOVeraOut-9.0d \
    -lvtkIOVideo-9.0d \
    -lvtkIOXML-9.0d \
    -lvtkIOXMLParser-9.0d \
    -lvtkImagingColor-9.0d \
    -lvtkImagingCore-9.0d \
    -lvtkImagingFourier-9.0d \
    -lvtkImagingGeneral-9.0d \
    -lvtkImagingHybrid-9.0d \
    -lvtkImagingMath-9.0d \
    -lvtkImagingMorphological-9.0d \
    -lvtkImagingSources-9.0d \
    -lvtkImagingStatistics-9.0d \
    -lvtkImagingStencil-9.0d \
    -lvtkInfovisCore-9.0d \
    -lvtkInfovisLayout-9.0d \
    -lvtkInteractionImage-9.0d \
    -lvtkInteractionStyle-9.0d \
    -lvtkInteractionWidgets-9.0d \
    -lvtkParallelCore-9.0d \
    -lvtkParallelDIY-9.0d \
    -lvtkRenderingAnnotation-9.0d \
    -lvtkRenderingContext2D-9.0d \
    -lvtkRenderingContextOpenGL2-9.0d \
    -lvtkRenderingCore-9.0d \
    -lvtkRenderingFreeType-9.0d \
    -lvtkRenderingGL2PSOpenGL2-9.0d \
    -lvtkRenderingImage-9.0d \
    -lvtkRenderingLOD-9.0d \
    -lvtkRenderingLabel-9.0d \
    -lvtkRenderingOpenGL2-9.0d \
    -lvtkRenderingSceneGraph-9.0d \
    -lvtkRenderingUI-9.0d \
    -lvtkRenderingVolume-9.0d \
    -lvtkRenderingVolumeOpenGL2-9.0d \
    -lvtkRenderingVtkJS-9.0d \
    -lvtkTestingRendering-9.0d \
    -lvtkViewsContext2D-9.0d \
    -lvtkViewsCore-9.0d \
    -lvtkViewsInfovis-9.0d \
    -lvtkWrappingTools-9.0d \
    -lvtkdoubleconversion-9.0d \
    -lvtkexodusII-9.0d \
    -lvtkexpat-9.0d \
    -lvtkfreetype-9.0d \
    -lvtkgl2ps-9.0d \
    -lvtkglew-9.0d \
    -lvtkhdf5-9.0d \
    -lvtkhdf5_hl-9.0d \
    -lvtkjpeg-9.0d \
    -lvtkjsoncpp-9.0d \
    -lvtklibharu-9.0d \
    -lvtklibproj-9.0d \
    -lvtklibxml2-9.0d \
    -lvtkloguru-9.0d \
    -lvtklz4-9.0d \
    -lvtklzma-9.0d \
    -lvtkmetaio-9.0d \
    -lvtknetcdf-9.0d \
    -lvtkogg-9.0d \
    -lvtkpng-9.0d \
    -lvtkpugixml-9.0d \
    -lvtksqlite-9.0d \
    -lvtksys-9.0d \
    -lvtktheora-9.0d \
    -lvtktiff-9.0d \
    -lvtkverdict-9.0d \
    -lvtkzlib-9.0d
else:win32:CONFIG(release, debug|release): LIBS += -LD:\PCL1.12.0\PCL-1.12.0\3rdParty\VTK\lib\
    -lvtkChartsCore-9.0 \
    -lvtkCommonColor-9.0 \
    -lvtkCommonComputationalGeometry-9.0 \
    -lvtkCommonCore-9.0 \
    -lvtkCommonDataModel-9.0 \
    -lvtkCommonExecutionModel-9.0 \
    -lvtkCommonMath-9.0 \
    -lvtkCommonMisc-9.0 \
    -lvtkCommonSystem-9.0 \
    -lvtkCommonTransforms-9.0 \
    -lvtkDICOMParser-9.0 \
    -lvtkDomainsChemistry-9.0 \
    -lvtkDomainsChemistryOpenGL2-9.0 \
    -lvtkFiltersAMR-9.0 \
    -lvtkFiltersCore-9.0 \
    -lvtkFiltersExtraction-9.0 \
    -lvtkFiltersFlowPaths-9.0 \
    -lvtkFiltersGeneral-9.0 \
    -lvtkFiltersGeneric-9.0 \
    -lvtkFiltersGeometry-9.0 \
    -lvtkFiltersHybrid-9.0 \
    -lvtkFiltersHyperTree-9.0 \
    -lvtkFiltersImaging-9.0 \
    -lvtkFiltersModeling-9.0 \
    -lvtkFiltersParallel-9.0 \
    -lvtkFiltersParallelImaging-9.0 \
    -lvtkFiltersPoints-9.0 \
    -lvtkFiltersProgrammable-9.0 \
    -lvtkFiltersSMP-9.0 \
    -lvtkFiltersSelection-9.0 \
    -lvtkFiltersSources-9.0 \
    -lvtkFiltersStatistics-9.0 \
    -lvtkFiltersTexture-9.0 \
    -lvtkFiltersTopology-9.0 \
    -lvtkFiltersVerdict-9.0 \
    -lvtkGeovisCore-9.0 \
    -lvtkIOAMR-9.0 \
    -lvtkIOAsynchronous-9.0 \
    -lvtkIOCityGML-9.0 \
    -lvtkIOCore-9.0 \
    -lvtkIOEnSight-9.0 \
    -lvtkIOExodus-9.0 \
    -lvtkIOExport-9.0 \
    -lvtkIOExportGL2PS-9.0 \
    -lvtkIOExportPDF-9.0 \
    -lvtkIOGeometry-9.0 \
    -lvtkIOImage-9.0 \
    -lvtkIOImport-9.0 \
    -lvtkIOInfovis-9.0 \
    -lvtkIOLSDyna-9.0 \
    -lvtkIOLegacy-9.0 \
    -lvtkIOMINC-9.0 \
    -lvtkIOMotionFX-9.0 \
    -lvtkIOMovie-9.0 \
    -lvtkIONetCDF-9.0 \
    -lvtkIOOggTheora-9.0 \
    -lvtkIOPLY-9.0 \
    -lvtkIOParallel-9.0 \
    -lvtkIOParallelXML-9.0 \
    -lvtkIOSQL-9.0 \
    -lvtkIOSegY-9.0 \
    -lvtkIOTecplotTable-9.0 \
    -lvtkIOVeraOut-9.0 \
    -lvtkIOVideo-9.0 \
    -lvtkIOXML-9.0 \
    -lvtkIOXMLParser-9.0 \
    -lvtkImagingColor-9.0 \
    -lvtkImagingCore-9.0 \
    -lvtkImagingFourier-9.0 \
    -lvtkImagingGeneral-9.0 \
    -lvtkImagingHybrid-9.0 \
    -lvtkImagingMath-9.0 \
    -lvtkImagingMorphological-9.0 \
    -lvtkImagingSources-9.0 \
    -lvtkImagingStatistics-9.0 \
    -lvtkImagingStencil-9.0 \
    -lvtkInfovisCore-9.0 \
    -lvtkInfovisLayout-9.0 \
    -lvtkInteractionImage-9.0 \
    -lvtkInteractionStyle-9.0 \
    -lvtkInteractionWidgets-9.0 \
    -lvtkParallelCore-9.0 \
    -lvtkParallelDIY-9.0 \
    -lvtkRenderingAnnotation-9.0 \
    -lvtkRenderingContext2D-9.0 \
    -lvtkRenderingContextOpenGL2-9.0 \
    -lvtkRenderingCore-9.0 \
    -lvtkRenderingFreeType-9.0 \
    -lvtkRenderingGL2PSOpenGL2-9.0 \
    -lvtkRenderingImage-9.0 \
    -lvtkRenderingLOD-9.0 \
    -lvtkRenderingLabel-9.0 \
    -lvtkRenderingOpenGL2-9.0 \
    -lvtkRenderingSceneGraph-9.0 \
    -lvtkRenderingUI-9.0 \
    -lvtkRenderingVolume-9.0 \
    -lvtkRenderingVolumeOpenGL2-9.0 \
    -lvtkRenderingVtkJS-9.0 \
    -lvtkTestingRendering-9.0 \
    -lvtkViewsContext2D-9.0 \
    -lvtkViewsCore-9.0 \
    -lvtkViewsInfovis-9.0 \
    -lvtkWrappingTools-9.0 \
    -lvtkdoubleconversion-9.0 \
    -lvtkexodusII-9.0 \
    -lvtkexpat-9.0 \
    -lvtkfreetype-9.0 \
    -lvtkgl2ps-9.0 \
    -lvtkglew-9.0 \
    -lvtkhdf5-9.0 \
    -lvtkhdf5_hl-9.0 \
    -lvtkjpeg-9.0 \
    -lvtkjsoncpp-9.0 \
    -lvtklibharu-9.0 \
    -lvtklibproj-9.0 \
    -lvtklibxml2-9.0 \
    -lvtkloguru-9.0 \
    -lvtklz4-9.0 \
    -lvtklzma-9.0 \
    -lvtkmetaio-9.0 \
    -lvtknetcdf-9.0 \
    -lvtkogg-9.0 \
    -lvtkpng-9.0 \
    -lvtkpugixml-9.0 \
    -lvtksqlite-9.0 \
    -lvtksys-9.0 \
    -lvtktheora-9.0 \
    -lvtktiff-9.0 \
    -lvtkverdict-9.0 \
    -lvtkzlib-9.0

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

(2) 测试代码:

#include <iostream>
#include <string>
#include <pcl/common/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/features/normal_3d_omp.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <boost/thread/thread.hpp>


int main(int argc, char *argv[])
{

    std::string path = "D:\\Code\\complete.pcd";
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());
    if(pcl::io::loadPCDFile<pcl::PointXYZ>(path,*cloud) == -1){
        PCL_ERROR("could not load pcd file");
        return -1;
    }
    //计算法线
    pcl::NormalEstimationOMP<pcl::PointXYZ,pcl::Normal> np;
    pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>);
    pcl::search::KdTree<pcl::PointXYZ>::Ptr kdtree(new pcl::search::KdTree<pcl::PointXYZ>);
    np.setNumberOfThreads(4);
    np.setInputCloud(cloud);
    np.setSearchMethod(kdtree);
    np.setKSearch(10);
    np.compute(*normals);
    //可视化
    pcl::visualization::PCLVisualizer viewer("3d viewer");
    viewer.setWindowName("36d viewer");
    viewer.setBackgroundColor(0.3,0.3,0.3);
    viewer.addText("normals",10,50,255,0,0,"text");
    viewer.addCoordinateSystem(0.1);
    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> color(cloud,0,255,0);
    viewer.addPointCloud<pcl::PointXYZ>(cloud,color,"input");
    viewer.addPointCloudNormals<pcl::PointXYZ,pcl::Normal>(cloud,normals,10,1.0,"normals");
    viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1,"input");
    while(!viewer.wasStopped()){
        viewer.spinOnce(10); //10ms刷新一次
    }

    return 0;
}

(3)测试结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows11:QT5.14.2+PCL1.12.0+VS2019环境配置 的相关文章

随机推荐

  • spark SQL基础教程

    1 sparkSQL入门 sparksql专门用于处理结构化的数据 而RDD还可以处理非结构化的数据 sparksql的优点之一是sparkfsql使用统一的api读取不同的数据 第二个优点是可以在语言中使用其他语言 例如python 另外
  • 21电赛D题配置部分

    MJPG Streamer推流 安装MJPG Streamer 编辑 etc apt sources list 文件 删除原文件所有内容 用以下内容取代 deb http mirrors tuna tsinghua edu cn raspb
  • jest搭建vue项目单元测试-现有老项目

    说到项目会分为新建的醒目和老项目两种 jest搭建vue项目单元测试 vue cli创建新项目 我们接下来说现有老项目 现有的vue老项目或者没使用vue cli创建项目搭建jset单元测试 1 安装 npm i vue test util
  • 重启Vcenter命令

    重启Vcenter命令 通过ssh登录Vcenter 输入root 输入shell 输入service control stop all 输入service control start all 停止 启动或重新启动 VMware vCent
  • linux xenserver教程,XenServer常用命令

    监控检查类 xentop 查看XenServer与VM的资源使用情况 xsconsole 进入XenServer管理面板 查看网卡 IP 系统版本 系统时间 硬件信息等 xe task list 查看XenServer临时任务进程 serv
  • 【C语言】验证哥德巴赫猜想

    文章目录 问题来源 题目要求 如何判断素数 主函数 完整代码 效果演示 写代码中的误解 总结 问题来源 这是学校的一个作业 原题如下 题目先给出了哥德巴赫猜想的背景知识 我还真不知道 2000以内的正偶数都能分解成两个质数 素数 之和 题目
  • 毕业设计-基于 PID 控制算法仿真算法研究- Matlab

    目录 前言 课题背景和意义 实现技术思路 一 基本原理 二 无超调 PID 控制器的设计 三 无超调 PID 设计的验证 代码 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一
  • 安装anaconda及修改conda config 的channels/default_channels

    先说一下安装anaconda的方法 很简单 就是去官网下载然后在本地安装 bash Anaconda3 4 4 0 Linux x86 64 sh 这个过程中要耐心 会有提问 需要输入yes来回应 并且需要按很多的回车 总之 看见让输入ye
  • 转:机器学习的理解

    转李航博士的一篇关于机器学习理解的文章 算算时间 从开始到现在 做机器学习算法也将近八个月了 虽然还没有达到融会贯通的地步 但至少在熟悉了算法的流程后 我在算法的选择和创造能力上有了不小的提升 实话说 机器学习很难 非常难 要做到完全了解算
  • Ridis持久化

    Redis持久化 RDB Redis DataBase Redis会单独创建 fork 一个子进程来进行持久化 会先将数据写入到一个临时文件中 待持久化都结束了 再用这个临时文件替换上次持久化好的文件 整个过程中 主进程是不进行io操作的
  • 8--UI 初步认识 简易计算器

    UI是App的根基 一个App应该是先有UI界面 然后在UI的基础上增加实用功能 2 UI相对简单易学 UI普遍是学习过程中最简单的一块 能快速拥有成就感和学习兴趣 3 UI至关重要 开发中的绝大部分时间都在处理UI 谨记一条IOS软件开发
  • MySQL根据某一个或者多个字段查找重复数据

    sql 查出一张表中重复的所有记录数据 1 表中有id和name 两个字段 查询出name重复的所有数据 select from xi a where a username in select username from xi group
  • 系列教程

    PDF Search 系列教程来咯 在 Part 1 中 我们将演示如何从 PDF 中提取 处理并存储图像及文本 随着神经搜索 Neural Search 技术的普及 越来越多开发者 开始尝试用 Jina 解决非结构化数据的索引和搜索问题
  • MySQL必知必会 学习笔记 第二十五章 使用触发器

    触发器在MySQL 5中增加 触发器可以在MySQL响应DELETE INSERT UPDATE语句时自动执行一条SQL语句 MySQL 5中触发器名在每个表中唯一而不是在一个数据库中唯一 其他DBMS有的重名限制是数据库范围 以后MySQ
  • lua和测试(一)

    lua做为一门高级语言 在游戏产业运用到机会越来越多了 测试掌握几门脚本语言也有一定的重要性 以下对于lua组合输入做出一些引导 测试需要掌握的关于返回数值 主要用到布尔类 前言的指引 lua的语法比较简单和清晰 学过c语言的可以很好的掌握
  • 并发编程系列之自定义线程池

    前言 前面我们在讲并发工具类的时候 多次提到线程池 今天我们就来走进线程池的旅地 首先我们先不讲线程池框架Executors 我们今天先来介绍如何自己定义一个线程池 是不是已经迫不及待了 那么就让我们开启今天的旅途吧 什么是线程池 线程池可
  • selenium+python 对输入框的输入处理

    最近自己在做项目的自动化测试 公司无此要求 在用户管理模块做修改用户信息时 脚本已经跑成功 并且的确做了update操作 但是自己登陆页面检查 信息却没有被修改 再次确定系统该模块的编辑功能可用 脚本如下 if result num gt
  • 近千万EOS被盗事件回顾,大家请保护好自己的EOS私钥

    最近有伙伴被盗了价值近千万的EOS 于是查看了这次被盗活动账号记录 这次分享出来 一是有可能大家有线索 二是也让大家意识到数字货币私钥安全的重要性 事件回顾 受害人在7 9号被偷盗人通过update auth更换了账号授权公私钥 紧接着被转
  • 零基础到GPT高手:快速学习与利用ChatGPT的完全指南

    进入人工智能时代 令人惊叹的ChatGPT技术正在引爆全球 您是否想象过能够与智能语言模型对话 提升工作效率 解锁创意 甚至实现商业化变现 在本篇文章中 我将向你揭示ChatGPT的原理 学习技巧 并展示如何利用ChatGPT提升工作效率和
  • Windows11:QT5.14.2+PCL1.12.0+VS2019环境配置

    之前在win10系统下配置了PCL1 8 1 QT5 9 1 VS2015的开发环境 由于PCL库已经更新到了1 12 1而且1 8 1一直有bug 为了使用下新的算法库 今天配置一下新的开发环境 1 安装Qt5 14 2 Qt5 14 2