PCL入门(Win10+VS2015+PCL1.8.1安装及配置)

it2024-06-28  45

WIN10+VS2015+PCL1.8.1安装

文章目录

前言一、VS2015下载及安装配置?二、PCL1.8.1安装三、VS2015下配置PCL库?总结


前言

主要介绍WIN10系统下如何安装VS2015及PCL1.8.1如何配置


一、VS2015下载及安装配置?

软件下载

    VS2015 社区版(Community)下载地址: 迅雷下载(3.74GB)     (ed2k://|file|cn_visual_studio_community_2015_x86_dvd_6847368.iso|4013920256|EB7F6605EDE67509E218E29173AC6574|/)

VS2015安装

     1)VS2015 下载完成后会得到一个镜像文件(.iso 文件),解压工具打开即可选择“运行 vs_community.exe”即可进入安装程序。      2)开始安装后,会出现等待界面(可能需要几分钟)     注意:如果你的计算机配置不恰当,VS 安装程序会给出警告。 出现该警告是由于我的电脑没有安装 IE10。忽略该警告,点击“继续”按钮。     3)接下来选择安装位置以及安装方式     VS2015 除了支持 C/C++ 开发,还支持 C#、F#、VB 等其他语言,我们没必要安装所有的组件,只需要安装与 C/C++ 相关的组件即可,所以这里选择“自定义”。     4)选择要安装的组件     我们不需要 VS2015 的全部组件,只需要与 C/C++ 相关的组件,所以这里只选择了“Visual C++”,将其它用不到的组件全部取消勾选了。     点击“下一步”按钮,弹出如下的确认对话框:     点击“安装”按钮开始安装。     5) 接下来进入漫长的等待过程。 安装完成后,VS2015 会要求重启计算机。嗯,那就重启吧。     6) 重启完成后,打开“开始菜单”,发现多了一个叫“Visual Studio 2015”的图标,就证明安装成功!

参考文章:VS2015安装教程(带图解+下载地址+超详细)

二、PCL1.8.1安装

软件下载

    下载地址:PCL1.8.1下载     注:这里用的电脑是64位,对应下载即可

PCL1.8.1安装

    1)双击PCL-1.8.1-AllInOne-msvc2015-win64.exe进行安装;     2)这里选择第二项,直接添加环境变量,点击下一步;     3)这里选择自定义路径,选择一个自定义文件夹,点击下一步;(这里我的路径为D:\soft\PCL\PCL 1.8.1)     4)点击安装,即可安装。     4)解压pcl-1.8.1-pdb-msvc2015-win64.zip文件,将其内部文件放到安装目录的bin下面:(即拷贝到D:\soft\PCL\PCL 1.8.1\bin下)。

环境配置 之前选择默认添加环境变量,以下配置将会自动生成,如果未点击手动添加即可; 除了上述自动添加的环境变量,还需要手动添以下变量:

此处就算完成!

参考文章:PCL安装及配置

三、VS2015下配置PCL库?

新建项目:首先根据图示添加一个项目,这里我经项目名称定义为PCL001,可自行定义; 添加新项目属性表:打开属性管理器(在视图–>其他窗口),右键Debug|x64,添加新项目属性表,在这里我命名为PCL(方便以后重复的使用,重复使用时选择添加现有属性表):

    双击PCL属性表进行修改属性操作:     首先修改VC++目录下的包含目录,具体修改内容如下图:(根据自己目录修改,注意都是在Debug x64下的)

    然后修改VC++目录下的库目录,具体修改内容如下图(根据自己目录修改):     最后修改链接器——>输入——>附加依赖性 附加依赖性配置内容如下: 下面展示一些 内联代码片。

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-vc140-mt-gd-1_64.lib libboost_bzip2-vc140-mt-gd-1_64.lib libboost_chrono-vc140-mt-gd-1_64.lib libboost_container-vc140-mt-gd-1_64.lib libboost_context-vc140-mt-gd-1_64.lib libboost_coroutine-vc140-mt-gd-1_64.lib libboost_date_time-vc140-mt-gd-1_64.lib libboost_exception-vc140-mt-gd-1_64.lib libboost_fiber-vc140-mt-gd-1_64.lib libboost_filesystem-vc140-mt-gd-1_64.lib libboost_graph_parallel-vc140-mt-gd-1_64.lib libboost_graph-vc140-mt-gd-1_64.lib libboost_iostreams-vc140-mt-gd-1_64.lib libboost_locale-vc140-mt-gd-1_64.lib libboost_log-vc140-mt-gd-1_64.lib libboost_log_setup-vc140-mt-gd-1_64.lib libboost_math_c99-vc140-mt-gd-1_64.lib libboost_math_c99f-vc140-mt-gd-1_64.lib libboost_math_c99l-vc140-mt-gd-1_64.lib libboost_math_tr1-vc140-mt-gd-1_64.lib libboost_math_tr1f-vc140-mt-gd-1_64.lib libboost_math_tr1l-vc140-mt-gd-1_64.lib libboost_mpi-vc140-mt-gd-1_64.lib libboost_numpy3-vc140-mt-gd-1_64.lib libboost_numpy-vc140-mt-gd-1_64.lib libboost_prg_exec_monitor-vc140-mt-gd-1_64.lib libboost_program_options-vc140-mt-gd-1_64.lib libboost_python3-vc140-mt-gd-1_64.lib libboost_python-vc140-mt-gd-1_64.lib libboost_random-vc140-mt-gd-1_64.lib libboost_regex-vc140-mt-gd-1_64.lib libboost_serialization-vc140-mt-gd-1_64.lib libboost_signals-vc140-mt-gd-1_64.lib libboost_system-vc140-mt-gd-1_64.lib libboost_test_exec_monitor-vc140-mt-gd-1_64.lib libboost_thread-vc140-mt-gd-1_64.lib libboost_timer-vc140-mt-gd-1_64.lib libboost_type_erasure-vc140-mt-gd-1_64.lib libboost_unit_test_framework-vc140-mt-gd-1_64.lib libboost_wave-vc140-mt-gd-1_64.lib libboost_wserialization-vc140-mt-gd-1_64.lib libboost_zlib-vc140-mt-gd-1_64.lib vtkzlib-8.0-gd.lib vtkViewsContext2D-8.0-gd.lib vtkhdf5_hl-8.0-gd.lib vtkFiltersProgrammable-8.0-gd.lib vtkIOMovie-8.0-gd.lib vtkexpat-8.0-gd.lib vtkRenderingLOD-8.0-gd.lib vtkIOPLY-8.0-gd.lib vtkpng-8.0-gd.lib vtkIOVideo-8.0-gd.lib vtkRenderingImage-8.0-gd.lib vtkFiltersVerdict-8.0-gd.lib vtkjpeg-8.0-gd.lib vtkInteractionImage-8.0-gd.lib vtkverdict-8.0-gd.lib vtkoggtheora-8.0-gd.lib vtkImagingStatistics-8.0-gd.lib vtkCommonSystem-8.0-gd.lib vtkFiltersParallelImaging-8.0-gd.lib vtkFiltersTexture-8.0-gd.lib vtkCommonMisc-8.0-gd.lib vtkCommonMath-8.0-gd.lib vtkFiltersSelection-8.0-gd.lib vtkImagingFourier-8.0-gd.lib vtkIOXMLParser-8.0-gd.lib vtkproj4-8.0-gd.lib vtkalglib-8.0-gd.lib vtktiff-8.0-gd.lib vtksqlite-8.0-gd.lib vtkImagingSources-8.0-gd.lib vtkCommonTransforms-8.0-gd.lib vtkImagingMath-8.0-gd.lib vtkFiltersGeneric-8.0-gd.lib vtkexoIIc-8.0-gd.lib vtkfreetype-8.0-gd.lib vtkImagingColor-8.0-gd.lib vtknetcdf_c++-gd.lib vtkNetCDF-8.0-gd.lib vtkFiltersImaging-8.0-gd.lib vtkFiltersHyperTree-8.0-gd.lib vtkImagingMorphological-8.0-gd.lib vtkImagingStencil-8.0-gd.lib vtkRenderingFreeType-8.0-gd.lib vtkCommonColor-8.0-gd.lib vtkjsoncpp-8.0-gd.lib vtkRenderingContext2D-8.0-gd.lib vtkFiltersAMR-8.0-gd.lib vtkRenderingContextOpenGL-8.0-gd.lib vtkIOParallelXML-8.0-gd.lib vtkViewsCore-8.0-gd.lib vtkImagingHybrid-8.0-gd.lib vtkIOExport-8.0-gd.lib vtkRenderingVolumeOpenGL-8.0-gd.lib vtkIOImport-8.0-gd.lib vtkDomainsChemistry-8.0-gd.lib vtkInteractionStyle-8.0-gd.lib vtkCommonComputationalGeometry-8.0-gd.lib vtkDICOMParser-8.0-gd.lib vtklibxml2-8.0-gd.lib vtkIOMINC-8.0-gd.lib vtkIOSQL-8.0-gd.lib vtkFiltersModeling-8.0-gd.lib vtkParallelCore-8.0-gd.lib vtkIOAMR-8.0-gd.lib vtkGeovisCore-8.0-gd.lib vtksys-8.0-gd.lib vtkIOEnSight-8.0-gd.lib vtkImagingGeneral-8.0-gd.lib vtkFiltersFlowPaths-8.0-gd.lib vtkIOLSDyna-8.0-gd.lib vtkFiltersSMP-8.0-gd.lib vtkIOParallel-8.0-gd.lib vtkFiltersGeometry-8.0-gd.lib vtkInfovisLayout-8.0-gd.lib vtkIOCore-8.0-gd.lib vtkFiltersSources-8.0-gd.lib vtkIOLegacy-8.0-gd.lib vtkFiltersHybrid-8.0-gd.lib vtkIONetCDF-8.0-gd.lib vtkFiltersExtraction-8.0-gd.lib vtkFiltersParallel-8.0-gd.lib vtkRenderingLabel-8.0-gd.lib vtkIOInfovis-8.0-gd.lib vtkRenderingAnnotation-8.0-gd.lib vtkImagingCore-8.0-gd.lib vtkCommonExecutionModel-8.0-gd.lib vtkhdf5-8.0-gd.lib vtkViewsInfovis-8.0-gd.lib vtkIOGeometry-8.0-gd.lib vtkmetaio-8.0-gd.lib vtkIOImage-8.0-gd.lib vtkIOXML-8.0-gd.lib vtkIOExodus-8.0-gd.lib vtkRenderingVolume-8.0-gd.lib vtkChartsCore-8.0-gd.lib vtkFiltersStatistics-8.0-gd.lib vtkInfovisCore-8.0-gd.lib vtkRenderingCore-8.0-gd.lib vtkInteractionWidgets-8.0-gd.lib vtkRenderingOpenGL-8.0-gd.lib vtkFiltersGeneral-8.0-gd.lib vtkFiltersCore-8.0-gd.lib vtkCommonDataModel-8.0-gd.lib vtkCommonCore-8.0-gd.lib flann_cpp_s-gd.lib qhullstatic_d.lib OpenNI2.lib

至此配置完毕,用网上例子检测运行。 参考文章:配置WIN10+VS2015+PCL1.8.1

总结

测试:

#include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/ModelCoefficients.h> #include <pcl/filters/project_inliers.h> int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected(new pcl::PointCloud<pcl::PointXYZ>); // Fill in the cloud data cloud->width = 5; cloud->height = 1; cloud->points.resize(cloud->width * cloud->height); for (size_t i = 0; i < cloud->points.size(); ++i) { cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f); cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f); cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f); } std::cerr << "Cloud before projection: " << 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; // Create a set of planar coefficients with X=Y=0,Z=1 pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients()); coefficients->values.resize(4); coefficients->values[0] = coefficients->values[1] = 0; coefficients->values[2] = 1.0; coefficients->values[3] = 0; // Create the filtering object pcl::ProjectInliers<pcl::PointXYZ> proj; proj.setModelType(pcl::SACMODEL_PLANE); proj.setInputCloud(cloud); proj.setModelCoefficients(coefficients); proj.filter(*cloud_projected); std::cerr << "Cloud after projection: " << std::endl; for (size_t i = 0; i < cloud_projected->points.size(); ++i) std::cerr << " " << cloud_projected->points[i].x << " " << cloud_projected->points[i].y << " " << cloud_projected->points[i].z << std::endl; system("pause"); return (0); }

结果:

最新回复(0)