ffmpeg: contraste elástico adaptativo

ffmpeg: contraste elástico adaptativo

Considere un vídeo (en color) grabado en malas condiciones. Los píxeles más brillantes de sus marcos están muy por debajo del blanco puro, los más oscuros muy por encima del negro puro. ¿Se puede acercar el contraste de cada cuadro al rango de brillo completo, como un compresor/limitador de audio? ¿Se puede hacer esto en ffmpeg, usando algunos de sus muchos filtros?

Por supuesto, simplemente colocar el valor más brillante de cada fotograma en blanco y el más oscuro en negro hace que la exposición tartamudee como algo filmado en 1910. ¿Cuánto estirar?cadaEl contraste del marco debe depender de los valores más brillantes y más oscuros delcircundantefotogramas, probablemente +-10 segundos.

Se podrían extraer todos los cuadros, obtener los puntos blancos y negros de cada cuadro con imagemagick, almacenarlos en una matriz, suavizar la matriz, estirar el contraste de cada cuadro nuevamente con imagemagick y reconstruir el video. Pero eso parece positivamente medieval.

Respuesta1

Elhisteqse acerca a lo que quieres. Pero también puedes mirar los distintos tipos de filtros LUT y también lut3d.

Los filtros lut son más personalizables porque puedes mirar un marco y determinar qué valores usar. Además, si hay una gran variación en los niveles de luminancia del material de entrada, la salida podría vibrar al aplicar una corrección "por fotograma". Aplicar una intensidad de corrección uniforme a todos los fotogramas produciría un resultado más suave.

información relacionada