目录
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程序
更多精彩,欢迎关注个人微信公众账号【学而力行】
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2573.html