Я пытаюсь сохранить запись с камеры, я использую бесплатный курс, и он говорит, что мне нужно создать cv2.VideoWriter. проблема, с которой я сталкиваюсь при попытке:
Traceback (most recent call last):
File ..., line 10, in <module>
writer = cv2.VideoWriter(filename,cv2.VideoWriter_fourcc(*'DVIX'),20,(width,height))
TypeError: a float is required
мой код:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
#### THE PROBLEM IS IN THIS LINE ########
writer = cv2.VideoWriter("images/my_super_vid.mp4",cv2.VideoWriter_fourcc(*'DVIX'),20,(width,height))
######################################
while True:
ret, frame = cap.read()
#OPERTAIONS (DRAWING ETC')
writer.write(frame)
cv2.imshow("frame",frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
writer.release()
cv2.destroyAllWindows()
Я увидел проблему и изменил ее на:
writer = cv2.VideoWriter("images/my_super_vid.mp4",cv2.VideoWriter_fourcc(*'DVIX'),float(20),(width,height))
и даже:
writer = cv2.VideoWriter("images/my_super_vid.mp4",cv2.VideoWriter_fourcc(*'DVIX'),20.0,(width,height))
но в обеих этих попытках я получил:
Traceback (most recent call last):
File "....", line 10, in <module>
writer = cv2.VideoWriter("images/my_super_vid.mp4",cv2.VideoWriter_fourcc(*'DVIX'),20.0,(width,height))
TypeError: integer argument expected, got float
Я не знаю, как это исправить, я пробовал решения, которые я видел в inte rnet но ни один из них не работал .. получил ту же проблему
хорошо, я изменил строку на:
writer = cv2.VideoWriter("images/my_super_vid.avi",cv2.VideoWriter_fourcc(*'XVID'),20, (int(width),int(height)))
, и это сработало. но теперь я получаю:
qt.qpa.plugin: Could not find the Qt platform plugin "cocoa" in ""
Это приложение не удалось запустить, поскольку ни один плагин платформы Qt не мог быть инициализирован. Переустановка приложения может решить эту проблему.
, когда я пытаюсь запустить его в PyCharm ИСПРАВЛЕНО: просто запустил его из терминала.