Я пытаюсь написать программу, которая изменяет размеры всех видео с 448x800 до 480x640 в наборе каталогов, но по какой-то причине OpenCV не выполняет изменения, несмотря на отсутствие ошибок. Я использую OpenCV 4.1.0 и Python 3.7. Когда я запускаю mediainfo для отдельных файлов, разрешение отображается одинаково. Я запускаю его на Ubuntu, если это что-то меняет.
Из того, что я могу сказать из операторов печати, он достаточно хорошо изменяет размеры отдельных кадров, но проблема заключается в том, чтобы сохранить готовое видео.
import cv2
import os
dirs = ['group 3','group 4','group 5','group 6','group 7','group 8']
#cycles through the directories
for i in dirs:
files = os.listdir(i)
print (i)
#cycles through the files in each directory
for j in files:
if j.endswith('.avi'):
cap = cv2.VideoCapture(i + '/' + j)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 15, (640, 480))
while True:
ret, frame = cap.read()
if ret==True:
print(frame.shape)
b = cv2.resize(frame, (640,480), fx=0, fy=0, interpolation = cv2.INTER_CUBIC)
out.write(b)
print(b.shape)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Это не вызывает ошибок, но фактически не изменяет файлы. Какие-нибудь мысли? Я скучаю по чему-то простому?