OpenCV for Python之從相機中讀取視頻、從文件中播放視頻、保存捕捉視頻

Opencv4 官方文檔 : https://docs.opencv.org/4.2.0/
Opencv4 for Python中文文檔點擊下載:Opencv4 for Python 中文文檔

1.從相機中讀取視頻

代碼實例

def video_demo():
    capture = cv.VideoCapture(0)#0筆記本內置攝像頭,1調用usb攝像頭
    if not capture.isOpened():
        print("Cannot open camera")
        exit()
        while True:  # 逐幀捕獲
            ret, frame = cap.read()
            # 如果正確讀取幀,ret爲True
            if not ret:
                print("Can't receive frame (stream end?). Exiting ...")
                break
                gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
                # 顯示結果幀
                cv.imshow('frame', gray)
                if cv.waitKey(1) == ord('q'):
                    break
    # 完成所有操作後,釋放捕獲器
    cv.destroyAllWindows()
    capture.release()

2 從文件中播放視頻

代碼實例

def filePlayVideo():
    capture = cv.VideoCapture('./fiele/images/test.avi')
    while capture.isOpened():
        ret, frame = capture.read()
        # 如果正確讀取幀,ret爲True
        if not ret:
            print("Can't receive frame (stream end?). Exiting ...")
            break
        gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
        cv.imshow('frame', gray)#逐幀顯示實現視頻播放
        if cv.waitKey(1) == ord('q'):
            break
    capture.release()
    cv.destroyAllWindows()

3 保存捕捉到的視頻:

代碼實例

def saveVideo():
    capture = cv.VideoCapture(0)
    # 定義編解碼器並創建VideoWriter對象
    fourcc = cv.VideoWriter_fourcc(*'XVID')
    out = cv.VideoWriter('output.avi', fourcc, 20.0, (640,  480))
    while capture.isOpened():
        ret, frame = capture.read()
        if not ret:
            print("Can't receive frame (stream end?). Exiting ...")
            break
        frame = cv.flip(frame, 0)
        # 寫翻轉的框架
        out.write(frame)
        cv.imshow('frame', frame)
        if cv.waitKey(1) == ord('q'):
            break
    # 完成工作後釋放所有內容
    capture.release()
    out.release()
    cv.destroyAllWindows()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章