簡體   English   中英

無法使用 OpenCV python 保存視頻

[英]Unable to save video using OpenCV python

我是計算機視覺的新手,我通過使用 Pillow 和 Skimage 庫開始了我的圖像處理之旅,而不是嘗試使用 opencv 但是當我使用 opencv 進行視頻處理時,我無法保存系統攝像頭捕獲的視頻。

import cv2
import numpy as np
cam = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
video_write = cv2.VideoWriter('saved_out.avi', fourcc, 20.0, (640, 480))
while True:
    ret, frame = cam.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    video_write.write(frame)
    cv2.imshow('frame',frame)
    cv2.imshow('gray', gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cam.release()
video_write.release()
cv2.destroyAllWindows()

您是否嘗試過 mp4v 而不是 xvid? 以下適用於我(Windows):

writer = cv2.VideoWriter('out.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 20, shape)

如果這不起作用,您還可以嘗試:

  1. 不要對視頻尺寸進行硬編碼,而是使用 frame.shape 來確保尺寸匹配。 如果他們不這樣做,作者就無法編寫框架。

    ret, frame = video.read() height, width = frame.shape[:2] shape = (width, height) video_write = cv2.VideoWriter('saved_out.avi',fourcc, 20.0, shape)

重要提示:如果您從 np 數組創建框架,請記住寬度和高度是倒置的。 星期六我在我的代碼上調試了 2 個小時。

newFrame = np.zeros((height, width), dtype='uint8')
  1. 幀需要采用 BGR 格式(3 個通道)。 如果使用灰度圖像,則在實例化您的編寫器 object 時必須將標志 False 傳遞給顏色,如下所示:

    writer = cv2.VideoWriter('out.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 20, 形狀, False)

文檔:VideoWriter(文件名,fourcc,fps,大小,is_color)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM