赞
踩
准备工作:
1.PCL下载包(此教程使用PCL1.11.0)
3.visual studio(此教程使用vs2019)
PCL下载:
1、找到自己适合的PCL版本,我选择的是PCL1.11.0。
1.1 Github下载:Releases · PointCloudLibrary/pcl · GitHub
1.2 百度网盘:https://pan.baidu.com/s/1700r8P8WNjrEQwYrD7tQ_Q?pwd=1111
找到自己想要的版本,下载AlllnOne即可,下载好之后双击打开进行安装。
安装的时候,选择Add PCL to the system PATH for all users,这样它就会在安装过程中将环境变量写入电脑。然后点击下一步,选择安装路径,之后就一路next就可以了。
安装完毕之后去系统环境变量中检查是否配置上了环境变量,此电脑--->右键属性--->高级系统设置--->环境变量--->在系统变量中的Path双击打开。
环境变量如下(如果没有自动配置完成,可以自己进行添加):
注意:可能在PCL 1.11.0\3rdParty文件夹下找不到OpenNI2这个文件夹,那样一般就在C盘的Program File下或者Program File(x86)下。可以自己去找一下,然后拷贝到PCL 1.11.0\3rdParty文件夹下,然后再填写环境变量即可。
至此,环境变量配置完毕!
接下来配置VS2019中的环境:
首先,要进行生成release或者debug下的lib库名,用于添加到链接器中。 分别在PCL1.11.0\3rdParty\OpenNI2\Lib; PCL1.11.0\3rdParty\VTK\lib;PCL1.11.0\lib文件夹下创建一个txt文件,如果使用release版本,txt文件中就写dir /b *.lib >release.txt,如果使用debug版本,txt文件中就写dir /b *.lib >debug.txt,然后改成bat文件,双击获得一个release.txt或者debug.txt文件,这样就可以把当前目录所有的lib文件名都写在txt文档中了,否则要一个一个输入进去,非常的麻烦!!!
接下来打开解决方案资源管理器的属性页,解决方案资源管理器--->右键属性。
打开VC++页面,进行如下设置:
设置完毕之后,接着打开链接器的属性页,将刚才bat文件生成的lib文件名字全部都复制到附加依赖项之中,release项目就复制release的lib,debug项目就复制debug的lib。
这样pcl在vs中的环境也配好了。接下来就可以进行测试了(下附测试代码)!
下方代码只需修改pcl::io::loadPCDFile<pcl::PointXYZ>("test.pcd", *cloud)中test.pcd,改为自己的pcd文件路径即可。
- #include <iostream>
- #include <pcl/io/pcd_io.h>
- #include <pcl/point_types.h>
- #include <pcl/visualization/pcl_visualizer.h>
-
- int main(int argc, char** argv)
- {
- // 创建点云对象
- pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
-
- // 读取PCD文件
- if (pcl::io::loadPCDFile<pcl::PointXYZ>("test.pcd", *cloud) == -1)
- {
- std::cout << "Couldn't read file test.pcd" << std::endl;
- return (-1);
- }
-
- // 创建可视化对象
- pcl::visualization::PCLVisualizer viewer("3D Viewer");
- viewer.setBackgroundColor(0, 0, 0); // 设置背景为黑色
- viewer.addPointCloud<pcl::PointXYZ>(cloud, "sample cloud");
- viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud");
- viewer.addCoordinateSystem(1.0);
- viewer.initCameraParameters();
-
- // 开始可视化
- while (!viewer.wasStopped())
- {
- viewer.spinOnce(100);
- }
-
- return 0;
- }
以此笔记!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。