开发者|Orbbec-Astra相机windows系统下Python配置使用

作者丨绯村先生
编辑丨3D视觉开发者社区
?如果觉得文章内容不错,别忘了三连支持下哦~
1. Orbbec 驱动安装 开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

第一步需要去奥比中光-开发者中心-下载中心-驱动界面下载所需相机驱动
2. openni库安装 openni库用于3D感知的开发接口,目前openni库支持的设备包括orbbec、Kinect等设备,因此我们需要下载openni库来完成相机的调用。
比起openni官网下载的包,在orbbec官网的包里面自带orbbec相机的动态链接库,因此我们选择下载orbbec官网上的openni包使用,需要去奥比中光-开发者中心-下载中心-OpenNI2 SDK-Windows界面下载所需Openni包。
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

下载完毕后,我们可以在文件夹下的tools下的NiViewer先预览效果
【开发者|Orbbec-Astra相机windows系统下Python配置使用】开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

3. 下一步我们搭建自己的python环境 windows下python环境配置如下:
windows10
Python 3.8.13
Opencv 4.5.5
Openni 2.3.0
Numpy 1.22.4
因为之前我的conda中没有Openni 2.3.0的环境,因此需要pip到自己的python环境中
1.cmd
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

2.conda env list 查看自己的conda环境
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

3.conda activate (name) 激活想要安装openni的环境
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

4.pip install openni 安装openi库
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

这个提示是我已经安装过,安装成功进行下一步
Note:这是至关重要的一步,不完成没法在openni中调用orbbec相机,一定要记得把刚刚orbbec官网下载的openni文件夹中下述地址的openni2.dll文件和openNI2文件夹复制到你python主程序中,经过多次尝试,此路径下的文件有用:
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

4. 运行程序 运行下述例程:
from openni import openni2 import numpy as np import cv2def mousecallback(event,x,y,flags,param): if event==cv2.EVENT_LBUTTONDBLCLK: print(y, x, dpt[y,x])if __name__ == "__main__": openni2.initialize()dev = openni2.Device.open_any() print(dev.get_device_info())depth_stream = dev.create_depth_stream() depth_stream.start()cap = cv2.VideoCapture(0) cv2.namedWindow('depth') cv2.setMouseCallback('depth',mousecallback)while True:frame = depth_stream.read_frame() dframe_data = https://www.it610.com/article/np.array(frame.get_buffer_as_triplet()).reshape([480, 640, 2]) dpt1 = np.asarray(dframe_data[:, :, 0], dtype='float32') dpt2 = np.asarray(dframe_data[:, :, 1], dtype='float32')dpt2 *= 255 dpt = dpt1 + dpt2cv2.imshow('depth', dpt)# ret,frame = cap.read() # cv2.imshow('color', frame)key = cv2.waitKey(1) if int(key) == ord('q'): breakdepth_stream.stop() dev.close()

直接打开就能看到深度图,但是这个是看不到RGB图的;
这里是因为,openNI是完全支持奥比中光的产品的,Astra系列中的Astra Pro产品(即为乐视三合一摄像头)对应的彩色摄像头使用UVC摄像头,其数据传输并不通过OpenNI2,因此使用OpenNI2应用不能看到彩色数据
运行结果:
开发者|Orbbec-Astra相机windows系统下Python配置使用
文章图片

参考:
乐视三合一体感摄像头Astra pro开发记录1(深度图、彩色图及点云简单显示)
乐视三合一体感摄像头–基本信息及windows下部分开发
Wnidows下使用Python调用乐视三合一摄像头
版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文
3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。
点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~
也可以移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦~

    推荐阅读