Ubuntu16.04下PCL点云库的安装及使用demo
必备组件安装
PCL点云库安装
sudo apt install libpcl-dev
注意:如果在Ubuntu14.04下安装的是libpcl-all,一般情况下在Ubuntu的软件仓库里首选带dev后缀的和什么后缀都不带的库版本。这里安装的是PCL1.7版本
最终安装到的路径为:
- 头文件目录:
/usr/include
- 库文件目录:
/usr/lib/x86_64-linux-gnu
所以实际上这个库安装后,只有一些.h
文件和在库文件目录中的.so
文件。
cmake中调用方法
CMakeLists.txt中:
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
并在最后的target_link_libraries()命令中加入${PCL_LIBRARIES}
注意:只要find_package能够找到库,那一定会产生如下几个变量:
PCL_INCLUDE_DIRS
:存储的是PCL库所有的头文件所在的目录PCL_LIBRARY_DIRS
:存储的是PCL库所有的库文件(共享库或者静态库或者源文件)所在的目录PCL_LIBRARIES
:存储的是PCL库每个库文件(即共享库或者静态库或者源文件)的详细位置(包括文件名)PCL_FOUND
:存储是否找到了这个PCK库PCL_DEFINITIONS
:
注意:include_directories作用是添加一个新的目录到cmake的头文件搜索目录里。
link_directories作用是添加一个新的目录到cmake的库文件搜索目录里。然而很多库都喜欢把库文件放在/usr/lib/x86_64-linux-gnu
这个文件夹下
VTK库安装
sudo apt install libvtk6-dev libvtk6.2
VTK库在cmake中的使用参见pcl库的使用,几乎一模一样。
注意:由于VTK库与PCL库是配套的,但是大于等于7.1的VTK库会与PCK库不兼容,其体现在InsertTupleValue
等找不到。故最好安装小于7.1的版本。具体请参见VTK版本不兼容现象
另外注意在应用商店里python-vtk包和libpcl-dev包先后安装的时候会相互卸载没用到的组件,导致一个安装了,同时另一个被卸载了,请务必注意。
Eigen库的安装
Eigen库的安装,Eigen库是一个只有头文件没有库文件的库,所以使用的时候只需要include_directories
导入头文件目录即可。
Boost库的安装
与上述类似,但是注意的是在Ubuntu16.04中,cmake不能自动找到Boost,需要先设置BOOST_ROOT
示例demo
CMakeLists.txt
其cmakelists.txt文件如下:
cmake_minimum_required(VERSION 3.9)
project(pcldemo)
set(CMAKE_CXX_STANDARD 17)find_package(Eigen3 REQUIRED)
include_directories("/usr/include/eigen3")#很奇怪的是Eigen只有头文件没有库文件,所以只能通过这种方式导入即可使用Eigen# pcl
find_package( PCL REQUIRED)
include_directories( ${PCL_INCLUDE_DIRS} )
link_directories(${PCL_LIBRARY_DIRS})#Boost
set(BOOST_ROOT "/usr/local/boost") #这个是我自己加的,因为原来Findboost.cmake提示找不到boost库
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})#VTK
find_package(VTK REQUIRED)
include_directories(${VTK_INCLUDE_DIRS})
link_directories(${VTK_LIBRARY_DIRS})add_executable(pcldemo main.cpp)
target_link_libraries(pcldemo"/usr/lib/x86_64-linux-gnu/libpcl_visualization.so.1.7.2"libboost_system.so libboost_filesystem.so${VTK_LIBRARIES}
)
尚待解决的问题:
最棒target_link_libraries的时候,visualization.so必须要用全路径,直接写名字却不行,尚待研究。其次,对于PCL库,直接在target_link_libraries中用${PCL_LIBRARIES}的调用却不行,尚待研究。
main函数
#include <iostream>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/pcd_io.h>int main(int argc, char* argv[]){pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);pcl::visualization::CloudViewer viewer("Simple Cloud Viewer");viewer.showCloud(cloud);while (!viewer.wasStopped()){}
}
注意,网上有些demo是错误的,就在于对cloud的定义上,少了一个ConstPtr子类,我就为这个问题折腾了好几天,果然不能笃信权威啊。
Ubuntu16.04下PCL点云库的安装及使用demo相关推荐
- Ubuntu16.04 下python的matplotlib库加入中文字体(微软雅黑)
Ubuntu16.04 下python的matplotlib库加入中文字体 一.首先安装微软雅黑字体 1.下载或者拷贝微软雅黑字体 2.将待安装的字体复制到Ubuntu下面的字体位置`/usr/sha ...
- Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 16.04.1 LTS ...
- Ubuntu16.04下caffe CPU版的详细安装步骤
一.caffe简介 Caffe,是一个兼具表达性.速度和思维模块化的深度学习框架. 由伯克利人工智能研究小组和伯克利视觉和学习中心开发. 虽然其内核是用C++编写的,但Caffe有Python和Mat ...
- Ubuntu16.04下Hadoop 2.7.3的安装与配置
一.JAVA环境搭建 (1)下载JDK并解压(当前操作系统为Ubuntu16.04,jdk版本为jdk-8u111-linux-x64.tar.gz) 新建/usr/java目录,切换到jdk-8u1 ...
- ubuntu16.04下NVIDIA GTX965M显卡驱动PPA安装
这两天在笔记本(神舟Z7M-SL7D2)下安装ubuntu16.04, 执行ubuntu安装程序时,经常会在最开始选择语言的界面时鼠标键盘无响应,死机概率30%. 安装完成后,点重启按钮也会导致系统无 ...
- Ubuntu16.04下 DeepMind Lab的配置与安装
部分参考博客: https://blog.csdn.net/qq_20989743/article/details/79650145 摸索了一天,这就是个platform,然后提供了任务场景,需要自己 ...
- ubuntu16.04安装python.h_ubuntu16.04 下基于 Python 的 OpenCV 的安装
ubuntu16.04 下基于 Python 的 OpenCV 的安装 这几天一直在学习基于 Python 的 OpenCV , 开发环境是在 Ubuntu16.04 下, 学习的心得就是基于 Pyt ...
- 编译安装PCL点云库,Kinect2驱动,乐视Astra相机驱动
编译安装PCL点云库 安装方法一 3d点云安装 apt-cache cearch pcl 安装 sudo apt install 上面查出来的 opencv不建议用以上方法因为需要 安装 opencv ...
- vscode linux新建c语言,Ubuntu16.04下配置VScode的C/C++开发环境
1. Vscode安装 Visual studio code是微软发布的一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器.第一种 ...
- ubuntu pcl 点云库使用
pcl 点云库使用(cmakeList.xtx) cmake_minimum_required(VERSION 2.6) project(pcl_test) find_package(PCL 1. ...
最新文章
- 解决Eclipse 启动后总是Building WorkSpace(sleeping)
- li在ie6 、ie7里莫名其妙的出现几px的margin
- 计算机二级c语言109套,2016年9月计算机二级C语言操作题109套讲述.docx
- 如何改善mysql数据装载操作效率的方法_详述如何提高MySQL中数据装载效率
- python382怎么用_用python做UDP连接
- 能上架App的GooglePlay开发者账号获取流程
- 转:6.1海量数据处理
- 网站左角悬浮图双十一抢红包活动代码
- 渗透测试入门23之OSCP渗透测试认证经验分享
- Oracle宣布在云上正式上线 自治事务处理数据库
- docker容器下mysql更改WordPress的site address和home(URL)
- go语言打印errors类型变量
- 关于NSOperation的几个常见问题
- FFmpeg源代码简单分析:av_write_trailer()
- android登录操作代码,Android Studio实现第三方QQ登录操作代码
- 2015Mac版飞秋无法接受文件夹!!!
- android u盘加密代码,怎么用安卓手机给u盘加密
- 攻城狮算保险--理财型,还是消费型?
- 小程序通过background-image设置背景图片
- 公司小程序,公众号申请支付流程
热门文章
- js里用append()和appendChild有什么区别?
- python 安装第三方库,超时报错--Read timed out.
- 梦断代码读后感(二)
- C++ 关于“堆对象和栈对象”
- 要开始Ubuntu之旅拉~
- 用ASP.NET开发胖客户端应用程序
- 如何解决第三方JavaScript引入工程后报错
- SSMS 18.0运行时闪退
- 解决Windows下Redis出现“MISCONF Redis is configured to save RDB snapshots”的错误
- 19. Treat class design as type design