Java - извлечение ключевого кадра из видео

Я хочу извлечь ключевые кадры из видео. Сейчас я использую цикл, который сравнивает выборки одного кадра с выборками предыдущего кадра, но этот метод не очень хорош.

Позвольте мне объяснить: у меня есть видео наблюдения, и я должен выбрать кадры, в которых есть изменения (появляется человек, появляется другой человек, человек уходит и т. Д.) Теперь я использую этот класс для сравнения кадров: Java Сравнение изображений / Класс обнаружения движения

Вы знаете другие способы?

Спасибо!!

1 ответ

Решение

Я не уверен, что вы называете " ключевой кадр ". Ваш метод позволит вам только находить переходы между сценами, но это не то, что обычно подразумевается под "ключевым кадром " при декодировании видео: обычно это I-кадр (кадр, который может быть декодирован сам по себе, без ссылки на другие кадры). (Часто переходы сцены являются ключевыми кадрами, но не обязательно другим способом). Эта концепция, конечно, связана с видеокодеком, но большинство современных кодеков (из MPEG-1) реализуют эту концепцию. Но обратите внимание, что это связано не с необработанными картинками самих по себе, а с кодеком.

Если вы хотите обнаружить эти ключевые кадры (I-кадры), то вам нужно заглянуть внутрь своего API декодирования видео, чтобы узнать, позволяет ли оно получить эту информацию. Кажется, что xuggle предоставляет вам метод IVideoPicture.getPictureType(), но я не использовал его.

Другие вопросы по тегам