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

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

前言

​ 上一篇文章https://blog.csdn.net/qq_44847636/article/details/114958454介绍了如何在 Windows下使用Python调用乐视三合一摄像头,这篇文章会和大家分享,如何在Ubuntu(linux)下调用乐视三合一摄像头…

配置过程

1)添加驱动

这里我插上摄像头 lsusb就能看见两个设备,如果你的没显示的话,可以根据我之前的文章安装以下驱动。

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

2)下载opencv、openni库

安装opencv:pip3 install opencv-python -i https://pypi.mirrors.ustc.edu.cn/simple/

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

(这里我这边用中科大的源非常快)

安装openni库:pip install openni

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

安装完成。

3)配置SDK环境

从官网https://orbbec3d.com/develop下载openni SDK文件:

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

在下载好的文件下给install.sh添加权限:sudo chmod 777 install.sh ,再执行:sudo ./install.sh ;具体相对地址如下所示:

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

这时候会生成一个 OpenNIDevEnvironment 文件。

为了不需要一直source:

sudo gedit ~/bashrc,然后将下面一行代码加在文件最后面,

source ~/install/OpenNI_2.3.0.66/Linux/OpenNI-Linux-x64-2.3.0.66/OpenNIDevEnvironment

这里要根据你自己的安装位置改一下。

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(2)     #这里的摄像头可能要改一下,它可能自动调用电脑摄像头
    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
        dpt = dpt[:, ::-1]
        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()


测试结果:

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

测试成功!

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

这里有个小bub没解决,这里Run的时候还是有问题,但是用Terminal跑是没问题的,后续解决…

参考资料

[1]、Wnidows下使用Python调用乐视三合一摄像头:https://blog.csdn.net/qq_44847636/article/details/114958454

上一篇:【图像处理】【Matlab】双边滤波Matlab代码(速度很快)


下一篇:golang 基于文件的消息队列 ---> diskqueue