(注:资料来源:D:\项目资料_YC\激光扫描建模_长沙项目_2016→2019\2017&2018_文档资料_技术总结YC\201703→_YC_激光建模技术总结_201703及以后.docx)
目录
5.1 在Visual Studio2010中,新建一个.cpp文件
报错1:error C2059: 语法错误:“::” error C2589: “(”:“::”右边的非法标记
报错2:32位PCL应在Debug 32模式下进行编译;64位PCL应在Debug x64模式下进行编译。否则会报错。
报错3:error C2661: “pcl::PointCloud::operator new”: 没有重载函数接受 3 个参数
报错5:“result”: 符号既不是类 模板 也不是函数 模板
A.PCL的初步安装及测试
本节是对开源点云库PCL的安装、调试过程的总结,内容涵盖以下方面:①安装:VS2010的安装、PCL的安装、Cmake的安装;②配置:环境变量path的配置、Cmake的应用、VS2010的配置;③测试:新建一个工程,测试PCL的安装是否成功。
0、安装平台
本次安装的平台如下:
操作系统:Win7 64位操作系统
编程环境:Visual Studio 2010
PCL版本:1.6.0
1、VS2010的安装
安装包:移动硬盘里有备份(20170528)。安装包如下图所示:
安装步骤:
安装过程中可能会出现的报错:
对此问题可参考以下网址:
网址1:http://jingyan.baidu.com/article/64d05a0278f40dde55f73bf0.html
网址2:http://www.yishimei.cn/network/385.html
另,为以防万一,安装VS2010是最好关闭杀毒软件。
Visual Studio2010具体安装步骤可参考以下网址:http://jingyan.baidu.com/article/a65957f49714ad24e77f9b69.html
2、PCL的安装
备注:如果以前安装过pcl,想再安装其他版本的pcl,则可以直接安装,无需卸载之前的版本。只要路径不同就行。然后把VS里pcl相关的配置内容清除,同时也别忘了更改环境变量path中的配置。
备注:本次安装测试笔者安装的是PCL1.6.0、64位。在后续的项目使用中由于实际需求,换成了PCL1.6.0、32位的了。
PCL1.6.0、64位的安装包:移动硬盘里有备份(20170528)。安装包如下图所示:(网页下载路径:http://pointclouds.org/downloads/windows.html)
安装步骤:
双击以下应用程序:
在安装的过程中,安装位置(路径)可以自定义,其余的均默认。
【注意:安装路径不要过长,否则后续程序编译会出错。】
安装过程中会跳出如下安装提示框,直接点击Install即可。
之后跳出如下界面,点击Finish
之后跳出如下界面,直接点击Install
之后跳出如下界面,点击Finish
之后点击“完成”
安装完毕之后,在PCL 1.6.0的安装文件夹里,会有如下文件:
将PCL安装包中下图所示的压缩包解压,
将文件夹中的.pdb文件全部复制到PCL 1.6.0的安装文件夹的bin文件夹里。(笔者的路径:D:\PCL 1.6.0\anzhaungwenjianjia\PCL 1.6.0\bin)如下图所示:
至此已完成PCL 1.6.0的安装。
3、Cmake的安装
安装包:移动硬盘里有备份(20170528)。安装包如下图所示:
安装步骤:
点击Next
点击Next
点击Next
选择安装路径,之后点击Next
点击Install
点击Finish
4、环境变量path的配置
计算机右键,属性→选择左上方的 高级系统设置→跳出如下图所示的界面:
点击右下方的环境变量按钮,跳出如下图所示的界面:
在下面的“系统变量(S)”框里选择Path,点击“编辑”按钮,
弹出编辑系统变量界面:
在该界面中,对“变量值”进行修改,为方便起见,建议将“变量值”全部复制到txt文档中进行修改,修改完之后再粘回去。
修改注意事项:①英文下输入;②路径之间用英文分号隔开;③最后一个路径之后不加分号;④添加完Path之后,有可能在重启电脑之后才生效。
在现有的“变量值”后面添加:(注意:要根据自己的实际安装路径确定添加的内容,不能直接复制下面的内容)
;D:\Cmake-3.8.1\anzhuangwenjianjia\bin;D:\PCL 1.6.0\bin;D:\PCL 1.6.0\3rdParty\FLANN\bin;D:\PCL 1.6.0\3rdParty\VTK\bin;D:\PCL 1.6.0\3rdParty\Qhull\bin
5、采用Cmake生成测试工程
5.1 在Visual Studio2010中,新建一个.cpp文件
(关于visual studio MFC的最基本使用,可参考以下教材:http://www.jizhuomi.com/software/257.html#cmt12136)
编辑一段简单的代码cloud_viewer_PointXYZ.cpp,将其在新建的工程中粘贴过去,保存。
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
intuser_data;
void viewerOneOff (pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor (1.0, 0.5, 1.0);
pcl::PointXYZ o;
o.x = 1.0;
o.y = 0;
o.z = 0;
viewer.addSphere (o, 0.25, "sphere", 0);
std::cout<< "i only run once" <<std::endl;
}//写入球体形状的程序
void viewerPsycho (pcl::visualization::PCLVisualizer& viewer)
{
static unsigned count = 0;
std::stringstreamss;
ss<< "Once per viewer loop: " << count++;
viewer.removeShape ("text", 0);
viewer.addText (ss.str(), 200, 300, "text", 0);//test窗口的位置
//FIXME: possible race condition here:
user_data++;
}
int main ()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); //modified
//blocks until the cloud is actually rendered
if(pcl::io::loadPCDFile<pcl::PointXYZ>("my_point_cloud.pcd",*cloud)==-1)//*打开含有点云图案的pcd文件
{
PCL_ERROR("Couldn't read file my_point_cloud.pcd\n");
return(-1);
}
pcl::visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloud);//显示点云
//use the following functions to get access to the underlying more advanced/powerful
//PCLVisualizer
//This will only get called once
viewer.runO