PCL点云库的使用02:PCL1.6.0在Visual Studio 2010中的安装与配置

目录

1 安装文件下载

2 安装

2.1 PCL的安装

2.2 pdb文件拷贝

2.3 配置属性表

3 安装过程遇到的错误及处理方案

3.1 错误    32    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 

3.2 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 

3.3 lib或*.h文件错误

4 pcd文件概述与示例代码

4.1 pcd文件

4.2 输出点云坐标示例程序

4.3 点云可视化的例子

6 参考资料


1 安装文件下载

建议无论是32位还是64位操作系统,都下载和使用32位版本

下载PCL1.6.0的pdb文件和VS2010平台的安装文件,如下图:

 

2 安装

2.1 PCL的安装

直接点击PCL-1.6.0-AllInOne-msvc2010-win32.exe,一路默认安装即可

 

2.2 pdb文件拷贝

将下载的压缩包

拷贝到***\PCL 1.6.0\bin【也就是你刚才设置的安装路径的bin目录下】

2.3 配置属性表

每次新建工程时,不需要在重复配置,只需将建立完成的属性表添加到自己的工程当中即可

【视图】--> 【其它窗口】 --> 【属性管理器】

添加新的属性表

配置【包含目录】:

 

配置【库目录】

附加依赖项

 

opengl32.lib
pcl_kdtree_debug.lib
pcl_io_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_apps_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_visualization_debug.lib
pcl_common_debug.lib
flann_cpp_s-gd.lib
libboost_system-vc100-mt-gd-1_47.lib
libboost_filesystem-vc100-mt-gd-1_47.lib
libboost_thread-vc100-mt-gd-1_47.lib
libboost_date_time-vc100-mt-gd-1_47.lib
libboost_iostreams-vc100-mt-gd-1_47.lib
vtkalglib-gd.lib
vtkCharts-gd.lib
vtkCommon-gd.lib
vtkDICOMParser-gd.lib
vtkexoIIc-gd.lib
vtkexpat-gd.lib
vtkFiltering-gd.lib
vtkfreetype-gd.lib
vtkftgl-gd.lib
vtkGenericFiltering-gd.lib
vtkGeovis-gd.lib
vtkGraphics-gd.lib
vtkhdf5-gd.lib
vtkHybrid-gd.lib
vtkImaging-gd.lib
vtkInfovis-gd.lib
vtkIO-gd.lib
vtkjpeg-gd.lib
vtklibxml2-gd.lib
vtkmetaio-gd.lib
vtkNetCDF-gd.lib
vtkNetCDF_cxx-gd.lib
vtkpng-gd.lib
vtkproj4-gd.lib
vtkRendering-gd.lib
vtksqlite-gd.lib
vtksys-gd.lib
vtktiff-gd.lib
vtkverdict-gd.lib
vtkViews-gd.lib
vtkVolumeRendering-gd.lib
vtkWidgets-gd.lib
vtkzlib-gd.lib

3 安装过程遇到的错误及处理方案

3.1 错误    32    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 

错误描述:

解决方案:

3.2 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 

错误描述:

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失    d:\program files\pcl 1.6.0\include\pcl-1.6\pcl\point_traits.h

解决方案:

使用UE打开对应的*.h文件,修改其编码格式为gb2312 或者unicode即可

3.3 lib或*.h文件错误

注意核实提示的*.h文件所在路径与配置路径是否一致,一般是配置不到位引起的

缺少lib文件,核查配置的库目录下是否有指定的lib文件,很有可能是未指定到最底层的目录导致的

4 pcd文件概述与示例代码

点云的几种格式:

数据格式描述
PLY多边形文件格式
STL模型文件格式,主要用在CAD和CAM中
OBJ从几何学上定义的文件格式
X3D符合ISO标准,基于XML的3D计算机图形格式数据

4.1 pcd文件

字段描述 
VERSION指定pcd文件的版本信息 
FIELDS指定一个点拥有的维度和字段名字
SIZE每一维度的字符大小
TYPE每一维度的数据类型

COUNT默认设置为1 
WIDTH无序点云的行数/有序点云一行的点数
HEIGHT无序点云默认为1/有序点云数据集的行数
VIEWPOINT指定数据集中点云的视点,默认为0 0 0 1 0 0 0
POINTS点的总数目 
DATA存储点云的数据类型(ascii或二进制) 

要点提示:

  • 标准的pcd文件必须按照上述顺序定义
  • 各文件头部分以换行符隔开

4.2 输出点云坐标示例程序

 

// pclEx.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <pcl/io/file_io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

int _tmain(int argc, _TCHAR* argv[])
{
	pcl::PointCloud<pcl::PointXYZ> cloud;
	int ret = pcl::io::loadPCDFile("data.pcd", cloud);*/
    //输出读入的点云坐标信息
	for(size_t i = 0; i < cloud.size(); i++)
	{
		std::cout << cloud[i].x << "\t" << cloud[i].y << "\t" << cloud[i].z << std::endl;
	}
	
	return 0;
}

4.3 点云可视化的例子

// pclEx.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <pcl/io/file_io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

int _tmain(int argc, _TCHAR* argv[])
{
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
	int ret = pcl::io::loadPCDFile("data.pcd", *cloud1);
	pcl::visualization::CloudViewer viewer("Cloud Viewer");
	viewer.showCloud(cloud1);
	system("pause");
	for(pcl::PointCloud<pcl::PointXYZ>::iterator it = cloud1->begin(); it != cloud1->end(); it++)
	{
		std::cout << it->x << "\t" << it->y << "\t" << it->z << std::endl;
	}
	return 0;
}

 

注:视图经过放大缩小即可得到如下图结果

6 参考资料

01 名称空间及其说明

02 PCL学习笔记(1):pcl1.6.0+vs2010环境配置以及第一个pcl程序

更多精彩,欢迎关注个人微信公众账号【学而力行】

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小薛引路

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值