【OpenCV實戰】讀取並處理視頻文件幀

    爲什麼要有這個小例子,因爲在做目標檢測的時候經常要讀取視頻幀,並在訪幀上進行目標檢測再播放出來以觀察效果。

# coding: utf-8
import numpy as np
import cv2
import os

# VideoCapture既支持視頻文件的讀取也支持從攝像機中讀取視頻
cap = cv2.VideoCapture("/Users/left/ai/data/videos/0025.h264")
if cap.isOpened() != True:
    os._exit(-1)

# 對象創建成功後isOpened()將返回true
while True:
    # 一幀一幀的捕獲
    ret, frame = cap.read()
    if ret != True:
        break

    # 在讀取的幀上我們可以做些事情
    # 顏色空間變換,變爲灰度圖
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame', gray)

    # waitKey(int delay)這個函數接收一個整形值,
    # 如果這個值是零,那麼函數不會有返回值,如果delay大於0
    # 那麼超過delayms後,如果沒有按鍵,那麼會返回-1,如果按鍵
    # 會返回鍵盤值,在某些系統中,返回的鍵盤值可能不是ASCII編碼
    # 的,所以通過與0xFF進行與運算只取最後一個字節
    if (cv2.waitKey(10) & 0xFF) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章