PCL 1.7.2(vtk6.2) + VS2013 + win10_x64 配置及常见问题

2019-07-31 14:34:06 浏览数 (1)

写在前面:

1.系统win10,win7应该问题不大,主要区分32或者64位操作系统

2.同样的PCL 1.7.2 安装后可能vtk版本不同,因此附加依赖项也会不同。

步骤一:pcl安装

  1. 1. 安装路径:没有要求,尽量在英文文件夹下。以我的路径为例:

D:pcl---安装后该文件下 D:pclPCL 1.7.2

步骤二:PCL环境配置

  1. 1. 电脑系统环境配置

电脑右键---属性---环境变量---

1.1 点击path添加(4个bin路径即包含dll,exe文件夹): (win10直接一行一行添加,win7;隔开)

D:pclPCL 1.7.2bin

D:pclPCL 1.7.23rdPartyFLANNbin

D:pclPCL 1.7.23rdPartyQhullbin

D:pclPCL 1.7.23rdPartyVTKbin

备注:有的博客提到OPENNI,根据需要自己单独配置

1.2新建 PCL_ROOT:(PCL安装路径)

D:pclPCL 1.7.2

  1. 2. 工程属性配置
  2. 2.1 右键项目属性(或者新建属性文件下次直接加载),
  3. 2.1.1VC 目录,包含目录添加:

D:pclPCL1.7.2includepcl-1.7

D:pclPCL1.7.23rdPartyBoostincludeboost-1_57

D:pclPCL1.7.23rdPartyEigeneigen3

D:pclPCL1.7.23rdPartyFLANNinclude

D:pclPCL1.7.23rdPartyQHullinclude

D:pclPCL1.7.23rdPartyVTKincludevtk-6.2

2.1.2链接器常规 附加库目录

D:pclPCL 1.7.2lib

D:pclPCL1.7.23rdPartyBoostlib

D:pclPCL1.7.23rdPartyFLANNlib

D:pclPCL1.7.23rdPartyQhulllib

D:pclPCL 1.7.23rdPartyVTKlib

2.1.3链接器输入附加依赖项 (注意vtk6.2版本和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_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_surface_debug.lib

pcl_tracking_debug.lib

pcl_visualization_debug.lib

libboost_atomic-vc120-mt-gd-1_57.lib

libboost_chrono-vc120-mt-gd-1_57.lib

libboost_container-vc120-mt-gd-1_57.lib

libboost_context-vc120-mt-gd-1_57.lib

libboost_coroutine-vc120-mt-gd-1_57.lib

libboost_date_time-vc120-mt-gd-1_57.lib

libboost_exception-vc120-mt-gd-1_57.lib

libboost_filesystem-vc120-mt-gd-1_57.lib

libboost_graph-vc120-mt-gd-1_57.lib

libboost_iostreams-vc120-mt-gd-1_57.lib

libboost_locale-vc120-mt-gd-1_57.lib

libboost_log-vc120-mt-gd-1_57.lib

libboost_log_setup-vc120-mt-gd-1_57.lib

libboost_math_c99-vc120-mt-gd-1_57.lib

libboost_math_c99f-vc120-mt-gd-1_57.lib

libboost_math_c99l-vc120-mt-gd-1_57.lib

libboost_math_tr1-vc120-mt-gd-1_57.lib

libboost_math_tr1f-vc120-mt-gd-1_57.lib

libboost_math_tr1l-vc120-mt-gd-1_57.lib

libboost_mpi-vc120-mt-gd-1_57.lib

libboost_prg_exec_monitor-vc120-mt-gd-1_57.lib

libboost_program_options-vc120-mt-gd-1_57.lib

libboost_random-vc120-mt-gd-1_57.lib

libboost_regex-vc120-mt-gd-1_57.lib

libboost_serialization-vc120-mt-gd-1_57.lib

libboost_signals-vc120-mt-gd-1_57.lib

libboost_system-vc120-mt-gd-1_57.lib

libboost_test_exec_monitor-vc120-mt-gd-1_57.lib

libboost_thread-vc120-mt-gd-1_57.lib

libboost_timer-vc120-mt-gd-1_57.lib

libboost_unit_test_framework-vc120-mt-gd-1_57.lib

libboost_wave-vc120-mt-gd-1_57.lib

libboost_wserialization-vc120-mt-gd-1_57.lib

flann_cpp_s-gd.lib

qhullstatic_d.lib

vtkalglib-6.2-gd.lib

vtkChartsCore-6.2-gd.lib

vtkCommonCore-6.2-gd.lib

vtkCommonColor-6.2-gd.lib

vtkCommonComputationalGeometry-6.2-gd.lib

vtkCommonDataModel-6.2-gd.lib

vtkCommonExecutionModel-6.2-gd.lib

vtkCommonMath-6.2-gd.lib

vtkCommonMisc-6.2-gd.lib

vtkCommonSystem-6.2-gd.lib

vtkCommonTransforms-6.2-gd.lib

vtkDICOMParser-6.2-gd.lib

vtkDomainsChemistry-6.2-gd.lib

vtkexoIIc-6.2-gd.lib

vtkexpat-6.2-gd.lib

vtkFiltersAMR-6.2-gd.lib

vtkFiltersCore-6.2-gd.lib

vtkFiltersExtraction-6.2-gd.lib

vtkFiltersFlowPaths-6.2-gd.lib

vtkFiltersGeneral-6.2-gd.lib

vtkFiltersGeneric-6.2-gd.lib

vtkFiltersGeometry-6.2-gd.lib

vtkFiltersHybrid-6.2-gd.lib

vtkFiltersHyperTree-6.2-gd.lib

vtkFiltersImaging-6.2-gd.lib

vtkFiltersModeling-6.2-gd.lib

vtkFiltersParallel-6.2-gd.lib

vtkFiltersParallelImaging-6.2-gd.lib

vtkFiltersProgrammable-6.2-gd.lib

vtkFiltersSelection-6.2-gd.lib

vtkFiltersSMP-6.2-gd.lib

vtkFiltersSources-6.2-gd.lib

vtkFiltersStatistics-6.2-gd.lib

vtkFiltersTexture-6.2-gd.lib

vtkFiltersVerdict-6.2-gd.lib

vtkfreetype-6.2-gd.lib

vtkftgl-6.2-gd.lib

vtkGeovisCore-6.2-gd.lib

vtkgl2ps-6.2-gd.lib

vtkhdf5-6.2-gd.lib

vtkhdf5_hl-6.2-gd.lib

vtkImagingColor-6.2-gd.lib

vtkImagingCore-6.2-gd.lib

vtkImagingFourier-6.2-gd.lib

vtkImagingGeneral-6.2-gd.lib

vtkImagingHybrid-6.2-gd.lib

vtkImagingMath-6.2-gd.lib

vtkImagingMorphological-6.2-gd.lib

vtkImagingSources-6.2-gd.lib

vtkImagingStatistics-6.2-gd.lib

vtkImagingStencil-6.2-gd.lib

vtkInfovisCore-6.2-gd.lib

vtkInfovisLayout-6.2-gd.lib

vtkInteractionImage-6.2-gd.lib

vtkInteractionStyle-6.2-gd.lib

vtkInteractionWidgets-6.2-gd.lib

vtkIOAMR-6.2-gd.lib

vtkIOCore-6.2-gd.lib

vtkIOEnSight-6.2-gd.lib

vtkIOExodus-6.2-gd.lib

vtkIOExport-6.2-gd.lib

vtkIOGeometry-6.2-gd.lib

vtkIOImage-6.2-gd.lib

vtkIOImport-6.2-gd.lib

vtkIOInfovis-6.2-gd.lib

vtkIOLegacy-6.2-gd.lib

vtkIOLSDyna-6.2-gd.lib

vtkIOMINC-6.2-gd.lib

vtkIOMovie-6.2-gd.lib

vtkIONetCDF-6.2-gd.lib

vtkIOParallel-6.2-gd.lib

vtkIOParallelXML-6.2-gd.lib

vtkIOPLY-6.2-gd.lib

vtkIOSQL-6.2-gd.lib

vtkIOVideo-6.2-gd.lib

vtkIOXML-6.2-gd.lib

vtkIOXMLParser-6.2-gd.lib

vtkjpeg-6.2-gd.lib

vtkjsoncpp-6.2-gd.lib

vtklibxml2-6.2-gd.lib

vtkmetaio-6.2-gd.lib

vtkNetCDF-6.2-gd.lib

vtkNetCDF_cxx-6.2-gd.lib

vtkoggtheora-6.2-gd.lib

vtkParallelCore-6.2-gd.lib

vtkpng-6.2-gd.lib

vtkproj4-6.2-gd.lib

vtkRenderingAnnotation-6.2-gd.lib

vtkRenderingContext2D-6.2-gd.lib

vtkRenderingContextOpenGL-6.2-gd.lib

vtkRenderingCore-6.2-gd.lib

vtkRenderingFreeType-6.2-gd.lib

vtkRenderingFreeTypeOpenGL-6.2-gd.lib

vtkRenderingGL2PS-6.2-gd.lib

vtkRenderingImage-6.2-gd.lib

vtkRenderingLabel-6.2-gd.lib

vtkRenderingLIC-6.2-gd.lib

vtkRenderingLOD-6.2-gd.lib

vtkRenderingOpenGL-6.2-gd.lib

vtkRenderingVolume-6.2-gd.lib

vtkRenderingVolumeOpenGL-6.2-gd.lib

vtksqlite-6.2-gd.lib

vtksys-6.2-gd.lib

vtktiff-6.2-gd.lib

vtkverdict-6.2-gd.lib

vtkViewsContext2D-6.2-gd.lib

vtkViewsCore-6.2-gd.lib

vtkViewsInfovis-6.2-gd.lib

vtkzlib-6.2-gd.lib

kernel32.lib

user32.lib

gdi32.lib

winspool.lib

comdlg32.lib

advapi32.lib

shell32.lib

ole32.lib

oleaut32.lib

uuid.lib

odbc32.lib

odbccp32.lib

备注:release 自己添加,PCL1.7.2可能vtk版本不同,以上的debug,vtk6.2

2.1.4C/C 预处理器

_SCL_SECURE_NO_WARNINGS

_CRT_SECURE_NO_WARNINGS

步骤三 常见错误

3.1编码方式:Unicode(不一定)

3.2Debug :win64,win32选择

3.3配置一样但是依然显示 各种 .h 错误(包含目录路径错误)

点开.h 文件看看,里面有的头文件路径写的<flann/flann.h>此时包含目录为:D:pclPCL1.7.23rdPartyFLANNinclude

如果写的<flann.h> 此时包含目录添加为:

D:pclPCL1.7.23rdPartyFLANNincludeflann

3.4.lib 错误 :确认版本lib文件路径

步骤四 测试

#include<pcl/io/pcd_io.h>

#include<pcl/features/integral_image_normal.h>

#include<boost/thread/thread.hpp>

#include<pcl/visualization/pcl_visualizer.h>

int

main(intargc, char** argv)

{

// 点云数据对象

pcl::PointCloud<pcl::PointXYZ>::Ptrcloud(new pcl::PointCloud<pcl::PointXYZ>);

// 法线对象

pcl::PointCloud<pcl::Normal>::Ptrnormals(new pcl::PointCloud<pcl::Normal>);

// 读取文件

if(pcl::io::loadPCDFile<pcl::PointXYZ>(argv[1], *cloud) != 0)

{

return -1;

}

// 法线估计对象

pcl::IntegralImageNormalEstimation<pcl::PointXYZ,pcl::Normal> normalEstimation;

normalEstimation.setInputCloud(cloud);

// 法线估计方法: COVARIANCE_MATRIX,AVERAGE_DEPTH_CHANGE, SIMPLE_3D_GRADIENT.

normalEstimation.setNormalEstimationMethod(normalEstimation.AVERAGE_3D_GRADIENT);

//设置深度变化的阀值

normalEstimation.setMaxDepthChangeFactor(0.02f);

// 设置计算法线的区域

normalEstimation.setNormalSmoothingSize(10.0f);

// 计算

normalEstimation.compute(*normals);

// 可视化

boost::shared_ptr<pcl::visualization::PCLVisualizer>viewer(new pcl::visualization::PCLVisualizer("Normals"));

viewer->addPointCloud<pcl::PointXYZ>(cloud, "cloud");

viewer->addPointCloudNormals<pcl::PointXYZ, pcl::Normal>(cloud,normals, 20, 0.03, "normals");

while (!viewer->wasStopped())

{

viewer->spinOnce(100);

boost::this_thread::sleep(boost::posix_time::microseconds(100000));

}

}

//备注自己加载一个 pcd 点云文件,要是没有报错说明配置成功,有时候点云数目过多导致加载很慢并不代表环境配置错误

0 人点赞