Ubuntu 配置安装PCL

之前一直在Mac下开发,现在入手Ubuntu,也借此学习一下Linux下的源码编译安装过程.

PCL简介

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。

具体步骤

1. 安装依赖项

apt-get update && \
apt-get install -y libflann-dev \
libvtk5-dev \
libqhull-dev

2. 下载源码

git clone https://github.com/PointCloudLibrary/pcl
cd pcl

3. 配置安装

cmake -DCMAKE_BUILD_TYPE=Release .
make -j 8 # job数量根据自身的CPU核数定
sudo make install

4. 安装目录

  • 通过apt安装的头文件(如vtk)在/usr/include里面
  • 通过apt安装的动态链接库(如vtk)在/usr/lib里面
  • 自己编译安装的头文件(如PCL)在/usr/local/include里面
  • 自己编译安装的动态链接库(如PCL)在/usr/local/lib里面

以上文件夹在写CMakeLists.txt使用find_package()命令都可以找到,这里列出来只是为了更加了解细节,或者有的代码补全工具会需要库的具体路径

测试

main.cpp

#include <pcl/common/common_headers.h>
#include <pcl/visualization/pcl_visualizer.h> boost::shared_ptr<pcl::visualization::PCLVisualizer> simpleVis(
pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud)
{
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(
new pcl::visualization::PCLVisualizer("3D Viewer")); viewer->setBackgroundColor(0, 0, 0);
viewer->addPointCloud<pcl::PointXYZ>(cloud, "sample cloud");
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "sample cloud");
viewer->addCoordinateSystem(1.0);
viewer->initCameraParameters();
return (viewer);
} int main(int argc, char **argv)
{
// 创建点云
pcl::PointCloud<pcl::PointXYZ>::Ptr basic_cloud_ptr(
new pcl::PointCloud<pcl::PointXYZ>); for (float z(-1.0); z <= 1.0; z += 0.05)
{
for (float angle(0.0); angle <= 360.0; angle += 5)
{
// 底面为椭圆
pcl::PointXYZ basic_point;
basic_point.x = 0.5 * cosf(pcl::deg2rad(angle));
basic_point.y = sinf(pcl::deg2rad(angle));
basic_point.z = z;
basic_cloud_ptr->points.push_back(basic_point);
}
} basic_cloud_ptr->width = (int)basic_cloud_ptr->points.size();
basic_cloud_ptr->height = 1; boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer;
viewer = simpleVis(basic_cloud_ptr);
while (!viewer->wasStopped())
{
viewer->spinOnce(100);
boost::this_thread::sleep(boost::posix_time::microseconds(100000));
}
return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(demo01) set(CMAKE_CXX_STANDARD 11) find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS}) add_executable(demo01 main.cpp)
target_link_libraries (demo01 ${PCL_LIBRARIES})

命令

cmake .
make
./demo01

运行结果

小结

之前配环境都是apt一键解决,在Mac上也是brew一下,没有从源码编译过,这次实验可以说更进一步了解了底层细节,学到很多.

Linux上开发还是挺舒服的~

Ubuntu 配置安装PCL的更多相关文章

  1. 一起玩"Docker"之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  2. 阿里云Ubuntu配置安装MQTT服务器

    先来说说mqtt协议: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程 ...

  3. PCL:Ubuntu下安装配置PCL

    一:安装PCL 依据官网介绍:http://www.pointclouds.org/downloads/linux.html Ubuntu We currently support all Ubunt ...

  4. Ubuntu下安装JDK以及相关配置

    1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...

  5. Ubuntu的安装与配置

    一.Ubuntu的安装与配置 Ubuntu 快速下载地址 1.安装VMwareTools 系统安装后,工具栏"虚拟机"-->"安装VMwareTools" ...

  6. ubuntu下安装配置OpenCV

    Cmake的安装 我用的是ubuntu-software自动下载安装的. Ubuntu 下安装 OpenCV 首先下载安装相关包,然后下载OpenCV 系统:ubuntu16.04 OpenCV:2. ...

  7. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  8. 【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)

    原文网址:http://my.oschina.net/HalZf/blog/347351 总要记录下过程,不然老是会忘记掉-真老了.-_-! 一.配置安装ubuntu 64位java环境: 1.下载l ...

  9. Ubuntu下安装和配置Apache2

    http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html 在Ubuntu中安装apache 安装指令:sudo apt- ...

随机推荐

  1. layui加载层

    layer.load(1, { shade: [0.5, '#000'], //0.5透明度的灰色背景 content: '注册中...', success: function (layero) { ...

  2. 机器学习 - 损失计算-softmax_cross_entropy_with_logits

    tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 第一个参数logits:就是神经网络最后一层的输出 第二个参数la ...

  3. 第五节:从源码的角度理解各种Result(ActionResult、JsonResult、JavaScriptResult等)

    一. 背景 提到MVC不得不说MVC中的各种Result,这些高度封装的xxxResult以及在xxxResult再度封装的xxx,大大提高了MVC框架的开发效率. 相信做过MVC开发的朋友都会用到过 ...

  4. ntp 服务:Server dropped: Strata too high

    1.通过ntpdate -d 服务端IP,显示Server dropped: Strata too high vi /etc/ntp.conf 在ntpd服务端的配置中添加 server 127.12 ...

  5. 安装tftp

    #!/bin/bash # tftp install # 20180711 # 仅测试过操作系统 ubuntu 16.04 download_url='http://img.fe.okjiaoyu.c ...

  6. 🍓vue & react 一些重要但没必要死记硬背的东西

  7. 【Java编程思想笔记】注解--元注解

    参考文章:(小白的小小白的白 )https://blog.csdn.net/weixin_42315600/article/details/80630669 https://www.cnblogs.c ...

  8. 菜鸟博客装饰分享CSS+HTML+js

    博客布局更改,各种百度,自己修改,搞成现在这样,有兴趣的朋友可以复制我下面的把自己博客覆盖了,然后在进行更改 不懂可加群问我:675678830 如果想开通打赏,用到js,需要在 下列中 博客侧边栏公 ...

  9. ARM 处理器:RISC与CISC 是什么?【转】

    转自:https://blog.csdn.net/willsun2017/article/details/83388990 完全看懂 ARM 处理器:RISC与CISC 是什么? 历史.架构一次看透 ...

  10. Docker安装MySQL数据库

    本文翻译自:MySQL Docker Containers:Understanding the basics 1.下载MySQL镜像 docker pull mysql:5.6 如此便可以下载最新的M ...