Orbbec-Astra相机windows系统下Python配置使用

作者丨绯村先生
编辑丨3D视觉开发者社区
✨如果觉得文章内容不错,别忘了三连支持下哦~

1. Orbbec 驱动安装

Orbbec-Astra相机windows系统下Python配置使用_第1张图片

第一步需要去奥比中光-开发者中心-下载中心-驱动界面下载所需相机驱动

2. openni库安装

openni库用于3D感知的开发接口,目前openni库支持的设备包括orbbec、Kinect等设备,因此我们需要下载openni库来完成相机的调用。

比起openni官网下载的包,在orbbec官网的包里面自带orbbec相机的动态链接库,因此我们选择下载orbbec官网上的openni包使用,需要去奥比中光-开发者中心-下载中心-OpenNI2 SDK-Windows界面下载所需Openni包。

Orbbec-Astra相机windows系统下Python配置使用_第2张图片

下载完毕后,我们可以在文件夹下的tools下的NiViewer先预览效果

Orbbec-Astra相机windows系统下Python配置使用_第3张图片

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配置使用_第4张图片

2.conda env list 查看自己的conda环境

Orbbec-Astra相机windows系统下Python配置使用_第5张图片

3.conda activate (name) 激活想要安装openni的环境

Orbbec-Astra相机windows系统下Python配置使用_第6张图片

4.pip install openni 安装openi库

1655979785361.png

这个提示是我已经安装过,安装成功进行下一步

Note:这是至关重要的一步,不完成没法在openni中调用orbbec相机,一定要记得把刚刚orbbec官网下载的openni文件夹中下述地址的openni2.dll文件和openNI2文件夹复制到你python主程序中,经过多次尝试,此路径下的文件有用:
Orbbec-Astra相机windows系统下Python配置使用_第7张图片

4. 运行程序

运行下述例程:

from openni import openni2
import numpy as np
import cv2

def 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 = 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 + dpt2
    
    cv2.imshow('depth', dpt)

    # ret,frame = cap.read()
    # cv2.imshow('color', frame)

    key = cv2.waitKey(1)
    if int(key) == ord('q'):
        break

depth_stream.stop()
dev.close()

直接打开就能看到深度图,但是这个是看不到RGB图的;

这里是因为,openNI是完全支持奥比中光的产品的,Astra系列中的Astra Pro产品(即为乐视三合一摄像头)对应的彩色摄像头使用UVC摄像头,其数据传输并不通过OpenNI2,因此使用OpenNI2应用不能看到彩色数据

运行结果:
Orbbec-Astra相机windows系统下Python配置使用_第8张图片

参考:

乐视三合一体感摄像头Astra pro开发记录1(深度图、彩色图及点云简单显示)

乐视三合一体感摄像头–基本信息及windows下部分开发

Wnidows下使用Python调用乐视三合一摄像头

版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。

点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~
也可以移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦~

你可能感兴趣的:(开发者,python,windows,开发语言,相机,机器学习)