日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PCL1.9.1下载与配置+Visual Studio2017

發布時間:2024/3/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCL1.9.1下载与配置+Visual Studio2017 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PCL1.9.1下載與配置+Visual Studio2017

1.PCL1.9.1下載

官網下載:
1.百度搜索GitHub,點擊進入GitHub主頁
2.在如下界面搜索欄中輸入pcl,按回車鍵

3.點擊下圖所示鏈接:

4.在新的界面中下拉至如下圖所示區域,并點擊圖中所指鏈接:

5.在新的界面中下拉至下圖所示處:


根據個人電腦系統版本位數進行選擇(壓縮包和可執行文件均可),博主電腦為64位,故以此為例進行配置

2.安裝

傻瓜式安裝,雙擊下載的“PCL-1.9.1-AllInOne-msvc2017-win64.exe”進行安裝:

點擊下一步:

選擇第二個:Add PCL to the system PATH for all users,點擊下一步

根據個人喜好選擇安裝路徑(博主選擇路徑如下):

以下庫包默認全選點擊安裝即可:

安裝過程中會跳出如下OpenNI安裝界面,選擇路徑./3rdParty/OpenNI2/安裝,(為了之后方便配置環境):

安裝完畢。
解壓“pcl-1.9.0-pdb-msvc2017-win64.zip”,將解壓得到的文件夾中的內容添加到你的PCL安裝目錄…\PCL 1.9.0\bin中。

pcl安裝到此結束。

PCL1.9.1系統環境配置

環境配置:
系統環境配置
計算機->屬性->高級系統變量->環境變量,雙擊Path,


添加如下路徑(路徑根據自己的安裝目錄添加)


添加完畢后,注銷電腦使配置生效。

3.VS中PCL1.9.1開發環境配置

1.打開VS2017,新建空項目:


輸入名字,選擇生成文件夾,然后選擇“空項目”,直接確定就可以了。

首先要確保自己的vs編譯環境是X64,我這里選擇的是Debug版本,Release版本配置只有一步不一樣,其他都是一樣的。(Release版本與Debug版本區別在于Release斑斑運行起來不顯示中間變量,速度比Debug快)

以下為項目環境配置(一定要仔細!):
右鍵點擊項目->屬性->通用屬性->VC++目錄—>包含目錄中添加紅框中的7個目錄(博主的OpenNI庫安裝在PCL1.9.1的目錄中的,讀者注意檢查自己的目錄是否正確):
…PCL 1.9.1\include\pcl-1.9
…PCL 1.9.1\3rdParty\Boost\include\boost-1_68
…PCL 1.9.1\3rdParty\Eigen\eigen3
…PCL 1.9.1\3rdParty\FLANN\include
…PCL 1.9.1\3rdParty\Qhull\include
…PCL 1.9.1\3rdParty\OpenNI2\Include
…PCL 1.9.1\3rdParty\VTK\include\vtk-8.1

然后是添加lib目錄,在通用屬性—>VC++目錄—>庫目錄中添加如下6個目錄:
…PCL1.9.1\PCL 1.9.1\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\Boost\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\FLANN\lib
…PCL 1.9.1\3rdParty\OpenNI2\Lib
…PCL1.9.1\PCL 1.9.1\3rdParty\Qhull\lib
…PCL1.9.1\PCL 1.9.1\3rdParty\VTK\lib

在C/C++—>預處理器—>預處理器定義中添加以下內容:
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

將C/C++—>所有選項—>SDL檢查改為否。

最后:在通用屬性—>鏈接器—>輸入—>附加的依賴項中添加對應的.“lib”文件,主要是添加PCL的“.lib”文件和第三方庫中VTK的“.lib”文件。文件有很多,列表附在文章末尾。 檢查你的lib文件和我給出的靜態鏈接庫版本一不一樣,如果不一樣這里給出一個快速獲取所有靜態鏈接庫文件名的方法,方法也附在文章末尾。

PCL的配置到此結束,下面來測試一下:
新建一個main.cpp,代碼如下:
#include"stdafx.h"
#include<pcl/visualization/cloud_viewer.h>
#include//標準C++庫中的輸入輸出類相關頭文件。
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>//pcd 讀寫類相關的頭文件。
#include<pcl/io/ply_io.h>
#include<pcl/point_types.h> //PCL中支持的點類型頭文件。
using namespace std;
using namespace pcl;
void viewerOneOff(visualization::PCLVisualizer& viewer) {
viewer.setBackgroundColor(0, 0, 0); //設置背景顏色為黑色
}
int main() {
PointCloud::Ptr cloud(new PointCloud);
char strfilepath[256] = “rabbit.pcd”;
if (-1 == io::loadPCDFile(strfilepath, *cloud)) {
cout << “error input!” << endl;
return -1;
}
cout << cloud->points.size() << endl;
visualization::CloudViewer viewer(“Cloud Viewer: Rabbit”); //創建viewer對象
viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
system(“pause”);
return 0;
}
斯坦福兔子rabbit.pcd 點云文件可百度下載
運行結果如下:

可能遇到的報錯問題

1.無法解析的外部符號:

這里是引用
1>vtkCommonCore-8.0-gd.lib(vtkWin32OutputWindow.obj) : error LNK2001: 無法解析的外部符號 __imp_MessageBoxA
1>vtkCommonCore-8.0-gd.lib(vtkWin32OutputWindow.obj) : error LNK2019: 無法解析的外部符號 __imp_GetStockObject,該符號在函數 “protected: static int __cdecl vtkWin32OutputWindow::Initialize(void)” (?Initialize@vtkWin32OutputWindow@@KAHXZ) 中被引用


解決辦法:仔細檢查上述庫目錄,連接器附加依賴性等內容是否全部添加完整!!!(很重要,此問題錯誤幾乎都是添加內容不完整導致)

2.遇到“XXX被聲明為已否決”
直接雙擊屬性表的根目錄Debug|X64

然后更改SDL檢查為否:

3.檢測到XXX的不匹配項:值…(如下圖)

解決方法:
1.首先檢查你屬性表中:鏈接器—輸入—附加依耐項中配置的.lib文件是不是你所用的debug/release版本;
2.如果第一步沒錯,嘗試以下步驟:
直接雙擊屬性表的根目錄Release|X64(根據你使用的是Debug還是Release)。找到運行庫,更改為其他幾個試一下。

3.第三方庫flann報錯:

添加頭文件#include <pcl/registration/icp.h>編譯的時候可能會遇到如下報錯:

1>…\flann\algorithms\dist.h(523): error C3861: “pop_t”: 找不到標識符
1
解決方法:
(注由于要對第三方庫的頭文件進行修改,建議先備份一下原頭文件,其路徑…\PCL 1.9.1\3rdParty\FLANN\include\flann\algorithms\dist.h)
開始解決:
雙擊該行輸出直接打開dist.h頭文件;

將第503行的typedef unsigned long long pop_t;移動到第480行前面:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20200504215911925.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9

復制鏈接庫列表

注意VTK的版本,在你的路徑:…PCL1.9.1\PCL 1.9.1\3rdParty\VTK\lib 中查看自己VTK的版本。

Debug版本:注意VTK的版本
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
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.lib

Release版本:注意VTK的版本
pcl_common_release.lib
pcl_features_release.lib
pcl_filters_release.lib
pcl_io_ply_release.lib
pcl_io_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
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.lib
vtknetcdfcpp-8.1.lib
vtkoggtheora-8.1.lib
vtkParallelCore-8.1.lib
vtkpng-8.1.lib
vtkproj4-8.1.lib
vtkRenderingAnnotation-8.1.lib
vtkRenderingContext2D-8.1.lib
vtkRenderingContextOpenGL-8.1.lib
vtkRenderingCore-8.1.lib
vtkRenderingFreeType-8.1.lib
vtkRenderingGL2PS-8.1.lib
vtkRenderingImage-8.1.lib
vtkRenderingLabel-8.1.lib
vtkRenderingLIC-8.1.lib
vtkRenderingLOD-8.1.lib
vtkRenderingOpenGL-8.1.lib
vtkRenderingVolume-8.1.lib
vtkRenderingVolumeOpenGL-8.1.lib
vtksqlite-8.1.lib
vtksys-8.1.lib
vtktiff-8.1.lib
vtkverdict-8.1.lib
vtkViewsContext2D-8.1.lib
vtkViewsCore-8.1.lib
vtkViewsInfovis-8.1.lib
vtkzlib-8.1.lib

如何獲取自己的鏈接庫列表

win+r調出“運行”窗口并輸出cmd
輸入:cd /d D:\P_pcl\PCL1.9.0\PCL 1.9.0\3rdParty\VTK\lib 回車 (填自己的路徑)
輸入:dir /b *.lib *>lib.txt 回車

這時打開你對應路徑的目錄,多了一個lib.txt文件,里面存了你這個文件夾里所有鏈接庫名字。

由于每一個Debug版本和Release版本的鏈接庫是挨在一起的。寫一個讀取文檔并對其分別保存就行了。
具體代碼如下(主要功能是讀取一個txt文件,將其中奇數行和偶數行單獨輸出到新的txt文檔。):

#include
#include
#include
#include
using namespace std;

int main()
{
ifstream txtfile;//打開讀取的文件
ofstream txt01;//保存的文件
ofstream txt02;//保存的文件
string temp;
int index = 0;//用于判斷奇偶

txtfile.open("0.txt", ios::in);while (!txtfile.eof()) // 若未到文件結束一直循環 {getline(txtfile, temp);//一行一行讀取if (index%2==0)//判斷除以2的余數,即為奇偶的判斷{txt01.open("1.txt", ios::app);txt01 << temp;txt01 << endl;txt01.close();}else{txt02.open("2.txt", ios::app);txt02 << temp;txt02 << endl;txt02.close();}index++; } txtfile.close(); //關閉文件 txtfile.close(); txt01.close(); txt02.close();return 0;

}

總結

以上是生活随笔為你收集整理的PCL1.9.1下载与配置+Visual Studio2017的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。