2015年8月14日 星期五

使用openCV開啟影片和調用視訊鏡頭(webCam)

調用內建或外接usb的webCam大概是openCV應用上最常用到的一步。
開啟影片和使用視訊鏡頭第一步就是使用函式 cap = cv2.VideoCapture()
如果是要開啟影片,則函式輸入參數是要開啟影片的名稱或其絕對路徑。
如果是要調用視訊鏡頭的話,則輸入參數放0就好了。
要知道有沒有正確開啟影片或調用視訊,可使用函式 cap.isOpened()
若正確開啟後,要一張一張讀出畫面的話: ret, frame = cap.read()
如果畫面讀取成功的話,ret會得到True的值。
如果讀取畫面失敗,通常是讀完所有的畫面了,ret 得到False的值。
通常一般的影片每秒是30張frames,所以在播放速度上,可以用cv2.waitKey調整秒數。
在設計上,也可以設定按"q"鍵來結束播放。

import cv2

cap = cv2.VideoCapture("test.mp4")

if(cap.isOpened()):
    print("Video opened")
    while(cv2.waitKey(33) != ord('q')):
        ret, frame = cap.read()

        if ret == False:
            print("Video ends")
            break

        cv2.imshow("Video",frame)

else:
    print("Opening video failed")

cap.release()
cv2.destroyAllWindows()


如果只是調用webCam的話,程式可以更精簡一點:

import cv2

cap = cv2.VideoCapture(0)

if(cap.isOpened()):
    print("webCam opened")
    while(cv2.waitKey(3) != ord('q')):
        ret, frame = cap.read()
        cv2.imshow("webCam",frame)

else:
    print("Opening webCam failed")

cap.release()
cv2.destroyAllWindows()

沒有留言:

張貼留言