Создание видео из изображений с использованием OpenCV с Python - PullRequest
1 голос
/ 13 июля 2020

Мой код:

video = cv2.VideoWriter(name, 0, 1, size)

for image in frames:
    video.write(image)

video.release()

name - это строка, описывающая имя файла, размер - (360, 640), а кадры - это список, содержащий все изображения (ndarrays со всеми значениями цвета). Когда я пытаюсь запустить этот код, он возвращает

TypeError: Expected Ptr<cv::UMat> for argument 'image'

Что это означает и как исправить эту ошибку?

Изменить: Мой код теперь:

fourcc = cv2.VideoWriter_fourcc(*'XVID')
video = cv2.VideoWriter('mosaic.avi', fourcc, 30, size)

for image in frames:
    video.write(np.float32(image))

video.release()

Ошибок не возвращается, однако видео повреждено.

1 Ответ

0 голосов
/ 13 июля 2020

UMat является частью прозрачного API (TAPI), чем помогает написать один код для реализаций CPU и OpenCL. Вы можете исправить эту ошибку следующими способами:

video = cv2.VideoWriter(name, 0, 1, size)

for image in frames:
    video.write(cv2.UMat(image))

video.release()

или

Import numpy as np
video = cv2.VideoWriter(name, 0, 1, size)

for image in frames:
    image = np.array(image)
    video.write(image)

video.release()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...