Я не могу заставить cv2.VideoWriter
записывать какие-либо кадры в видео, когда объект cv2.VideoWriter
передается через вызов функции. Я не знаю, может ли это быть неизменный объект, и это может быть причиной?
Я знаю, что это работает, когда я просто добавляю случайные отдельные кадры без используемых функций.
Я попытался просто вернуть и сохранить объект VideoWriter из каждого вызова функции без результатов.
Это работает:
import cv2
fourcc = cv2.VideoWriter_fourcc(*'XVID')
vid = cv2.VideoWriter('vid.avi', fourcc, 1, (512, 512))
img = cv2.imread('dog.png')
vid.write(img)
img = cv2.imread('cat.png')
vid.write(img)
vid.release()
Но это не относится к вызову функции с vid в качестве аргумента:
import cv2
def add_img(vid):
img = cv2.imread('dog.png')
vid.write(img)
img = cv2.imread('cat.png')
vid.write(img)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
vid = cv2.VideoWriter('vid.avi', fourcc, 1, (512, 512))
add_img(vid)
vid.release()
Я не получаю никаких ошибок, но просто не добавлю ни одного изображения ...