1. 程式人生 > 其它 >python-pcl踩坑後記錄完整配置過程

python-pcl踩坑後記錄完整配置過程

文章目錄

 


前言

在學習計算機視覺時,學到點雲庫,需要用到視覺化點雲工具,在配置python-pcl過程中踩了“ImportError: DLL load failed: 找不到指定的模組”等多個坑,這裡整理一個配置流程,希望可以幫助你避坑。 文章python使用版本是3.6版本。


一、下載需要的安裝包

1.python-pcl原始碼:https://github.com/strawlab/python-pcl
2.PCL1.9.1的All-In-One Installer :https://github.com/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,雙擊執行,該指令碼會下載必須的內容,下載完成後會多出這兩個資料夾。

2.安裝必要的python庫

1.cython
2.numpy
python-pcl安裝前要求要有cython和numpy這兩個庫,版本需要跟下載的python-pcl原始碼相對應,開啟python-pc原始碼目錄下的setup.py 可以看到對cython和numpy的版本要求:

在cmd中pip install 下載對應版本就行
我是用的最新版本numpy跟0.26.0的cython
安裝指定版本命令為: pip install cython==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中

5.配置環境變數

要保證系統變數有以下路徑:

然後編輯Path變數,在path中相對你的安裝路徑加入以下內容:

6.安裝python的pcl庫

pip install pclpy

至此,pcl配置完畢。


三、測試

最後import pcl 不再報錯

測試程式碼:

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://github.com/anelsalas/PCL_1_9_1_prebuild_pcl_visualization_release.dll
2.執行後窗口點雲出不來:

按鍵盤R即能顯示影象: