簡體   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