我有一台华硕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()
我想在我的电脑上使用类似的代码。但在这种情况下,基本上我需要访问树莓派,并使用连接到树莓派的相机。我需要以类似的方式从相机获取实时视频数据,并在我的代码上使用它。
我怎样设法做到这一点?
答案 0 :(得分:1)
看起来您只使用不应该是大量数据的RGB流。如果您计划流式深度+ RGB,则应该先找到一种压缩数据的方法,然后再将其解压缩到网络上,然后再将其解压缩到另一端。
我记得当kinect出现时,这是一个人们一直在解决的问题。 例如,请查看Fabrizio Pece的论文Adapting standard video codecs for depth streaming(pdf)。 您应该能够找到类似的论文和实现。
如果您对流媒体深度和仅使用RGB不感兴趣,更像是网络摄像头,我想有些python库可以让您从Raspberry PI创建一个HTTP或RTP流,然后您可以阅读在你的另一台电脑上。