PCL安装和环境配置
目錄
1. VS2017下載安裝
2. PCL下載安裝
3. 環(huán)境配置
附上鏈接庫(kù)列表
4. 測(cè)試
5.問(wèn)題解決
1. VS2017下載安裝
微軟官網(wǎng)下載鏈接:https://visualstudio.microsoft.com/zh-hans/
?直接在微軟官網(wǎng)下載對(duì)應(yīng)VS版本,不過(guò)目前官網(wǎng)上僅VS2019各個(gè)版本,包括有社區(qū)版、專業(yè)版和企業(yè)版。每個(gè)版本基本內(nèi)容相同,有些版本功能會(huì)多些。這根據(jù)自己需求選擇對(duì)應(yīng)版本下載。
?下載好對(duì)應(yīng)版本后,如果初學(xué)者并且沒(méi)有其他特殊需求,選上Windows中的“.NET桌面開發(fā)”和“使用C++的桌面開發(fā)”以及最下面其他工具集中的“Visual Studio擴(kuò)展開發(fā)”即可。不知道選什么也不要緊,留著這個(gè)安裝包(嚴(yán)格來(lái)說(shuō)不叫安裝包),需要其他組件的時(shí)候隨時(shí)可以添加。
?選擇好下載路徑,右下角點(diǎn)擊“安裝”即可。
2. PCL下載安裝
PCL是在吸收了前人點(diǎn)云相關(guān)研究基礎(chǔ)上建立起來(lái)的大型跨平臺(tái)開源C++編程庫(kù),它實(shí)現(xiàn)了大量點(diǎn)云相關(guān)的通用算法和高效數(shù)據(jù)結(jié)構(gòu),涉及點(diǎn)云獲取、濾波、分割、配準(zhǔn)、檢索、特征提取、識(shí)別、追蹤、曲面重建和可視化等;支持多種操作平臺(tái),可在Window、Liunx、Mac OS X和部分嵌入式實(shí)時(shí)系統(tǒng)上運(yùn)行。
PCL下載網(wǎng)址:http://www.pointclouds.org/downloads/windows.html(該網(wǎng)址下可能下不到對(duì)應(yīng)最新版本PCL)
github上有可供直接下載的PCL1.9.1版本,下載網(wǎng)址:https://github.com/PointCloudLibrary/pcl/releases
根據(jù)自己的編譯器環(huán)境選擇下載win64或者winX32的版本,例如博主下載的VS2017win64版本:
其中1是對(duì)應(yīng)PCL安裝包,該包包含了PCL中所使用的全部第三方編譯包,除了Qt編譯包;2是PCL包對(duì)應(yīng)PDB文件包,用于后期單步調(diào)試時(shí)使用;3是PCL源碼包,可以通過(guò)Cmake進(jìn)行二次編譯,生成對(duì)應(yīng)編譯器的運(yùn)行包。
PCL安裝:
(1)安裝步驟很簡(jiǎn)單,傻瓜式安裝,點(diǎn)擊“PCL-1.9.1-AllInOne-msvc2017-win64.exe”以管理員運(yùn)行進(jìn)行安裝
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(2)勾選協(xié)議進(jìn)行下一步安裝,并選擇“Add PCL to the system PATH for all users”,它可以自動(dòng)添加系統(tǒng)路徑,并創(chuàng)建桌面圖標(biāo)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(3)選擇安裝路徑,選擇創(chuàng)建快捷方式。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(4)安裝第三方庫(kù),初學(xué)者可以默認(rèn)安裝第三方庫(kù),除非你清楚地知道自己需要什么庫(kù)不需要什么庫(kù),不然就都選上。然后等待PCL安裝完成,中間會(huì)跳出openNI2的安裝。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(5)中間會(huì)跳出openNI2的安裝,設(shè)置安裝路徑,最好把它安裝在原來(lái)安裝PCL文件中\(zhòng)PCL 1.8.1\3rdParty\OpenNI2中。
例如博主PCL安裝路徑:B:\PCL 1.9.1
安裝openNI2選擇路徑:B:\PCL 1.9.1\3rdParty\OpenNI2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(6)解壓2中的PBD文件到..\PCL 1.9.1\bin
博主PCL路徑:B:\PCL 1.9.1\bin
? ? ? ? ? ? ? ? ? ? ? ? ? ?
3. 環(huán)境配置
(1) 環(huán)境變量
安裝的時(shí)候選了“Add PCL to the system PATH for all users”并且沒(méi)有報(bào)錯(cuò)的,理論上來(lái)說(shuō)可以跳過(guò)這一步。但如果按住時(shí)提示“路徑太長(zhǎng)添加失敗”,需要手動(dòng)添加一次。
計(jì)算機(jī)—>屬性—>高級(jí)系統(tǒng)屬性—>高級(jí)—>環(huán)境變量。
? ? ?
博主配置路徑如下,將其添加到環(huán)境變量中。
? ?
這一步完成之后需要將電腦注銷一下才能生效(不用重啟)。
(2)配置VS2019相關(guān)目錄
打開VS2017新建一個(gè)空項(xiàng)目,并設(shè)置存放路徑和名字。
然后進(jìn)入屬性管理器,菜單欄->視圖->其他窗口->屬性管理器,對(duì)Debug|X64進(jìn)行配置,右鍵Microsoft.Cpp.x64.user,點(diǎn)擊屬性。這里我們對(duì)屬性中的 VC++目錄->包含目錄和VC++目錄->庫(kù)目錄進(jìn)行添加相關(guān)路徑,對(duì) 鏈接器->輸入->附加依賴項(xiàng)進(jìn)行添加相關(guān)路徑。(主要在Debug|X64模式下配置文件)
通用屬性—>VC++目錄—>包含目錄中添加紅框中的7個(gè)目錄
在通用屬性—>VC++目錄—>庫(kù)目錄中添加如下6個(gè)目錄:
通用屬性—>鏈接器—>輸入—>附加的依賴項(xiàng)中添加對(duì)應(yīng)的.“l(fā)ib”文件,主要是添加PCL的“.lib”文件和第三方庫(kù)中VTK的“.lib”文件。
在C/C++—>預(yù)處理器—>預(yù)處理器定義中添加:
_CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING將C/C++—>所有選項(xiàng)—>SDL檢查改為否。
附上鏈接庫(kù)列表
?Debug版本:
pcl_common_debug.lib pcl_features_debug.lib pcl_filters_debug.lib pcl_io_debug.lib pcl_io_ply_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-vc141-mt-gd-x64-1_68.lib libboost_bzip2-vc141-mt-gd-x64-1_68.lib libboost_chrono-vc141-mt-gd-x64-1_68.lib libboost_container-vc141-mt-gd-x64-1_68.lib libboost_context-vc141-mt-gd-x64-1_68.lib libboost_contract-vc141-mt-gd-x64-1_68.lib libboost_coroutine-vc141-mt-gd-x64-1_68.lib libboost_date_time-vc141-mt-gd-x64-1_68.lib libboost_exception-vc141-mt-gd-x64-1_68.lib libboost_fiber-vc141-mt-gd-x64-1_68.lib libboost_filesystem-vc141-mt-gd-x64-1_68.lib libboost_graph-vc141-mt-gd-x64-1_68.lib libboost_graph_parallel-vc141-mt-gd-x64-1_68.lib libboost_iostreams-vc141-mt-gd-x64-1_68.lib libboost_locale-vc141-mt-gd-x64-1_68.lib libboost_log-vc141-mt-gd-x64-1_68.lib libboost_log_setup-vc141-mt-gd-x64-1_68.lib libboost_math_c99-vc141-mt-gd-x64-1_68.lib libboost_math_c99f-vc141-mt-gd-x64-1_68.lib libboost_math_c99l-vc141-mt-gd-x64-1_68.lib libboost_math_tr1-vc141-mt-gd-x64-1_68.lib libboost_math_tr1f-vc141-mt-gd-x64-1_68.lib libboost_math_tr1l-vc141-mt-gd-x64-1_68.lib libboost_mpi-vc141-mt-gd-x64-1_68.lib libboost_numpy27-vc141-mt-gd-x64-1_68.lib libboost_numpy37-vc141-mt-gd-x64-1_68.lib libboost_prg_exec_monitor-vc141-mt-gd-x64-1_68.lib libboost_program_options-vc141-mt-gd-x64-1_68.lib libboost_python27-vc141-mt-gd-x64-1_68.lib libboost_python37-vc141-mt-gd-x64-1_68.lib libboost_random-vc141-mt-gd-x64-1_68.lib libboost_regex-vc141-mt-gd-x64-1_68.lib libboost_serialization-vc141-mt-gd-x64-1_68.lib libboost_signals-vc141-mt-gd-x64-1_68.lib libboost_stacktrace_noop-vc141-mt-gd-x64-1_68.lib libboost_stacktrace_windbg-vc141-mt-gd-x64-1_68.lib libboost_stacktrace_windbg_cached-vc141-mt-gd-x64-1_68.lib libboost_system-vc141-mt-gd-x64-1_68.lib libboost_test_exec_monitor-vc141-mt-gd-x64-1_68.lib libboost_thread-vc141-mt-gd-x64-1_68.lib libboost_timer-vc141-mt-gd-x64-1_68.lib libboost_type_erasure-vc141-mt-gd-x64-1_68.lib libboost_unit_test_framework-vc141-mt-gd-x64-1_68.lib libboost_wave-vc141-mt-gd-x64-1_68.lib libboost_wserialization-vc141-mt-gd-x64-1_68.lib libboost_zlib-vc141-mt-gd-x64-1_68.lib flann_cpp_s-gd.lib flann_cpp-gd.lib flann_s-gd.lib flann-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.1-gd.lib vtkChartsCore-8.1-gd.lib vtkCommonColor-8.1-gd.lib vtkCommonComputationalGeometry-8.1-gd.lib vtkCommonCore-8.1-gd.lib vtkCommonDataModel-8.1-gd.lib vtkCommonExecutionModel-8.1-gd.lib vtkCommonMath-8.1-gd.lib vtkCommonMisc-8.1-gd.lib vtkCommonSystem-8.1-gd.lib vtkCommonTransforms-8.1-gd.lib vtkDICOMParser-8.1-gd.lib vtkDomainsChemistry-8.1-gd.lib vtkexoIIc-8.1-gd.lib vtkexpat-8.1-gd.lib vtkFiltersAMR-8.1-gd.lib vtkFiltersCore-8.1-gd.lib vtkFiltersExtraction-8.1-gd.lib vtkFiltersFlowPaths-8.1-gd.lib vtkFiltersGeneral-8.1-gd.lib vtkFiltersGeneric-8.1-gd.lib vtkFiltersGeometry-8.1-gd.lib vtkFiltersHybrid-8.1-gd.lib vtkFiltersHyperTree-8.1-gd.lib vtkFiltersImaging-8.1-gd.lib vtkFiltersModeling-8.1-gd.lib vtkFiltersParallel-8.1-gd.lib vtkFiltersParallelImaging-8.1-gd.lib vtkFiltersPoints-8.1-gd.lib vtkFiltersProgrammable-8.1-gd.lib vtkFiltersSelection-8.1-gd.lib vtkFiltersSMP-8.1-gd.lib vtkFiltersSources-8.1-gd.lib vtkFiltersStatistics-8.1-gd.lib vtkFiltersTexture-8.1-gd.lib vtkFiltersTopology-8.1-gd.lib vtkFiltersVerdict-8.1-gd.lib vtkfreetype-8.1-gd.lib vtkGeovisCore-8.1-gd.lib vtkgl2ps-8.1-gd.lib vtkhdf5-8.1-gd.lib vtkhdf5_hl-8.1-gd.lib vtkImagingColor-8.1-gd.lib vtkImagingCore-8.1-gd.lib vtkImagingFourier-8.1-gd.lib vtkImagingGeneral-8.1-gd.lib vtkImagingHybrid-8.1-gd.lib vtkImagingMath-8.1-gd.lib vtkImagingMorphological-8.1-gd.lib vtkImagingSources-8.1-gd.lib vtkImagingStatistics-8.1-gd.lib vtkImagingStencil-8.1-gd.lib vtkInfovisCore-8.1-gd.lib vtkInfovisLayout-8.1-gd.lib vtkInteractionImage-8.1-gd.lib vtkInteractionStyle-8.1-gd.lib vtkInteractionWidgets-8.1-gd.lib vtkIOAMR-8.1-gd.lib vtkIOCore-8.1-gd.lib vtkIOEnSight-8.1-gd.lib vtkIOExodus-8.1-gd.lib vtkIOExport-8.1-gd.lib vtkIOExportOpenGL-8.1-gd.lib vtkIOGeometry-8.1-gd.lib vtkIOImage-8.1-gd.lib vtkIOImport-8.1-gd.lib vtkIOInfovis-8.1-gd.lib vtkIOLegacy-8.1-gd.lib vtkIOLSDyna-8.1-gd.lib vtkIOMINC-8.1-gd.lib vtkIOMovie-8.1-gd.lib vtkIONetCDF-8.1-gd.lib vtkIOParallel-8.1-gd.lib vtkIOParallelXML-8.1-gd.lib vtkIOPLY-8.1-gd.lib vtkIOSQL-8.1-gd.lib vtkIOTecplotTable-8.1-gd.lib vtkIOVideo-8.1-gd.lib vtkIOXML-8.1-gd.lib vtkIOXMLParser-8.1-gd.lib vtkjpeg-8.1-gd.lib vtkjsoncpp-8.1-gd.lib vtklibharu-8.1-gd.lib vtklibxml2-8.1-gd.lib vtklz4-8.1-gd.lib vtkmetaio-8.1-gd.lib vtkNetCDF-8.1-gd.lib vtknetcdfcpp-8.1-gd.lib vtkoggtheora-8.1-gd.lib vtkParallelCore-8.1-gd.lib vtkpng-8.1-gd.lib vtkproj4-8.1-gd.lib vtkRenderingAnnotation-8.1-gd.lib vtkRenderingContext2D-8.1-gd.lib vtkRenderingContextOpenGL-8.1-gd.lib vtkRenderingCore-8.1-gd.lib vtkRenderingFreeType-8.1-gd.lib vtkRenderingGL2PS-8.1-gd.lib vtkRenderingImage-8.1-gd.lib vtkRenderingLabel-8.1-gd.lib vtkRenderingLIC-8.1-gd.lib vtkRenderingLOD-8.1-gd.lib vtkRenderingOpenGL-8.1-gd.lib vtkRenderingVolume-8.1-gd.lib vtkRenderingVolumeOpenGL-8.1-gd.lib vtksqlite-8.1-gd.lib vtksys-8.1-gd.lib vtktiff-8.1-gd.lib vtkverdict-8.1-gd.lib vtkViewsContext2D-8.1-gd.lib vtkViewsCore-8.1-gd.lib vtkViewsInfovis-8.1-gd.lib vtkzlib-8.1-gd.libRelease版本:
pcl_common_release.lib pcl_features_release.lib pcl_filters_release.lib pcl_io_release.lib pcl_io_ply_release.lib pcl_kdtree_release.lib pcl_keypoints_release.lib pcl_ml_release.lib pcl_octree_release.lib pcl_outofcore_release.lib pcl_people_release.lib pcl_recognition_release.lib pcl_registration_release.lib pcl_sample_consensus_release.lib pcl_search_release.lib pcl_segmentation_release.lib pcl_stereo_release.lib pcl_surface_release.lib pcl_tracking_release.lib pcl_visualization_release.lib libboost_atomic-vc141-mt-x64-1_68.lib libboost_bzip2-vc141-mt-x64-1_68.lib libboost_chrono-vc141-mt-x64-1_68.lib libboost_container-vc141-mt-x64-1_68.lib libboost_context-vc141-mt-x64-1_68.lib libboost_contract-vc141-mt-x64-1_68.lib libboost_coroutine-vc141-mt-x64-1_68.lib libboost_date_time-vc141-mt-x64-1_68.lib libboost_exception-vc141-mt-x64-1_68.lib libboost_fiber-vc141-mt-x64-1_68.lib libboost_filesystem-vc141-mt-x64-1_68.lib libboost_graph-vc141-mt-x64-1_68.lib libboost_graph_parallel-vc141-mt-x64-1_68.lib libboost_iostreams-vc141-mt-x64-1_68.lib libboost_locale-vc141-mt-x64-1_68.lib libboost_log-vc141-mt-x64-1_68.lib libboost_log_setup-vc141-mt-x64-1_68.lib libboost_math_c99-vc141-mt-x64-1_68.lib libboost_math_c99f-vc141-mt-x64-1_68.lib libboost_math_c99l-vc141-mt-x64-1_68.lib libboost_math_tr1-vc141-mt-x64-1_68.lib libboost_math_tr1f-vc141-mt-x64-1_68.lib libboost_math_tr1l-vc141-mt-x64-1_68.lib libboost_mpi-vc141-mt-x64-1_68.lib libboost_numpy27-vc141-mt-x64-1_68.lib libboost_numpy37-vc141-mt-x64-1_68.lib libboost_prg_exec_monitor-vc141-mt-x64-1_68.lib libboost_program_options-vc141-mt-x64-1_68.lib libboost_python27-vc141-mt-x64-1_68.lib libboost_python37-vc141-mt-x64-1_68.lib libboost_random-vc141-mt-x64-1_68.lib libboost_regex-vc141-mt-x64-1_68.lib libboost_serialization-vc141-mt-x64-1_68.lib libboost_signals-vc141-mt-x64-1_68.lib libboost_stacktrace_noop-vc141-mt-x64-1_68.lib libboost_stacktrace_windbg-vc141-mt-x64-1_68.lib libboost_stacktrace_windbg_cached-vc141-mt-x64-1_68.lib libboost_system-vc141-mt-x64-1_68.lib libboost_test_exec_monitor-vc141-mt-x64-1_68.lib libboost_thread-vc141-mt-x64-1_68.lib libboost_timer-vc141-mt-x64-1_68.lib libboost_type_erasure-vc141-mt-x64-1_68.lib libboost_unit_test_framework-vc141-mt-x64-1_68.lib libboost_wave-vc141-mt-x64-1_68.lib libboost_wserialization-vc141-mt-x64-1_68.lib libboost_zlib-vc141-mt-x64-1_68.lib flann_cpp_s.lib flann_cpp.lib flann_s.lib flann.lib qhull.lib qhullcpp.lib qhullstatic.lib qhullstatic_r.lib qhull_p.lib qhull_r.lib vtkalglib-8.1.lib vtkChartsCore-8.1.lib vtkCommonColor-8.1.lib vtkCommonComputationalGeometry-8.1.lib vtkCommonCore-8.1.lib vtkCommonDataModel-8.1.lib vtkCommonExecutionModel-8.1.lib vtkCommonMath-8.1.lib vtkCommonMisc-8.1.lib vtkCommonSystem-8.1.lib vtkCommonTransforms-8.1.lib vtkDICOMParser-8.1.lib vtkDomainsChemistry-8.1.lib vtkexoIIc-8.1.lib vtkexpat-8.1.lib vtkFiltersAMR-8.1.lib vtkFiltersCore-8.1.lib vtkFiltersExtraction-8.1.lib vtkFiltersFlowPaths-8.1.lib vtkFiltersGeneral-8.1.lib vtkFiltersGeneric-8.1.lib vtkFiltersGeometry-8.1.lib vtkFiltersHybrid-8.1.lib vtkFiltersHyperTree-8.1.lib vtkFiltersImaging-8.1.lib vtkFiltersModeling-8.1.lib vtkFiltersParallel-8.1.lib vtkFiltersParallelImaging-8.1.lib vtkFiltersPoints-8.1.lib vtkFiltersProgrammable-8.1.lib vtkFiltersSelection-8.1.lib vtkFiltersSMP-8.1.lib vtkFiltersSources-8.1.lib vtkFiltersStatistics-8.1.lib vtkFiltersTexture-8.1.lib vtkFiltersTopology-8.1.lib vtkFiltersVerdict-8.1.lib vtkfreetype-8.1.lib vtkGeovisCore-8.1.lib vtkgl2ps-8.1.lib vtkhdf5-8.1.lib vtkhdf5_hl-8.1.lib vtkImagingColor-8.1.lib vtkImagingCore-8.1.lib vtkImagingFourier-8.1.lib vtkImagingGeneral-8.1.lib vtkImagingHybrid-8.1.lib vtkImagingMath-8.1.lib vtkImagingMorphological-8.1.lib vtkImagingSources-8.1.lib vtkImagingStatistics-8.1.lib vtkImagingStencil-8.1.lib vtkInfovisCore-8.1.lib vtkInfovisLayout-8.1.lib vtkInteractionImage-8.1.lib vtkInteractionStyle-8.1.lib vtkInteractionWidgets-8.1.lib vtkIOAMR-8.1.lib vtkIOCore-8.1.lib vtkIOEnSight-8.1.lib vtkIOExodus-8.1.lib vtkIOExport-8.1.lib vtkIOExportOpenGL-8.1.lib vtkIOGeometry-8.1.lib vtkIOImage-8.1.lib vtkIOImport-8.1.lib vtkIOInfovis-8.1.lib vtkIOLegacy-8.1.lib vtkIOLSDyna-8.1.lib vtkIOMINC-8.1.lib vtkIOMovie-8.1.lib vtkIONetCDF-8.1.lib vtkIOParallel-8.1.lib vtkIOParallelXML-8.1.lib vtkIOPLY-8.1.lib vtkIOSQL-8.1.lib vtkIOTecplotTable-8.1.lib vtkIOVideo-8.1.lib vtkIOXML-8.1.lib vtkIOXMLParser-8.1.lib vtkjpeg-8.1.lib vtkjsoncpp-8.1.lib vtklibharu-8.1.lib vtklibxml2-8.1.lib vtklz4-8.1.lib vtkmetaio-8.1.lib vtkNetCDF-8.1.lib4. 測(cè)試
到這一步基本上就算是配置完了,進(jìn)行測(cè)試:
#include <pcl/visualization/cloud_viewer.h> #include <iostream>//標(biāo)準(zhǔn)C++庫(kù)中的輸入輸出類相關(guān)頭文件。 #include <pcl/io/io.h> #include <pcl/io/pcd_io.h>//pcd 讀寫類相關(guān)的頭文件。 #include <pcl/io/ply_io.h> #include <pcl/point_types.h> //PCL中支持的點(diǎn)類型頭文件。 #include<fstream> #include <string> #include <vector> using namespace std;int main() {typedef struct tagPOINT_3D{double x; //mm world coordinate x double y; //mm world coordinate y double z; //mm world coordinate z double r;}POINT_WORLD;/加載txt數(shù)據(jù) int number_Txt;FILE *fp_txt;tagPOINT_3D TxtPoint;vector<tagPOINT_3D> m_vTxtPoints;fp_txt = fopen("za.txt", "r");if (fp_txt){while (fscanf(fp_txt, "%lf %lf %lf", &TxtPoint.x, &TxtPoint.y, &TxtPoint.z) != EOF){m_vTxtPoints.push_back(TxtPoint);}}elsecout << "txt數(shù)據(jù)加載失敗!" << endl;number_Txt = m_vTxtPoints.size();//pcl::PointCloud<pcl::PointXYZ> cloud;//這里使用“PointXYZ”是因?yàn)槲液竺娼o的點(diǎn)云信息是包含的三維坐標(biāo),同時(shí)還有點(diǎn)云信息包含的rgb顏色信息的或者還有包含rgba顏色和強(qiáng)度信息。pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);// Fill in the cloud data cloud->width = number_Txt;cloud->height = 1;cloud->is_dense = false;cloud->points.resize(cloud->width * cloud->height);for (size_t i = 0; i < cloud->points.size(); ++i){cloud->points[i].x = m_vTxtPoints[i].x;cloud->points[i].y = m_vTxtPoints[i].y;cloud->points[i].z = m_vTxtPoints[i].z;}pcl::io::savePCDFileASCII("txt2pcd_bunny1.pcd", *cloud);std::cerr << "Saved " << cloud->points.size() << " data points to txt2pcd.pcd." << std::endl;//for (size_t i = 0; i < cloud.points.size(); ++i)// std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;//PCL Visualizer// Viewer pcl::visualization::PCLVisualizer viewer("Cloud Viewer");viewer.addPointCloud(cloud);viewer.setBackgroundColor(0, 0, 0);viewer.spin();system("pause");return 0;}顯示如下:說(shuō)明運(yùn)行成功,配置VS2017+PCL1.9.1完成。
對(duì)應(yīng)三維點(diǎn)云數(shù)據(jù)如下:
-3.03387 -3.03879 -2.05533 -3.03776 -3.03882 -2.05536 -3.04165 -3.03886 -2.05538 -3.04554 -3.0389 -2.05541 -3.04943 -3.03894 -2.05543 -3.05332 -3.03897 -2.05546 -3.05721 -3.03901 -2.05548 -3.06110 -3.03905 -2.05551 -3.06499 -3.03908 -2.05553 -3.06888 -3.03912 -2.05556 -3.07277 -3.03916 -2.05558 -3.07666 -3.03919 -2.05561 -3.08055 -3.03923 -2.05563 -3.08444 -3.03927 -2.05566 -3.08833 -3.03931 -2.05568 -3.09222 -3.03934 -2.05571 -3.09612 -3.03938 -2.05573 -3.10001 -3.03942 -2.05576 -3.10390 -3.03945 -2.05578 -3.10779 -3.03949 -2.05581 -3.11168 -3.03953 -2.05583 -3.11557 -3.03956 -2.05586 -3.11947 -3.03960 -2.05588 -3.12336 -3.03964 -2.05591 -3.12725 -3.03968 -2.05593 -3.13114 -3.03971 -2.05596 -3.13503 -3.03975 -2.05598 -3.13893 -3.03979 -2.05601 -3.14282 -3.03982 -2.05603 -3.14671 -3.03986 -2.05606 -3.15060 -3.03990 -2.05608 -3.15450 -3.03993 -2.05611 -3.15839 -3.03997 -2.05613 -3.16228 -3.04001 -2.05616 -3.16618 -3.04005 -2.05618 -3.17007 -3.04008 -2.05621 -3.17396 -3.04012 -2.05623 -3.17786 -3.04016 -2.05626 -3.18175 -3.04019 -2.05628 -3.18564 -3.04023 -2.05631 -3.18954 -3.04027 -2.05633 -3.19343 -3.04030 -2.05636 -3.19732 -3.04034 -2.05638 -3.20122 -3.04038 -2.05641 -3.20511 -3.04042 -2.05643 -3.20901 -3.04045 -2.05646 -3.21290 -3.04049 -2.05648 -3.21679 -3.04053 -2.05651 -3.22069 -3.04056 -2.05653 -3.22458 -3.04060 -2.05656 -3.22848 -3.04064 -2.05658 -3.23237 -3.04068 -2.05661 -3.23627 -3.04071 -2.05663 -3.24016 -3.04075 -2.05666 -3.24406 -3.04079 -2.05668 -3.24795 -3.04082 -2.05671 -3.25185 -3.04086 -2.05673 -3.25574 -3.04090 -2.05676 -3.25964 -3.04093 -2.05678 -3.26353 -3.04097 -2.05681 -3.26743 -3.04101 -2.05683 -3.27132 -3.04105 -2.05686 -3.27522 -3.04108 -2.05688 -3.27912 -3.04112 -2.05691 -3.28301 -3.04116 -2.05693 -3.28691 -3.04119 -2.05696 -3.29080 -3.04123 -2.05698 -3.29470 -3.04127 -2.05701 -3.29860 -3.04130 -2.05703 -3.30249 -3.04134 -2.05706 -3.30639 -3.04138 -2.05708 -3.31029 -3.04142 -2.05711 -3.31418 -3.04145 -2.05713 -3.31808 -3.04149 -2.05716 -3.32198 -3.04153 -2.05718 -3.32587 -3.04156 -2.05721 -3.32977 -3.04160 -2.05723 -3.33367 -3.04164 -2.05726 -3.33756 -3.04168 -2.05728 -3.34146 -3.04171 -2.05731 -3.34536 -3.04175 -2.05733 -3.34926 -3.04179 -2.05736 -3.35315 -3.04182 -2.05738 -3.35705 -3.04186 -2.05741 -3.36095 -3.04190 -2.05743 -3.36485 -3.04193 -2.05746 -3.36874 -3.04197 -2.05748 -3.37264 -3.04201 -2.05751 -3.37654 -3.04205 -2.05753 -3.38044 -3.04208 -2.05756 -3.38434 -3.04212 -2.05758 -3.38824 -3.04216 -2.05761 -3.39213 -3.04219 -2.057645.問(wèn)題解決
1.出現(xiàn)功能測(cè)試宏的參數(shù)
這個(gè)錯(cuò)誤其實(shí)是可以忽略掉的,并不影響你代碼的生成,只是IntelliSense的錯(cuò)誤。
2.xx被聲明為己否決
解決方法:在工程文件點(diǎn)擊屬性管理。對(duì)應(yīng)dubugX64/releaseX64雙擊,彈出如下界面進(jìn)行設(shè)置。
?
總結(jié)
以上是生活随笔為你收集整理的PCL安装和环境配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 图形化管理工具Portaniner安 以
- 下一篇: 朋友入职中软一个月(外包华为)就离职了!