Eu quero extrair keyframes de um vídeo. Agora eu estou usando um loop que compara as amostras de um quadro com as amostras do quadro anterior, mas este método não é muito bom.
Deixe-me explicar: Eu tenho um vídeo de vigilância e eu tenho que selecionar os quadros onde há uma mudança (uma pessoa aparece, outra pessoa aparece, uma pessoa vai embora, etc.) Agora eu estou usando essa classe para comparar quadros: Comparação de Imagens Java / Classe de Detecção de Movimento
Você conhece outras maneiras?
Obrigado!!
Respostas:
4 para resposta № 1Eu não tenho certeza do que você chama de "quadro-chave". Seu método permitiria que você apenas encontrasse transições de cena, mas isso não é o que normalmente se quer dizer com um" quadro - chave "na decodificação de vídeo: geralmente é um Quadro I (um quadro que pode ser descodificado sozinho, semreferência a outros quadros). (Frequentemente as transições de cena são keyframes, mas não necessariamente o contrário). Esse conceito está ligado ao codec de vídeo, é claro, mas a maioria dos codecs modernos (do MPEG-1) implementam esse conceito. Mas observe que isso não está relacionado às imagens brutas em si, mas com o codec.
Se você quiser detectar esses keyframes (Quadros I)Então, você deve procurar dentro da API de decodificação de vídeo para ver se ela permite obter essas informações. Parece que o xuggle fornece a você IVideoPicture.getPictureType () método, mas eu não usei isso.