繁体   English   中英

使用python访问另一台计算机的OpenNI摄像头设备

[英]Accessing to a different computer's OpenNI camera device using python

我有一台ASUS Xtion Pro-Live相机。 它连接到树莓派。 我写了一个python代码,可以从相机中抓取帧,进行显示并保存。

def get_frames():
    capture = cv2.VideoCapture(cv.CV_CAP_OPENNI)
    capture.set(cv.CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE, cv.CV_CAP_OPENNI_VGA_30HZ)

    while(True):
            if not capture.grab():
                print "Unable to Grab Frames from camera"
                break
            okay, color_image = capture.retrieve(0, cv.CV_CAP_OPENNI_BGR_IMAGE)
            if not okay:
                print "Unable to retrieve Color Image from device"
                break

            cv2.imshow("rgb camera", color_image)
            name = "images/" + str(time.time()) + ".png"
            cv2.imwrite(name, color_image)
            if cv2.waitKey(10) == 27:
                break

    capture.release()

我想在计算机上使用类似的代码。 但是在这种情况下,基本上我需要访问树莓派,并使用连接到树莓派的相机。 我需要以类似的方式从摄像机获取实时视频数据,并将其用于我的代码中。

我该怎么做呢?

看来您只在使用RGB流,而该流不应该是大量数据。 如果您打算流式传输depth + RGB,则应在网络上发送数据之前寻找一种压缩数据的方法,然后在另一端将其解压缩。

我记得这是当Kinect推出时人们一直在解决的问题。 例如,请查阅Fabrizio Pece的论文“使标准视频编解码器适合深度流传输 (pdf)”。 您应该能够找到类似的论文和实现。

如果您不喜欢流深度并且仅使用RGB(更像是网络摄像头),我想有一些Python库可以让您从Raspberry PI创建HTTP或RTP流,然后可以在另一台计算机上阅读。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM