2016-02-14 67 views
0

不同計算機的OpenNI相機設備我有一個華碩Xtion臨現場的攝像頭。它與樹莓派相連。我寫了一個python代碼,它可以從攝像頭抓取幀,並顯示和保存。訪問到使用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

它看起來像你只使用RGB流,這不應該是一個巨大的數據量。如果您計劃傳輸深度+ RGB,您應該尋找一種方法在將數據發送到網絡之前壓縮數據,然後在另一端對數據進行解壓縮。

我記得這是一個問題,當kinect出來時,人們一直在尋找。例如,請查看Fabrizio Pece的文章Adapting standard video codecs for depth streaming(pdf)。 你應該能夠找到類似的論文和實現。

如果您對流深度和僅使用RGB不感興趣,更像是網絡攝像頭,我想有些Python庫可以讓您從Raspberry PI創建HTTP或RTP流,然後您可以閱讀你的另一臺電腦。