1、概述
Orbbec SDK Python Wrapper基于Orbbec SDK进行设计封装,主要实现数据流接收,设备指令控制。
2、系统要求
2.1、操作系统
- Windows:Windows 10 (x64)(本文 针对windows)
- Linux: 18.04/20.04/22.04 (x64)
- Arm32: 18.04/20.04/22.04
- Arm64: Ubuntu18.04/20.04/22.04
2.2、编译平台要求
- Windows:Visual Studio 2017 及以上(本人用的是Visual Studio 2017版本)
- Linux: gcc 5.4.0 及以上
- cmake: 3.15.0 及以上
- pybind11 2.10.3 及以上
2.3、Python 版本
- Python 3.6.9 及以上(本人用的是Python3.8版本)
3、Windows python sdk 编译
3.1、下载 python sdk 源码
如果电脑装有Git则可以直接使用命令进行下载
git clone https://github.com/orbbec/pyorbbecsdk.git
如果没有Git可以手动去网址链接去手动下载压缩包
下载完里面的文件和目录结构如下:
其实在docs下有这个配置教程README_CN.md文件,但是有些步骤不够详细(跟着做出现问题,后面解决了,因此记录下来)
3.2、安装依赖
pyorbbecsdk目录下有一个requirements.txt文件
打开文件可以查看要安装的依赖为pybind11[global]
进入自己的虚拟环境位置
cmd打开命令窗口,激活虚拟环境,pip安装pybind11[global]依赖
pip install pybind11[global]
3.3、配置Visual Studio
- 打开Cmake,首先设置源码路径,“build”文件夹设置为生成二进制文件的路径,如下图所示。
点击
- 点击“Configure”并选择对应的Visual Studio版本和平台版本后,点击“Finish”,如下所示:
图上的VS版本是2022版的,我用的2017版的,根据自己电脑上装的VS版本选择,其他都一样
注意:此时会报错
CMake Error at lib/(our project name)/CMakeLists.txt:30 (find_package):
By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "pybind11",
but CMake did not find one.
Could not find a package configuration file provided by "pybind11" with any
of the following names:
pybind11Config.cmake
pybind11-config.cmake
Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
"pybind11_DIR" to a directory containing one of the above files. If
"pybind11" provides a separate development package or SDK, be sure it has
been installed.
这是因为pybind11_DIR路径没有正确找到,没有定位到pybind11文件的位置,位置在我们虚拟环境的这个地方,因为我们上面是在此虚拟环境下pip install pybind11[global]的
在cmake中修改为正确路径,再次点击“Configure”
Configuring done成功后,点击Generate显示Generating done后,点击Open Project
会打开python SDK工程,出现如下画面,注意选择Release和x64
3.4、编译python SDK
右键点击pyorbbecsdk 编译,如下图所示:
鼠标右键点击 INSTALL,如下图所示:
编译好的文件会拷贝到 install/lib 目录下,如下图所示:
4、测试python SDK Sample
- 将install/lib 目录下的文件 拷贝到 examples目录下,如下图所示:
打开Pycharm执行python color_viewer.py
等测试例子
报错:ModuleNotFoundError: No module named 'pyorbbecsdk',是因为版本不匹配,我们用的修环境Python版本是3.8,而我们后面编译pybind11生成的是pyorbbecsdk.cp39-win_amd64.pyd我们python版本要和cp39版本一致,我们再创建一个Python3.9版本的虚拟环境
conda create -n py39 python=3.9.0
激活虚拟环境安装必要的库opencv-python、numpy
activate py39
pip install opencv-python
进入Pycharm切换编译环境到刚创建的py39环境
需改环境名称
接上相机点击运行测试,出现
给我们的py39环境也安装一下pip install pybind11[global]
再回Pycharm中测试
还是报错
发现应该是没有装orbec驱动,去官网下载装一下,双击安装,下一步就可以了
再回pycharm点击运行
OK啦!
虽然导包部分还是飘红,但是不影响运行
参考:
1.How to make cmake find pybind11
2.cmake find_package没有找到Pybind11,即使有提示
3.导入模块pyorbbecsdk引发错误
4.完美解决CMake时“could not find any instance of Visual Studio”的问题【每天一个小技巧】
5.关于orbbec gemini rgb-d相机在windows系统中使用Python库Openni调用深度流与RGB图的结合并进行结构光测距