Opencv3 python學習2——視訊基礎

何杭江發表於2017-07-20

Opencv3 python學習2——視訊基礎

這次的內容包括opencv視訊操作的最基礎的讀取視訊、顯示、使用攝像頭、儲存等等。

開啟視訊

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

顯示視訊

我這裡自己做了個測試,將視訊轉換成灰度

#ret和frame都是返回值,後者代表幀數
ret,frame = cap.read()
#將彩色的影象轉換成灰度,從此可以看出read到的應該是每一幀的影象,frame應該是圖片
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow("capture",gray)

釋放攝像頭物件和視窗

cap.release()
cv2.destroyAllWindows()

完整的程式碼

import numpy as np
import cv2

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

while(1):
    #ret和frame都是返回值,後者代表幀數
    ret,frame = cap.read()
    #將彩色的影象轉換成灰度,從此可以看出read到的應該是每一幀的影象,frame應該是圖片
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow("capture",gray)
    if cv2.waitKey(100) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

開啟攝像頭

如果是在筆記本上的話,0代表的就是筆記本的攝像頭

cap = cv2.VideoCapture(0)

定義寫入視訊格式和寫入物件

注意:opencv3中沒有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
*視訊格式 ‘XVID’可以為:
I420對應為未壓縮的YUK檔案.avi.
PIM1對應MPEG-1檔案.avi
XVID對應MPEG-4檔案.avi
THEO對應.ogv
FLVI對應flash視訊.flv**

#opencv3中沒有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
#fourcc = cv2.cv.FOURCC(*'XVID')   #這個是opencv2中的寫法
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("./video/test.avi",fourcc,20,(640,480))

儲存視訊

out.write(frame)

完整的攝像頭使用程式碼

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

#opencv3中沒有cv2.cv.fourcc,只有cv2.VideoWriter_fourcc
#fourcc = cv2.cv.FOURCC(*'XVID')   #這個是opencv2中的寫法
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("./video/test.avi",fourcc,20,(640,480))

while(1):
    ret,frame = cap.read()
    cv2.imshow("capture",frame)
    out.write(frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
out.release()
cv2.destroyAllWindows()

參考資料:
【1】http://blog.csdn.net/huanglu_thu13/article/details/52337014
【2】http://blog.csdn.net/huanglu_thu13/article/details/52337234
【3】http://blog.csdn.net/huanglu_thu13/article/details/52337013

相關文章