0

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

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

我怎么能做到这一点?

4

1 回答 1

1

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

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

如果您对流深度不感兴趣并且仅使用 RGB,更像是网络摄像头,我想有 python 库可以让您从 Raspberry PI 创建 HTTP 或 RTP 流,然后您可以在其他计算机上读取。

于 2016-02-22T10:56:02.247 回答