Windows下安装python-pcl
嘛,最近想要把深度图和原图结合起来生成个点云图来看一看,试试在Windows跑个PCL看看点云图,发现这难度好像还很大,预编译的版本全线飘红选不了,看到个正好也是windows上python3.8的前辈做到最后放弃,给我整的有点害怕。但是本着试一试的态度我还是跟着做了一遍看看。
跟着前辈走一段
接下来一段都是和上面前辈的博客类似的,为了读的人图个方便再写一遍。
环境
windows10 64位
visual studio >= 2017(好像Github只剩2017了的文件了)
python 3.8.x
python-pcl 1.9.1
注:python-pcl库本身版本已经到1.12了,但是因为之后有个过程中限制我们版本要小于等于1.9,所以这边写1.9.1,我之前没照着走装了1.12,还要卸了重新走一遍,裂开
大同小异的步骤
- 下载python-pcl
- 下载 PCL1.9.1的All-In-One Installer
( 下载visual studio版本对应的PCL-1.9.1-AllInOne-msvc20xx-win64.exe,我本身是2019的,但是也装了2017的一些文件,所以可以) - 点击exe文件进行安装,期间会自动弹出OpenNI2的安装界面,直接安装即可
- 设置环境变量,按照另一个前辈的来,其实感觉好像有些太多了,不过怕出错,还是全加上了
- 安装过程中我看漏了这一步,编译完成都没发现,有点尴尬,甚至让我有点怀疑到底要不要这一步了。下载GTK+,然后解压出来,个人下的是GTK+ 3.6.4 64位
- 在第一步下载的文件夹中,打开pkg_config文件夹,用管理员模式打开Install-GTKPlus.ps1文件,然后等待完成后会多一些文件。有些人说这个目录没有bin文件,可能是没有做这一步,或者国内网的原因,下一些东西失败了,可能需要科学上网。然后把上一步的文件夹内的bin目录内的东西复制到这边pkg_config文件夹的bin目录内(这一步我跟上面一样漏了一次),然后我是选择相同文件覆盖了。
- 保证环境内装了cython和numpy。前辈的0.25.2的版本我不知道为什么死活装不上,经过测试我pip安装的最新版本可以使用,记录下,是0.29.28
- 回到第一步下载的文件夹中,依次执行命令
python setup.py build_ext -i
python setup.py install
- 理论上说应该是安装完了,然后可以在python里面import试一下:
import pcl
import pcl.pcl_visualization
接着走自己的路
按照上面第九步走完了,出了个经典跑错:
>>> import pcl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\ASUS\PycharmProjects\pyqt_test\venv\lib\site-packages\python_pcl-0.3.0rc1-py3.8-win-amd64.egg\pcl\__init__.py", line 2, in <module>
from ._pcl import *
ImportError: DLL load failed while importing _pcl: 找不到指定的模块。
然后我很实诚的按照有些博客说的把OpenNI2.dll放到那个目录里(我这边不知道为什么目录很奇怪,按照报错的py文件的位置就行了),还是不行,在那个__init__.py文件里面一顿骚操作也看不出问题在哪里。
Emmmmm??!
接着在目录里转转吧,在site-packages\python_pcl-0.3.0rc1-py3.8-win-amd64.egg\Lib\site-packages\pcl路径下看到一堆dll文件,那是不是应该把OpenNI2.dll放这里?还是一样
Emmmmm?!!
然后也没啥想法了,一顿瞎改也没啥效果,最后算了,把上面这个文件夹里面所有dll全复制到之前__init__.py的那个位置里面
哦豁
Emmmmm!!!
我只想说一句话:TNND,玩阴的是吧。。。
最后放个图,用PCL随便显示个东西,看上去有点抽象,感觉还要调调啥参数,我之后再看一看。
PS:然后有个同事和我说可以用pybind自己封pcl,好像也可以,我就不试了,这边有个前辈的博客
引用列表:
- https://www.cnblogs.com/shepherd2015/p/11157240.html
- https://blog.youkuaiyun.com/weixin_42291376/article/details/106307408
- https://blog.youkuaiyun.com/l494924841/article/details/105622454