PCL编程->VS2013+PCL1.8.0环境配置及初运行

来源:互联网 发布:杭州网络培训机构 编辑:程序博客网 时间:2024/04/30 01:28


下载

把你需要安装的PCL版本及属性表都下载下来。然后解压。
百度网盘:http://pan.baidu.com/s/1c1sqoQO

安装

1.在安装PCL一键安装包时,勾选上Add PCL to system PATH for all users。安装过程中,会弹出OpenNI的安装程序,更改OpenNI的安装路径为你安装的PCL路径下的3rdParty文件夹下的OpenNI2文件夹中。

2.拷贝与你安装PCL版本对应的PDB压缩包解压后的PDB文件,到你PCL安装路径下的bin文件夹,就是里面有pcl开头的dll的那个文件夹。
注意:安装完成后重启下电脑。

配置

1.打开VS新建一个控制台程序。
如果安装的是64位PCL,界面有个运行项,后面有个debug,在后面有个叫解决方案平台的下拉框,其值默认为win32,需要把win32,改成x64,方法是,点win32的箭头,点配置管理器,点活动解决方案平台,点新建,把键入或选择新平台,这一项,切换为x64,然后确定,此时,原来的win32已变为x64。

2.在解决方案管理器里找到你新建的项目,右键点属性,弹出属性页窗口。
点击配置属性下的调试,右边有个环境项,把值设置为PATH=$(PCL_ROOT)bin;$(PCL_ROOT)3rdPartyFLANNbin;$(PCL_ROOT)3rdPartyVTKbin;$(PCL_ROOT)Qhullbin;$(PCL_ROOT)3rdPartyOpenNI2Tools;$(PATH)
点击配置属性下的CC++,点击它的子项预处理器,右边有个预处理器定义,添加上_SCL_SECURE_NO_WARNINGS和_CRT_SECURE_NO_WARNINGS。

3.在属性管理器里点击项目,展开子项。
如果安装的是32位,点击选中开头为Debug的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLDebug.props,添加上。点击选中开头为Release的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLRelease.props,添加上。
如果安装的是64位,点击选中开头为Debug的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLDebug.props,添加上。点击选中开头为Release的子项里右键,点击添加现有属性表,然后找到你下载的文件夹里的PCLRelease.props,添加上。
注意在这里,64位的会有2个开头为Debug的子项,都要添加上PCLDebug.props,并且2个开头为Release的子项,也要添加上PCLRelease.props。

运行


/******************************************************************************PointRegistration  Debug 1.0                                                  **Copyright(c) 2017 - 2027 by *** Co.                   **Written by Mr.Vincent                                                 ****Function:                                                             **PointCloud All     ****************************************************************************/#include "stdafx.h"#include "iostream"#include <pcl/io/pcd_io.h> //PCL的PCD格式文件的输入输出头文件  #include <pcl/io/ply_io.h> //PCL的PCD格式文件的输入输出头文件  #include <pcl/point_types.h> //PCL对各种格式的点的支持头文件 #include <pcl/visualization/cloud_viewer.h>  //点云显示库函数#include <pcl/visualization/pcl_visualizer.h>//点云显示库函数using namespace std;int main(){pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // 创建点云(指针)  if (pcl::io::loadPLYFile<pcl::PointXYZ>("000.ply", *cloud) == -1) //* 读入PCD格式的文件,如果文件不存在,返回-1  {PCL_ERROR("Couldn't read file test_pcd.pcd \n"); //文件不存在时,返回错误,终止程序。  return (-1);}std::cout << "Loaded "<< cloud->width * cloud->height<< " data points from test_file.pcd with the following fields: "<< std::endl;pcl::visualization::PCLVisualizer viewer("cloud example");pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> source_cloud_color_handler(cloud, 255, 120, 80);viewer.addPointCloud(cloud, source_cloud_color_handler, "cloud example");//viewer.addCoordinateSystem(1.0, 0);viewer.setBackgroundColor(0.05, 0.05, 0.05, 0);viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "cloud example");while (!viewer.wasStopped()) {viewer.spinOnce();}system("pause");return 0;}