ffmpeg: contraste de alongamento adaptativo

2

Considere um vídeo (colorido) gravado em condições precárias. Os pixels mais brilhantes de seus quadros estão bem abaixo do branco puro, os mais escuros bem acima do preto puro. O contraste de cada quadro pode ser esticado para mais perto da faixa de brilho total, como um compressor / limitador de áudio? Isso pode ser feito no ffmpeg, usando alguns de seus muitos filtros?

É claro que simplesmente colocar o valor mais claro de cada quadro em branco e mais escuro em preto faz com que a exposição gagueje como algo disparado em 1910. O quanto esticar cada o contraste do quadro dependerá dos valores mais claros e mais escuros dos quadros circundantes , provavelmente + -10 segundos.

Pode-se extrair todos os quadros, obter pontos brancos e pretos de cada quadro com imagemagick, armazená-los em uma matriz, suavizar a matriz, esticar o contraste de cada quadro novamente com imagemagick e reconstruir o vídeo. Mas isso parece positivamente medieval.

    
por Camille Goudeseune 06.03.2014 / 22:20

1 resposta

1

O histeq se aproxima do que você deseja. Mas você também pode ver os vários tipos de filtros LUT e também o lut3d.

Os filtros de lut são mais personalizáveis na medida em que você pode realmente olhar para um quadro e determinar quais valores usar. Além disso, se houver grande variação nos níveis de luminância de viz-a-viz do material de entrada, a saída poderá ser medida ao aplicar uma correção "por quadro". Aplicar uma força uniforme de correção a todos os quadros produziria um resultado mais suave.

    
por 08.03.2014 / 20:01