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

时间:2016-02-14 21:15:49

标签: python camera raspberry-pi2 openni asus-xtion

我有一台华硕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()

我想在我的电脑上使用类似的代码。但在这种情况下,基本上我需要访问树莓派,并使用连接到树莓派的相机。我需要以类似的方式从相机获取实时视频数据,并在我的代码上使用它。

我怎样设法做到这一点?

1 个答案:

答案 0 :(得分:1)

看起来您只使用不应该是大量数据的RGB流。如果您计划流式深度+ RGB,则应该先找到一种压缩数据的方法,然后再将其解压缩到网络上,然后再将其解压缩到另一端。

我记得当kinect出现时,这是一个人们一直在解决的问题。 例如,请查看Fabrizio Pece的论文Adapting standard video codecs for depth streaming(pdf)。 您应该能够找到类似的论文和实现。

如果您对流媒体深度和仅使用RGB不感兴趣,更像是网络摄像头,我想有些python库可以让您从Raspberry PI创建一个HTTP或RTP流,然后您可以阅读在你的另一台电脑上。