No estoy hablando de dibujar curvas suaves aquí, sino de la herramienta de curvas utilizada para ajustar los niveles de color. Una ilustración valdrá más que mil palabras, aquí. Este es un ajuste en Gimp:
Ajustamiento:
Histograma Antes:
Histograma después:
Aquí, vemos que la herramienta ha realizado el mapeo simple del canal de 8 bits a lo largo de la curva, lo que produce un patrón de cebra en la salida resultante.
¿Hay algún software que maneje esto de una manera más sofisticada, usando un algoritmo anti-aliasing para que se use el rango completo de valores de salida?
Lo más probable es que una imagen de 8 bits tenga sus valores de píxeles truncados. Lo que debe hacer es interpolar los bits de bajo orden que faltan antes de aplicar una transformación de color. No hay forma de saber cuáles son los valores faltantes, tendría que hacer ciertas suposiciones, como la suavidad.
Para responder a su pregunta, no conozco ningún editor de imágenes que ofrezca esta función. ¿Por qué no? Velocidad para uno, el comando de curvas/niveles en la mayoría de los editores de fotos es lo suficientemente rápido como para trabajar en tiempo real para que pueda ver el efecto en su imagen. Ahora podría tener una función separada que opere cuando no esté en la vista previa, pero esta sería una función de nivel bastante alto y tendría que implementarla para todas las operaciones que aplican escala a los valores de píxeles. Finalmente, es un problema que desaparece por completo si tiene una cámara compatible con RAW y adopta un flujo de trabajo de 16 bits.
Siempre puede hacer la interpolación usted mismo, por ejemplo, convirtiendo a 16 bits, remuestreando a una resolución más alta, reduciendo la resolución. Un esquema alternativo que probablemente funcionará igual de bien sería aleatorizar los bits de orden inferior (agregando una pequeña cantidad de ruido). O una combinación de remuestreo y aleatorización.
No se desanime demasiado por el aspecto del histograma en su imagen, es poco probable que se note el error de cuantización de esa operación si hay algún ruido en la imagen, siempre que no tenga áreas con gradientes de color poco profundos (sin embargo, en casos con transiciones suaves y poco ruido, la interpolación funcionaría muy bien).
Aunque la pérdida de información de color claramente no se puede evitar en este tipo de transformación de 8 bits, puede tener una imagen que se comporte mejor si acepta un poco de pérdida de nitidez...
No sé en otros programas, pero en darktable
ti puedes usar el módulo "dithering":
Probé el mismo truco en una pequeña imagen jpeg, y este es el resultado: antes:
y después:
Ahora el histograma se comporta mucho mejor; puede reducir las bandas de color en algunos casos.
Desde un punto de vista teórico, no existe una forma "Verdadera" de recuperar esos valores. los núcleos de convolución (como el suavizado guassiano o un núcleo que conserva los bordes) y el tramado harán suposiciones para traerlos de vuelta, es posible que los filtros de rango no (como la mediana).
Sin embargo, no hay forma de "saber" cómo deberían haber sido esos valores antes de la cuantificación, por lo que es un juicio subjetivo, qué filtro basado en convolución prefiere. Es posible que deba usar varios filtros y enmascarar su imagen en cuanto a dónde desea que se apliquen.
La mejor manera de superar esto es mediante el procesamiento en modo de 16 bits, de modo que el "espacio de valores en forma de cebra" se vuelva a muestrear cuando se pasa a 8 bits. Esto debería eliminar la mayoría de los valores omitidos en un espacio de 8 bits, a menos que haya agregado mucho contraste/ganancia.
Todos los ajustes que haga serán destructivos de esta manera.
un par de mejores prácticas para minimizar el daño de contraste que puede ocurrir por un ajuste excesivo.
Comience con una imagen completamente neutral o procesada logarítmicamente en 16 bits
No realice ajustes permanentes de niveles, curvas, tono/sat o contraste de brillo. mantener todo en capas.
¡NO UTILICE NIVELES! Las curvas son mucho mejores para graduar valores.
aplanar y guardar en 8 bits.
En cuanto a la pregunta algorítmica, no conozco nada que pueda revertir o "manejar" esto mejor. ¿Esto es para trabajo científico?
Euri Pinhueco