文章目录

  • 前言
  • 三、测试

 


前言

在学习计算机视觉时,学到点云库,需要用到可视化点云工具,在配置python-pcl过程中踩了“ImportError: DLL load failed: 找不到指定的模块”等多个坑,这里整理一个配置流程,希望可以帮助你避坑。 文章python使用版本是3.6版本。


一、下载需要的安装包

1.python-pcl源码:https:///strawlab/python-pcl
2.PCL1.9.1的All-In-One Installer :https:///PointCloudLibrary/pcl/releases/
3.Windows Gtk:http://www.tarnyko.net/dl/gtk.htm

二、安装

1.安装与调整包

1.双击下载好的ALL-In-One Installer进行安装,安装过程会弹出安装OpenNI这个工具,一样安装就行。

2.解压下载好的windows Gtk,将bin目录下所有文件复制到python-pcl源码目录下的pkg-config目录下,同时,在pkg-config目录下,找到脚本InstallWindowsGTKPlus.bat,双击运行,该脚本会下载必须的内容,下载完成后会多出这两个文件夹。

python Clipboard函数_python

2.安装必要的python库

1.cython

2.numpy

python-pcl安装前要求要有cython和numpy这两个库,版本需要跟下载的python-pcl源码相对应,打开python-pc源码目录下的setup.py 可以看到对cython和numpy的版本要求:

python Clipboard函数_源码包_02


在cmd中pip install 下载对应版本就行

我是用的最新版本numpy跟0.26.0的cython

安装指定版本命令为: pip install cythnotallow==0.26.0

可能会出现Microsoft Visual C++ xxx is required导致下载失败,这是因为需要下载visual studio 2019,点击cmd提示的连接进行下载即可,下载后就能正常下载cython。

3.安装python的pcl源码包

在python-pcl源码目录下打开cmd
前后输入:
python setup.py build_ext -i
python setup.py install

4.复制OpenNI2.dll

打开步骤1安装OpenNI2时的路径,在…\OpenNI2\Samples\Bin下找到OpenNI2.dll,将它复制到你的python lib\site-packages\ 下的pcl中

python Clipboard函数_python Clipboard函数_03

python Clipboard函数_python Clipboard函数_04

5.配置环境变量

要保证系统变量有以下路径:

python Clipboard函数_源码包_05


然后编辑Path变量,在path中相对你的安装路径加入以下内容:

python Clipboard函数_python_06

6.安装python的pcl库

pip install pclpy

至此,pcl配置完毕。


三、测试

最后import pcl 不再报错

python Clipboard函数_github_07


测试代码:

import numpy as np
import pcl
p = pcl.PointCloud(10) 
a = np.asarray(p)       
a[:] = 0                
print(p[3])           
a[:, 0] = 1            
print(p[3])

以上就是所有内容,本文仅仅介绍了能够顺利配置python-pcl的过程,有了点云处理工具,将支持我们学习三维模型。

补充:
1.运行显示模型时,可能会弹出如下错误:

//报错信息
Generic Warning: In c:\vtk-8.1.2\rendering\core\vtkrenderwindow.cxx, line 1480
vtkRenderWindow::GetPainterDeviceAdapter was deprecated for VTK 8.1 and will be removed in a future version.

Generic Warning: In c:\vtk-8.1.2\rendering\core\vtkmapper.cxx, line 233
vtkMapper::GetGlobalImmediateModeRendering was deprecated for VTK 8.1 and will be removed in a future version.

Generic Warning: In c:\vtk-8.1.2\rendering\core\vtkrenderwindow.cxx, line 1480
vtkRenderWindow::GetPainterDeviceAdapter was deprecated for VTK 8.1 and will be removed in a future version.

解决方法:下载以下链接中的压缩包,解压后将pcl_visualization_release.dll放在路径“D:\Program Files\PCL 1.9.1\bin”下替换即可。

https:///anelsalas/PCL_1_9_1_prebuild_pcl_visualization_release.dll2.运行后窗口点云出不来:

python Clipboard函数_源码包_08


按键盘R即能显示图像:

python Clipboard函数_github_09