Instale o python-pcl no Ubuntu 18.04

Instale o python-pcl no Ubuntu 18.04

Requisitos : Ao instalar a biblioteca python-pcl, algumas funções do pcl podem ser usadas. Por exemplo, ao usar o open3d para ler um arquivo pcd, apenas a informação xyz é mantida e o valor da intensidade não pode ser obtido. Portanto, a função load em python-pcl é usada para ler.
Referência : Instale o python-pcl no Ubuntu 18.04 para resolver o ImportError: libpcl_keypoints.so.1.7

1. Ambiente atual

  • Ubuntu 18.04
  • python3.6

2. Registro de instalação

1. Processo de tentativa e erro

Em primeiro lugar, siga o processo no texto de referência, sem problemas. Mas durante o teste, ao importar pcl em python, apareceu um novo erro , alguém fez a mesma pergunta na pergunta do post do blog, e o erro foi o seguinte:

import pcl
undefined symbol: _ZN3pcl6search6KdTreeINS_12PointXYZRGBAENS_11KdTreeFLANNIS2_N5flann9L2_SimpleIfEEEEE13setInputCloudERKN5boost10shared_ptrIKNS_10PointCloudIS2_EEEERKNSA_IKSt6vectorIiSaIiEEEE

Adivinhe o motivo : a versão errada da biblioteca foi vinculada durante o uso, resultando em símbolos indefinidos.

2. Processo de instalação correto

2.1 Instalar biblioteca de nuvem de pontos pcl, Ubuntu18.04 instala pcl versão 1.8 por padrão

sudo apt-get install libpcl-dev pcl-tools

2.2 Use o método de código-fonte para instalar a versão VTK7.1

  • Instale o opengl primeiro
sudo apt-get install libgl1-mesa-dev #需要先安装opengl
sudo apt-get install libxt-dev
  • Faça o download do código-fonte do VTK7.1.1
    Faça login em https://vtk.org/download/ e faça o download do VTK-7.1.1.tar.gz em Plataforma: fonte em uma versão anterior (7.1.1).

  • Descompressão e compilação, instalação

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

Perceber: Após a conclusão da instalação, o local de instalação do VTK é o seguinte :

/usr/local/include/vtk-7.1  #包含目录,头文件所在 
/usr/local/lib   # 动态库目录

2.3 Use o código-fonte para instalar o python-pcl

  • Primeiro exclua o pcl instalado por tentativa e erro na primeira etapa
    esta etapa é importante, caso contrário, o erro de símbolos indefinidos ainda será relatado posteriormente. Por exemplo, eu uso o ambiente virtual de conda desta vez e excluo pcl
rm -rf /home/cui/anaconda3/envs/learning3d/lib/python3.6/site-packages/pcl/
  • Baixar python-pcl
git clone https://github.com/strawlab/python-pcl.git(原版,如果速度慢请使用下面的)
git clone https://gitee.com/lucy2020/python-pcl.git
  • Modifique a configuração
    No arquivo setup.py, modifique três lugares, que são os seguintes: Aqui, a versão do vtk e o diretório include e o diretório da biblioteca do vtk instalado acima são modificados.
修改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')
  • Compilar e instalar
python setup.py build_ext -i
python setup.py install

3. Resultados

Pode ser usado alegremente no ambiente python3.6pclAgora, como o pequeno exemplo a seguir, os dados da nuvem de pontos são convertidos em 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)

Acho que você gosta

Origin blog.csdn.net/weixin_36354875/article/details/124930858#comments_27569177
Recomendado
Clasificación