cv2.VideoWriter: запрашивает кортеж в качестве аргумента размера, затем отклоняет его - PullRequest
0 голосов
/ 30 мая 2019

Я использую OpenCV 4.0 и Python 3.7 для создания замедленного видео.

При создании объекта VideoWriter в документации говорится, что аргумент Size должен быть кортежем.

Когда я даю ему кортеж, он отвергает его.Когда я пытаюсь заменить его чем-то другим, он не принимает его, потому что говорит, что аргумент не является кортежем.

Когда размер не кортеж:

out = cv2.VideoWriter('project.avi', 1482049860, 30, height, width)
SystemError: new style getargs format but argument is not a tuple

Когда яизменил Размер на кортеж:

out = cv2.VideoWriter('project.avi', 1482049860, 30, (height, width))
TypeError: must be real number, not tuple

Я просто хочу создать простой объект cv2.VideoWriter.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Я пытался взять высоту и ширину из загруженного видео, используя:

width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

Я изменил его на:

width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

Теперь я не получаю эту ошибку.В целом он еще не работает, но этой конкретной ошибки больше нет.

0 голосов
/ 30 мая 2019

Попробуйте обновить до opencv v4.1.0.Не вижу этой проблемы там.

Иначе попробуйте:

out = cv2.VideoWriter('project.avi', 1482049860, 30, frameSize=(height, width))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...