专栏首页点云PCLPCL 1.7.2(vtk6.2) + VS2013 + win10_x64 配置及常见问题

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

写在前面:

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

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

步骤一:pcl安装

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

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

步骤二:PCL环境配置

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

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

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

D:\pcl\PCL 1.7.2\bin

D:\pcl\PCL 1.7.2\3rdParty\FLANN\bin

D:\pcl\PCL 1.7.2\3rdParty\Qhull\bin

D:\pcl\PCL 1.7.2\3rdParty\VTK\bin

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

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

D:\pcl\PCL 1.7.2\

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

D:\pcl\PCL1.7.2\include\pcl-1.7

D:\pcl\PCL1.7.2\3rdParty\Boost\include\boost-1_57

D:\pcl\PCL1.7.2\3rdParty\Eigen\eigen3

D:\pcl\PCL1.7.2\3rdParty\FLANN\include

D:\pcl\PCL1.7.2\3rdParty\QHull\include

D:\pcl\PCL1.7.2\3rdParty\VTK\include\vtk-6.2

2.1.2链接器\常规\ 附加库目录

D:\pcl\PCL 1.7.2\lib

D:\pcl\PCL1.7.2\3rdParty\Boost\lib

D:\pcl\PCL1.7.2\3rdParty\FLANN\lib

D:\pcl\PCL1.7.2\3rdParty\Qhull\lib

D:\pcl\PCL 1.7.2\3rdParty\VTK\lib

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:\pcl\PCL1.7.2\3rdParty\FLANN\include

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

D:\pcl\PCL1.7.2\3rdParty\FLANN\include\flann

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 点云文件,要是没有报错说明配置成功,有时候点云数目过多导致加载很慢并不代表环境配置错误

本文分享自微信公众号 - 点云PCL(dianyunPCL),作者:浙大车马一

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • win下使用QT添加VTK插件实现点云可视化GUI

    大家在做点云的时候经常会用到QT,但是我们需要使用QT做点云的可视化的时候又需要VTK,虽然我们在windows下安装PCL的时候就已经安装了VTK,由于跟着P...

    点云PCL博主
  • VS下VTK工程的配置

    Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和...

    点云PCL博主
  • PCL配置VS2010过程以及遇到的相关问题的分享

    将pcl-1.6.0-pdb-msvc2010-win32文件夹中的内容复制到C:\Program Files (x86)\PCL1.6.0\bin路径中

    点云PCL博主
  • 使用Python爬取糗事百科热门文章

      默认情况下取糗事百科热门文章只有35页,每页20条,根据下面代码可以一次性输出所有的文章,也可以选择一次输出一条信息,回车继续。不支持图片内容的显示,显示内...

    py3study
  • 开发丨TensorFlow 与 Apache Spark 结合:雅虎开源“TensorFlowOnSpark”

    雅虎昨日宣布开源 TensorFlowOnSpark。 它使得深度学习框架 TensorFlow 能与 Apache Spark 中的数据集兼容。对于使用 Sp...

    AI科技评论
  • Spring、Spring Boot和TestNG测试指南 - 测试AOP

    Spring提供了一套AOP工具,但是当你把各种Aspect写完之后,如何确定这些Aspect都正确的应用到目标Bean上了呢?本章将举例说明如何对Spring...

    颇忒脱
  • Python开源项目介绍:网站日志分析工具

    日志分析在web系统中故障排查、性能分析方面有着非常重要的作用。该工具的侧重点不是通常的PV,UV等展示,而是在指定时间段内提供细粒度(最小分钟级别,即一分钟内...

    小小科
  • 羊皮书APP(Android版)开发系列(十九)在ScrollView中使用ListView、GridView的方法

    热心的程序员
  • 大咖说数据挖掘的方法

    数据挖掘就是对存在的数据集进行分析和总结而产出有价值信息的过程。有时数据挖掘也用来泛指一种方法,即数据挖掘是对数据进行处理,并从数据中分析、提炼、总结出有价值的...

    明悦数据
  • Python老司机带你快速搞定日志分析工具

    转载自:Python中文社区 ID:python-china 日志分析在web系统中故障排查、性能分析方面有着非常重要的作用。该工具的侧重点不是通常的P...

    小小科

扫码关注云+社区

领取腾讯云代金券