Python27+Opencv3 捕獲網
- 2020 年 1 月 8 日
- 筆記
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()需要指定編碼器,同時幀率及影片解析度也需要傳入。