Ubuntu18.04安装PCL1.8.1、VTK7.1.1和python-pcl

写在前面:csdn上的大部分安装教程,采用自行编译的安装方式,需要安装一系列依赖库,但本人在编译成功后,使用的过程中一直报pcl_visualization相关的错误,尝试多次无果后,找到了有效的安装方法,

一、Ubuntu18.04安装PCL并测试

PCL官网给了安装方式,一行命令直接搞定,具体步骤如下:
1、更新
sudo apt-get update
2、安装VTK,想运行pcl的视觉模块,必须安装它。我安装的7.1.1版本:VTK官网下载压缩文件
下载完解压、安装、编译:创建build文件夹,在build目录下:
cmake ..
sudo make
sudo make install
3、安装pcl
sudo apt-get install libpcl-dev pcl-tools
4、安装OpenGL相关的包
sudo apt-get install freeglut3-dev
5、此时安装完成,可以看到安装的版本为pcl1.8.1
6、测试
示例:test_pcl.cpp

#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
using namespace std;
 
int main(int argc, char **argv) {//柱型点云测试
  cout << "Test PCL !" << endl;
  pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
  uint8_t r(255), g(15), b(15);
  for (float z(-1.0); z <= 1.0; z += 0.05) {//制作柱型点云集
  	for (float angle(0.0); angle <= 360.0; angle += 5.0) {
      pcl::PointXYZRGB point;
      point.x = cos (pcl::deg2rad(angle));
      point.y = sin (pcl::deg2rad(angle));
      point.z = z;
      uint32_t rgb = (static_cast<uint32_t>(r) << 16 | static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
      point.rgb = *reinterpret_cast<float*>(&rgb);
      point_cloud_ptr->points.push_back (point);
    }
    if (z < 0.0) {//颜色渐变
      r -= 12;
      g += 12;
    }
    else {
      g -= 12;
      b += 12;
    }
  }
  
  point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
  point_cloud_ptr->height = 1;
 
  pcl::visualization::CloudViewer viewer ("pcl—test测试");

  viewer.showCloud(point_cloud_ptr); 
  while (!viewer.wasStopped()){ };
  return 0;
}

建立配置文件:CMakeLists.txt,写入:

cmake_minimum_required(VERSION 2.6)
project(test_pcl)
find_package(PCL 1.8 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
add_executable(test_pcl test_pcl.cpp)
target_link_libraries (test_pcl ${PCL_LIBRARIES})
install(TARGETS test_pcl RUNTIME DESTINATION bin)

测试结果:
在这里插入图片描述

二、安装python-pcl

1、安装Anaconda,便于环境管理

bash Anaconda3-2021.05-Linux-x86_64.sh

2、修改profile文件

sudo vi /etc/profile

在文件的末尾加上anaconda环境:

#Anaconda
export PATH=$PATH:/home/software/anaconda3/bin

保存:

source /etc/profile

3、创建环境
conda create -n name python=3.8
也可以直接将已有的环境直接拷贝到/anaconda3/envs文件夹中,也能直接使用,注意将/anaconda3/envs/crfnet/bin文件中pythonpython3权限改成可执行的,否则直接激活这个环境之后,python仍然用的是系统的版本。
4、安装pcl

git clone https://github.com/strawlab/python-pcl.git
cd python-pcl

修改setup.py,将https://github.com/strawlab/python-pcl/blob/1d83d2d7ce9ce2c22ff5855249459bfc22025000/setup.py#L729这几行 (安装的 pcl 版本为1.8,所以需要修改 pcl1.8版本相应的if分支)。

elif pcl_version == '-1.8':
        # pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
        vtk_version = '7.0'
        # pcl 1.8.1?
        # vtk_version = '8.0'
        vtk_include_dir = os.path.join('/usr/include/vtk-' + vtk_version)
        vtk_library_dir = os.path.join('/usr/lib')

修改为:

    elif pcl_version == '-1.8':
        # pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
        vtk_version = '7.1' #改成7.1,安装的vtk版本为7.1
        # pcl 1.8.1?
        # vtk_version = '8.0'
        # 改下边这两个路径
        vtk_include_dir = os.path.join('/usr/local/include/vtk-' + vtk_version)
        vtk_library_dir = os.path.join('/usr/local/lib')

然后开始编译:

python setup.py build_ext -i
python setup.py install
sudo apt-get install pcl-tools
  • 2
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值