Я пытаюсь обнаружить объекты, используя пользовательскую функцию (называемую Digit_REcognition), которая принимает на вход изображение и возвращает то же изображение с ограничительной рамкой для распознанного класса:
reader = imageio.get_reader(video_path)
# Extract metadata
fps = reader.get_meta_data()['fps']
# Create the new video
writer = imageio.get_writer('output_1.mp4', fps = fps)
cap = cv2.VideoCapture(video_path)
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
#Apply detect function on each frame
progress = 0
for frame in reader:
frame = Digit_Recognition(frame)
writer.append_data(frame)
progress += 1
print("Processed frames:", round(progress/length * 100, 2), "%,")
writer.close()
print("Exection Done")
Я нашел дваосновные проблемы, а именно:
ПРЕДУПРЕЖДЕНИЕ: root: Предупреждение: размер кадра для чтения (1080, 1440) отличается от размера кадра источника (1440, 1080).
Прогресс продолжает идти после 100%
3. После нескольких итераций перед выполнением задачи записи возникает следующая ошибка:
*File "<ipython-input-3-36cc68a9710d>", line 165, in Complete_Model
writer.append_data(frame)
File "/anaconda3/lib/python3.6/site-packages/imageio/core/format.py", line 477, in append_data
raise ValueError('append_data requires ndarray as first arg')
ValueError: append_data requires ndarray as first arg*
Как я могу исправить ошибки, но, что еще важнее , третий один?
Ps Я использую .movв качестве входного видео