1. 主页 > vs安装问题 > VS2010安装问题 >

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程序

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

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2573.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息