看pointnet论文的时候发现有点云的可视化,但里面的可视化好像是基于CAD做的,正好最近我在用c++处理一些点云数据,就想着怎么直接把点云显示出来,就找到了PCL库,与opencv类似,opencv是处理图像的库,pcl是处理点云的库,封装了很多实用的函数,以下是基于win10+vs2019环境下pcl环境的搭建。

pcl库的下载与安装

下载

我下载的vs版本是vs2019,pcl下载的当前最新的版本pcl1.11.0,正好与vs2019对应。
pcl链接: pcl-1.11.0.

下载两个文件:
PCL-1.11.0-AllInOne-msvc2019-win64.exe
pcl-1.11.0-pdb-msvc2019-win64.zip

安装

双击“PCL-1.9.0-AllInOne-msvc2017-win64.exe”进行安装,点击下一步,出现下图界面时,选择“Add PCL to the system PATH for all users”,自动把路径添加到系统环境变量中。

选择安装路径的时候默认C盘,我改到了D盘,其他的默认就行了。
安装到最后的时候会弹出安装OpenNI的提示,此时也会选择安装路径,默认是C盘。但此前安装已经在pcl的安装目录下的3rdParty文件夹中已经有了空的OpenNI2文件夹建议将OpenNI安装路径改到此文件夹下,即安装路径为“D:\programming\PCL 1.11.0\3rdParty\OpenNI2”

解压“pcl-1.11.0-pdb-msvc2019-win64.zip”,将解压得到的文件夹中的内容添加“…\PCL 1.11.0\bin”中

pcl库安装完成,接下来配置环境变量,在系统环境变量中,由于勾选了自动添加路径,可以看到以下两个路径已经添加了进来:
D:\programming\PCL 1.11.0\bin
D:\programming\PCL 1.11.0\3rdParty\VTK\bin
我又手动添加了一个:
D:\programming\PCL 1.11.0\3rdParty\OpenNI2\Redist
否则后面可能会报错“由于找不到OpenNI2.dll,无法继续执行代码。重新安装程序可能会解决此问题”。
配置完环境变量后,重启电脑即可生效。

vs2019中配置pcl1.11.0

在VS中新建一个空项目,编译环境改为X64,Release版本。

视图->其他窗口->属性管理器



vc++目录->包含目录 中添加以下7个目录:

直接复制时请注意版本和路径以及名称,建议手动添加

D:\programming\PCL 1.11.0\include\pcl-1.11
D:\programming\PCL 1.11.0\3rdParty\Boost\include\boost-1_73
D:\programming\PCL 1.11.0\3rdParty\Eigen\eigen3
D:\programming\PCL 1.11.0\3rdParty\FLANN\include
D:\programming\PCL 1.11.0\3rdParty\Qhull\include
D:\programming\PCL 1.11.0\3rdParty\VTK\include\vtk-8.2
D:\programming\PCL 1.11.0\3rdParty\OpenNI2\Include

vc++目录->库目录 中添加以下6个目录:

直接复制时请注意版本和路径以及名称,建议手动添加

D:\programming\PCL 1.11.0\lib
D:\programming\PCL 1.11.0\3rdParty\Boost\lib
D:\programming\PCL 1.11.0\3rdParty\FLANN\lib
D:\programming\PCL 1.11.0\3rdParty\Qhull\lib
D:\programming\PCL 1.11.0\3rdParty\VTK\lib
D:\programming\PCL 1.11.0\3rdParty\OpenNI2\Lib

C/C++—>预处理器—>预处理器定义

BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE

C/C++ ->所有选项->SDL检查 改为

上面这个是在属性页里改的,最好在项目属性里,也把SDL检查改为“否”,不加下面这一步有的时候会报错。
项目->属性->C/C++ ->所有选项->SDL检查

链接器—>输入—>附加的依赖项

PCL 1.11.0\3rdParty\VTK\libPCL 1.11.0\lib这两个文件夹下的lib文件的release版本添加到附加依赖项中


为了方便,通过批处理把文件夹中的文件名写入到一个txt中:

//win+r调出“运行”窗口并输出cmd
//(填自己的路径)
cd /d D:\programming\PCL 1.11.0\lib
dir /b *.lib *>0.txt

注意,这个0.txt中会把0.txt和一个pkgconfig文件夹也写进去,复制到附加依赖项之前,应该把这两个删掉,否则会报错


现在该txt中包含了release和debug两种版本的库,如下图,需要将release版本单独分离出来,对于相同功能的库,两个版本是挨着的,可以用程序把他们分别写到两个txt中。
分离程序:https://blog.csdn.net/weixin_41991128/article/details/83965051

使用程序分离后的release版本:将该txt内容复制到vs的附加依赖项中

使用程序分离后的debug版本,暂不使用。

//win+r调出“运行”窗口并输出cmd
//(填自己的路径)
cd /d D:\programming\PCL 1.11.0\3rdParty\VTK\lib
dir /b *.lib *>1.txt

同上,把1.txt和cmake删掉。

同上,该txt中也包含了release和debug两种版本的库,如下图,需要将release版本单独分离出来,对于相同功能的库,两个版本是挨着的,可以用程序把他们分别写到两个txt中。
分离程序:https://blog.csdn.net/weixin_41991128/article/details/83965051

使用程序分离后的release版本:将该txt内容复制到vs的附加依赖项中

使用程序分离后的debug版本,暂不使用。

配置完成。

测试pcl库是否安装成功

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int  main (int argc, char** argv)
{ pcl::PointCloud<pcl::PointXYZ> cloud;   // Fill in the cloud data  cloud.width    = 5;  cloud.height   = 1;  cloud.is_dense = false;  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);}  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);  std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << 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;  return (0);
}

输出下图(数字可能不同),则表示安装成功!

win10+vs2019+pcl1.11.0安装教程相关推荐

  1. 来自GPU的Hello World-基于Win10+VS2019+CUDA 11.0搭建CUDA编程环境

    序   CPU和GPU 当代计算机的两个核心,GPU计算与CPU计算的结合,使得原本的计算性能得到大幅度的提高,两者功能的互补性使得CPU+GPU的异构并行计算得到快速发展.为了支持使用CPU+GPU ...

  2. 【opencv安装和配置完整版教程】(win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置)

    [opencv安装和配置](win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置) 下载vs2019 opencv4.4.0.opencv_contri ...

  3. Visual C++6.0安装教程(win10版)及“应用程序无法正常启动(0x0150002)”解决办法

    Visual C++6.0安装教程(win10版)及"应用程序无法正常启动(0x0150002)"解决办法

  4. 神舟K550D三系统(win10、OSX、Ubuntu)安装教程

    神舟K550D三系统(win10.OSX.Ubuntu)安装教程 特别感谢:耐寒桃,本教程完全是借鉴他在贴吧里发的帖子的安装步骤,不过是由我总结并且实践之后,整理发到了知乎,我也是觉得这个教程非常的有 ...

  5. zabbix6.0安装教程(一):安装要求获取方式

    zabbix6.0安装教程(一):安装要求&获取方式 目录 一.zabbix6.0安装要求 1.硬件 1.1 内存和磁盘 1.2CPU 1.3其它硬件 1.4硬件资源配置参考 1.5受支持的平 ...

  6. 华为鸿蒙2.0系统电脑安装步骤,华为鸿蒙系统2.0怎么安装,鸿蒙系统2.0安装教程...

    华为鸿蒙系统2.0另有许多玩家都在询问,那么最新的安装教程是什么,同时若何获取资格,下面一起来看看详细的攻略内容. 华为鸿蒙系统2.0安装教程 点此进入申请华为鸿蒙2.0<<< 华为 ...

  7. 华为鸿蒙系统操作教程_华为鸿蒙系统2.0怎么安装 鸿蒙系统2.0安装教程[多图]

    华为鸿蒙系统2.0还有很多玩家都在询问,那么最新的安装教程是什么,同时如何获取资格,下面一起来看看具体的攻略内容. 华为鸿蒙系统2.0安装教程 华为正式发布了鸿蒙OS 2.0 手机版,目前仍旧处于测试 ...

  8. 晨枫U盘维护工具V2.0 安装教程

    晨枫U盘维护工具V2.0 安装教程 -- 珠海晨枫工作室 文 档 目 录 关于晨枫工作室 维护工具说明 启动盘介绍 软件界面预览 设置USB启动 声明与致谢 制作教程:HDD模式 | ZIP模式 | ...

  9. KeyShot Pro 9 v9.0 安装教程(含下载文件)

    KeyShot Pro 9 v9.0安装教程 安装包下载: 链接:https://pan.baidu.com/s/1de3LeCF3NJEEoMGZzyDmBg 提取码:n3ra 安装步骤: 1.解压 ...

最新文章

  1. jQuery |淡入淡出
  2. 此内容过于真实,引起强烈舒适
  3. React的生命周期(旧)
  4. 容器编排技术 -- Kubernetes Volume
  5. mysql插10万条数据_如何快速安全的插入千万条数据?
  6. 使用什么优化器_新的深度学习优化器Ranger:RAdam + LookAhead强强结合
  7. 解决eclipse模块导入后不识别为java项目
  8. NPAPI插件开发学习:NPAPI和NPRuntime的介绍
  9. mybatis中查询时间段内的数据(当只有一个时间字段时)
  10. 【图像去噪】基于matlab中值滤波图像去噪【含Matlab源码 421期】
  11. javascript 代码段整理
  12. 国外一些DICOM资源下载网址
  13. 1、曾经风光无限的jsp,为什么现在很少有人使用了?
  14. 电子技术基础(三)__第5章 之逻辑函数的卡诺图化简方法
  15. numpy.angle角度制的取值
  16. 苹果电脑系统更新中断怎么办_苹果发布健身公告中断按需锻炼空间
  17. 编译原理逆波兰式实验java_【实验三】—— 逆波兰式生成实验报告
  18. 《SolidWorks 2014中文版机械设计从入门到精通》——2.3 草图编辑
  19. 【安全头条】美国政府起诉 Kochava 出售敏感的地理位置数据
  20. JAVA星期健身计划:If语句和Switch语句

热门文章

  1. Zigbee协议栈单播收发字符字符串
  2. 利用zabbix api批量添加数百台监控主机
  3. 输出一个目录下的目录树
  4. 读《财富自由之路》总结
  5. 微信模板消息{{remark.DATA}}备注和头部小标题失效
  6. UCOSII系统时间管理
  7. 最新ESI大学排名出炉,384所中国内地高校上榜!
  8. 5-7月大更新!EasyOps®全平台34+新特性齐上线~
  9. gerrit 注册邮箱时出错
  10. mysql查看日语,检查有日文片假名的新闻