一、下载PCL1.9.1
下载地址:https://github.com/PointCloudLibrary/pcl/releases
下载红框内的两个文件
二、安装
2.1 安装“PCL-1.9.1-AllInOne-msvc2017-win64.exe”。
(1)选择第二个,自动添加环境变量
(2)安装路径选择D盘,系统会自动新建PCL 1.9.1文件夹。
2.2 安装过程中需要安装OpenNI,选择路径(D:\PCL 1.9.1\3rdParty\OpenNI2)安装即可。
2.3 全部安装完成后,将pcl-1.9.1-pdb-msvc2017-win64.zip解压后的*.pdb文件拷贝到(D:\PCL 1.9.1\bin)中。
2.4 设置环境变量:右击计算机—属性—高级系统设置—高级—环境变量—系统变量—Path—编辑(不知道对不对,哈哈;欢迎大佬批评指正)。
如下图所示,设置完成后重启电脑。
三、配置
3.1 新建Windows控制台应用程序,解决方案配置选择Release,解决方案平台选择x64。
3.2 右击工程—属性—VC++目录—包含目录,添加7个路径
3.3 VC++目录—包含目录,添加6个lib路径
3.4 C/C++—常规—SDL检查—否
3.5 链接器—输入—附加依赖项——添加PCL和VTK的相关lib文件。我用的Release版本。
lib文件如下:
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
分享给有需要的人,代码质量勿喷。
#include "pch.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <ctime>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
using namespace std;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor(0, 0, 0);//背景
}
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr xjPointCloud(new pcl::PointCloud<pcl::PointXYZ>);
char strfilepath[256] = "D:\\test.pcd";//文件路径
if (-1 == pcl::io::loadPCDFile(strfilepath, *xjPointCloud))
{
cout << "输入错误!!!" << endl;
return -1;
}
pcl::visualization::CloudViewer xjViewer("Point Cloud Viewer");
xjViewer.showCloud(xjPointCloud);
xjViewer.runOnVisualizationThreadOnce(viewerOneOff);
system("pause");
return 0;
}
四、结果
会显示下图,目前不是很明白。
鼠标滑轮滑几下,按住中键拖动几下,可能会看到点云【目前是简单显示,后续会继续研究】
五、参考博客
http://www.360doc.com/content/19/0603/16/3478092_840142996.shtml
https://blog.csdn.net/weixin_41991128/article/details/83864713#2_52
https://blog.csdn.net/weixin_41074793/article/details/89015423
https://note.youdao.com/ynoteshare1/index.html?id=01c70b5a3d371f659bfcd1826520ab82&type=note