Python27+Opencv3 捕獲網

Opencv3+Python比較常見的是播放本地avi影片文件、或者捕獲PC自帶攝影機影片。

現在網路攝像機遍布,而我們測試時也需要用到網路攝像機的實時影片,並進行處理,參考《opencv3電腦視覺(python語言實現)》編寫了捕獲網路攝像機實時影片的程式碼。

前提:

1、opencv+python的ffmpeg庫配置ok,即videocapture返回TRUE。配置方法可以參考另一篇博文。

2、測試的網路攝像機支援rtsp協議網路串流播放(比如可以通過vlc串流播放)。

程式碼如下:

#藍色字體的rtsp URL根據各自網路攝像機定義的格式,部分需要添加認證資訊,格式即為:rtsp://username:password@ip/***

cap = cv2.VideoCapture('rtsp://192.168.1.60/stream2')

#判斷是否正常開啟

print cap.isOpened()

frameNum = 1

while(cap.isOpened()):

    ret,frame = cap.read()

    print frameNum

    frameNum = frameNum + 1   

    cv2.imshow('frame',frame)

#每10幀存儲一張圖片

    if frameNum%10 == 1:

        cv2.imwrite('p_w_picpath'+str(frameNum)+'.jpg',frame)

    if cv2.waitKey(1) == ord('q'):

        break

cap.release()

cv2.destroyAllWindows()

裡面沒有寫影片的存儲,如果需要存儲影片,使用VideoWriter即可,注意其中參數VideoWriter_fourcc()需要指定編碼器,同時幀率及影片解析度也需要傳入。