Ubuntu18.04安装python-pcl

Ubuntu18.04安装python-pcl

需求: 通过安装python-pcl库, 可以使用pcl中的某些函数。例如, 使用open3d 读取pcd文件时,只保留xyz信息,无法获取强度值。故采用python-pcl中的函数 load 进行读取。
参考Ubuntu 18.04安装python-pcl 解决ImportError: libpcl_keypoints.so.1.7问题

一. 当前环境

  • Ubuntu18.04
  • python3.6

二. 安装记录

1. 试错过程

首先按照参考文的里面的过程,一路顺利。但是测试时,在python中import pcl时,出现新的错误,在博文问题中也有人问到相同的问题,错误如下:

import pcl
undefined symbol: _ZN3pcl6search6KdTreeINS_12PointXYZRGBAENS_11KdTreeFLANNIS2_N5flann9L2_SimpleIfEEEEE13setInputCloudERKN5boost10shared_ptrIKNS_10PointCloudIS2_EEEERKNSA_IKSt6vectorIiSaIiEEEE

猜测原因:库在使用过程中链接了错误的版本,导致出现了未定义的符号。

2. 正确安装流程

2.1 安装pcl点云库,Ubuntu18.04默认安装1.8版本的pcl
sudo apt-get install libpcl-dev pcl-tools
2.2 使用源码方式,安装VTK7.1版本
  • 先安装opengl
sudo apt-get install libgl1-mesa-dev #需要先安装opengl
sudo apt-get install libxt-dev
  • 下载VTK7.1.1源码
    登录 https://vtk.org/download/ ,下载 An Earlier Release (7.1.1)中,Platform: source 下面的VTK-7.1.1.tar.gz。

  • 解压与编译、安装

tar -xf VTK-7.1.1.tar.gz
mkdir build
cd build && cmake ..
make -j8
sudo make install

注意安装完成后,VTK安装位置如下

/usr/local/include/vtk-7.1  #包含目录,头文件所在 
/usr/local/lib   # 动态库目录
2.3 使用源码方式,安装python-pcl
  • 先删除第一步试错安装的pcl
    这一步骤很重要,否则后期依旧会报未定义符号的错误,例如我这次使用conda的虚拟环境,删除pcl
rm -rf /home/cui/anaconda3/envs/learning3d/lib/python3.6/site-packages/pcl/
  • 下载python-pcl
git clone https://github.com/strawlab/python-pcl.git(原版,如果速度慢请使用下面的)
git clone https://gitee.com/lucy2020/python-pcl.git
  • 修改配置
    在setup.py文件中,修改三处,分别如下,这里修改了vtk版本与上面安装vtk的包含目录与库目录。
修改726行为:vtk_version = '7.1'
修改729行为:vtk_include_dir = os.path.join('/usr/local/include/vtk-' + vtk_version)
修改730行为:vtk_library_dir = os.path.join('/usr/local/lib')
  • 编译与安装
python setup.py build_ext -i
python setup.py install

三. 结果

可以正常在python3.6环境中愉快的使用pcl了,如下面的小例子,点云数据转换为numpy:

import numpy as np
import pcl
p = pcl.PointCloud(10)  # "empty" point cloud
a = np.asarray(p)       # NumPy view on the cloud
a[:] = 0                # fill with zeros
print(p[3])             # prints (0.0, 0.0, 0.0)
a[:, 0] = 1             # set x coordinates to 1
print(p[3])             # prints (1.0, 0.0, 0.0)
  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 36
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Darchan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值