Обнаружение изменения сцены Python - PullRequest
6 голосов
/ 18 июля 2010

Мне интересно, есть ли у кого-нибудь опыт работы с Python и обработкой видео. По сути, я хотел бы знать, есть ли какие-либо библиотеки, которые позволили бы мне выполнять обнаружение сцены в видео? Если нет, то есть ли что-нибудь, что может позволить мне разделить видео на серию кадров и позволить мне поиграться с пикселями?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 июля 2010

OpenCV имеет привязки Python;Я не думаю, что он имеет какие-либо алгоритмы / функции для граничных сцен, но вы можете использовать его, чтобы написать свой собственный.

0 голосов
/ 28 декабря 2018

Вы можете использовать FFmpeg для обнаружения сцены и получения сменных кадров и их временных отметок.Команду можно объединить со скриптом Python, и вы можете изменить ее в соответствии с вашим вариантом использования.

Вы можете просто использовать команду:

ffmpeg inputvideo.mp4 -filter_complex "select='gt(scene,0.3)',metadata=print:file=time.txt" -vsync vfr img%03d.png

Это сохранит только соответствующую информацию вфайл time.txt, как показано ниже, а также сохраняйте изображения смены кадров в следующем порядке:

frame:0    pts:108859  pts_time:1.20954
lavfi.scene_score=0.436456
frame:1    pts:285285  pts_time:3.16983
lavfi.scene_score=0.444537
frame:2    pts:487987  pts_time:5.42208
lavfi.scene_score=0.494256
frame:3    pts:904654  pts_time:10.0517
lavfi.scene_score=0.462327
frame:4    pts:2533781 pts_time:28.1531
lavfi.scene_score=0.460413
frame:5    pts:2668916 pts_time:29.6546
lavfi.scene_score=0.432326

Кадр - это серийный номер обнаруженного изменения снимка с начала.Кроме того, выберите правильное пороговое значение (здесь 0,3) для вашего варианта использования, чтобы получить правильные выходные данные

...