目录一、声明1.1一些pcd文件分享二、初步操作2.1安装pcl,OpenNI2:2.2环境变量:三、VisualStudio中的操作3.1包含目录:3.2库目录:3.3附加依赖项:3.4预处...
一、声明
个人目的是运用点云pcl,所以没有太深入,而且这仅仅只是我在安装过程中的一些经验总结,包括了一些的地方,以及个人觉得不错的,如果有什么错误(当然都是自己没有问题的)、不足还请多多包涵,不吝赐教(另外所有网盘的分享都不用去记或者copy提取码,自动填充的~)
1.1一些pcd文件分享
1、
2、
3、
网盘分享
链接: https://pan.baidu.com/s/1LTI1Szx5sRrArnBnOUQyRQ 提取码: j5pa
单纯后面示例代码需要的
文件链接: https://pan.baidu.com/s/1unNJU9wA6rXP1jZqoXGkVg 提取码: bydj
二、初步操作
安装Visual Studio 和PCL
2.1安装pcl,OpenNI2:
各种教程里面这都很好,就不赘述了,当然,这里也给出一个个人认为不错的
win10系统VS2019配置点云库PCL1.12.1的教程与经验总结
PCL 1.12.1需要下载的文件
链接: https://pan.baidu.com/s/1f5XxRnpywRvGahLQhykTgg 提取码: c6wk
2.2环境变量:
环境变量添加以下路径:
()
D:\PCL 1.12.1\bin
D:\PCL 1.12.1\3rdParty\VTK\bin
D:\PCL 1.12.1\3rdParty\FLANN\bin
D:\PCL 1.12.1\3rdParty\Qhull\bin
D:\PCL 1.12.1\3rdParty\Boost\lib
D:\PCL 1.12.1\3rdParty\OpenNI2\Tools
D:\PCL 1.12.1\3rdParty\OpenNI2\Redist
安装完pcl会有这几个
于是就有如下另外一种添加方法:
%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools
%OPENNI2_REDIST64%
%OPENNI2_LIB64%
%OPENNI2_INCLUDE64%
环境变量的修改教程里面也是有不同,本人也不是很懂┭┮﹏┭┮
第二种添加方法就是(一点个人见解,不排除错误的可能)
1、 替换成
2、 替换成__%PCL_ROOT%__
3、也就是用上面图片里面的替换
配置了系统环境变量后不会出现 的问题,并不需要在执行这一操作(值得注意的是,pcl的配置是可以永久配置的,但是永久配置的时候并没有以上在Visual Studio中配置环境的地方 )
PATH=$(PCL_ROOT)\bin;$(PCL_ROOT)\3rdParty\FLANN\bin;$(PCL_ROOT)\3rdParty\VTK\bin;$(PCL_ROOT)\Qhull\bin;$(PCL_ROOT)\3rdParty\OpenNI2\Tools;$(PATH)
三、Visual Studio中的操作
需要 永久配置 \color{RED}{永久配置} 永久配置的可以先看看一下两个链接(看一个也行,看个人喜好视频还是文字),然后再去进行配置:
视频教程
博客教程
其中的核心点就是在操作。
注意 \color{RED}{注意} 注意:可能在永久配置的时候没有,可以从下面下载,然后放到文件夹里面,路径在下面
C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0//该文件的C盘地址
想要在C盘里面找到需要有如下操作:
链接: https://pan.baidu.com/s/1Bq7XECsM7Kka4zN37bs7lw 提取码: 6ie7
3.1包含目录:
和后面的库目录相同的是,主要是看**D:\PCL 1.12.1(我的pcl安装目录)**后面的内容
如下是1.12.1版本的包含目录:
D:\PCL 1.12.1\3rdParty\Eigen\eigen3
D:\PCL 1.12.1\3rdParty\FLANN\include
D:\PCL 1.12.1\3rdParty\VTK\include\vtk-9.1
D:\PCL 1.12.1\3rdParty\Qhull\include
D:\PCL 1.12.1\include\pcl-1.12
D:\PCL 1.12.1\3rdParty\Boost\include\boost-1_78
D:\PCL 1.12.1\3rdParty\OpenNI2\Include
3.2 库目录:
如下是1.12.1版本的库目录:
D:\PCL 1.12.1\3rdParty\Boost\lib
D:\PCL 1.12.1\3rdParty\FLANN\lib
D:\PCL 1.12.1\3rdParty\OpenNI2\Lib
D:\PCL 1.12.1\3rdParty\Qhull\lib
D:\PCL 1.12.1\3rdParty\VTK\lib
D:\PCL 1.12.1\lib
3.3 附加依赖项:
,当然,各种教程里面都会有对应版本需要的依赖项,在此就不给出具体的了
VS中PCL库附加依赖项配置
当然上面最开始的链接里面也有自己获取的方法
3.4 预处理器定义:
这部分在最开始给出的教程链接里面没有,但是个人没有配置之前运行程序是走不通的,但是各种教程里面给出的预处理器定义也不尽相同(我也不懂其中奥妙┭┮﹏┭┮)
BOOST_USE_Windows_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
_CRT_SECURE_NO_WARNINGS
BOOST_ALL_NO_LIB
BOOST_USE_WINDOWS_H
NOMINMAX
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
3.5 SDL检查
SDL检查改为否
(单独做一个标题空着不太好看,哈哈)
3.6 测试代码
3.6.1 一个不需要点云文件的(官方给出的实例):
#include <IOStream>
#include <pcl/point_types.h>
#include <pcl/filters/passthrough.h>
int
main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);
// Fill in the cloud data
cloud->width = 5;
cloud->height = 1;
cloud->points.resize (cloud->width * cloud->height);
for (std::size_t i = 0; i < cloud->points.size (); ++i)
{
cloud->points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
}
std::cerr << "Cloud before filtering: " << std::endl;
for (std::size_t i = 0; i < cloud->points.size (); ++i)
std::cerr << " " << cloud->points[i].x << " "
<< cloud->points[i].y << " "
<< cloud->points[i].z << std::endl;
// Create the filtering object
pcl::PassThrough<pcl::PointXYZ> pass;
pass.setInputCloud (cloud);
pass.setFilterFieldName ("z");
pass.setFilterLimits (0.0, 1.0);
//pass.setFilterLimitsNegative (true);
pass.filter (*cloud_filtered);
std::cerr << "Cloud after filtering: " << std::endl;
for (std::size_t i = 0; i < cloud_filtered->points.size (); ++i)
std::cerr << " " << cloud_filtered->points[i].x << " "
<< cloud_filtered->points[i].y << " "
<< cloud_filtered->points[i].z << std::endl;
return (0);
}
运行结果:
3.6.2 一个需要点云文件的(直接将pcd文件放在工作目录下或许更方便):
#include<pcl/visualization/cloud_viewer.h>
#include<iostream>//标准C++库中的输入输出类相关头文件。
#include<pcl/io/io.h>
#include<pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
#include<pcl/io/ply_io.h>
#include<pcl/point_types.h> //PCL中支持的点类型头文件。
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
char strfilepath[256] = "rabbit.pcd";//将这个改成自己的pcd文件就可以
if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) //打开点云文件
{
std::cout << "error input!" << std::endl;
return -1;
}
std::cout << cloud->points.size() << std::endl;
pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象
viewer.showCloud(cloud);
system("pause");
return 0;
}
运行结果(三个窗口,其中一个如下):
四、最后
如果有不足或者错误(关于错误:以上的都是自己没有问题的,应该不会有什么错误),还请指正。
到此这篇关于Visual Studio 2022 配置 PCL 1.12.1 的经验总结分享的文章就介绍到这了,更多相关Visual Studio 2022 配置 PCL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
本文标题为:Visual Studio 2022 配置 PCL 1.12.1 的问题小结


基础教程推荐
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- 如何C++使用模板特化功能 2023-03-05
- 一文带你了解C++中的字符替换方法 2023-07-20
- C/C++编程中const的使用详解 2023-03-26
- C++中的atoi 函数简介 2023-01-05
- C++详细实现完整图书管理功能 2023-04-04
- 详解c# Emit技术 2023-03-25
- C语言 structural body结构体详解用法 2022-12-06
- C利用语言实现数据结构之队列 2022-11-22
- C语言基础全局变量与局部变量教程详解 2022-12-31