Pregunta

Tengo una imagen en escala de grises de una fotografía.He determinado que ciertas partes de la imagen están subiluminadas y que un píxel con luminancia Y = 0,8 debería ajustarse al 90% de gris, es decir, a ese píxel se le debería dar una luminancia de 0,9.Mi pregunta es ¿Cómo puedo escalar los otros píxeles cercanos? Estoy bastante seguro de que multiplicar todas las luminancias por 9/8 está mal, porque recuerdo vagamente haber escuchado eso para mirar uniforme, la escala tiene que ser no lineal.Pero tengo problemas para encontrar una ecuación que me permita avanzar.(Por supuesto, en realidad estoy escribiendo un programa para realizar este ajuste en muchas fotografías).

La fuente de mis píxeles es el formato pbmplus PGM, sobre el cual la página de manual dice:

Cada valor gris es un número proporcional a la intensidad del píxel, ajustado por el CIE Rec.Función de transferencia gamma 709.(Esa función de transferencia especifica un número gamma de 2.2 y tiene una sección lineal para intensidades pequeñas).Por tanto, un valor de cero es negro.Un valor de MaxVal representa CIE D65 White y el valor más intenso en la imagen y cualquier otra imagen con la que se pueda comparar la imagen.

Si entendiera esto mejor probablemente tendría una mejor idea de cómo proceder.

Encontré una pregunta relacionada en haciendo una imagen de brillo uniforme.


Gracias Shmoopty por encaminarme.Acepté tu respuesta y luego le agregué algo de información.

¿Fue útil?

Solución

probablemente quieras corrección gamma, que mantendrá el verdadero negro y el verdadero blanco. correcto, mientras dobla los valores intermedios.

La fórmula para el ajuste de gamma, cuando la entrada está en el rango (0,0, 1,0) es:

output = pow( input, gamma )

...dónde gamma se aclarará cuando sea inferior a 1,0 y se oscurecerá cuando sea superior a 1,0.

Para llevar 0.8 hasta 0.9, calculas log(0.9)/log(0.8) para obtener una gamma de 0.4722.

Tenga en cuenta que esta es una de muchas fórmulas, y es la matemáticamente más simple que preservará el blanco y el negro como colores únicos (que algunos considerarían importantes); sin embargo, no existe una única fórmula correcta que le indique lo que es "verdadero".


Apéndice:Verifiqué que la corrección gamma se puede aplicar a valores que ya están codificados con gamma.Es difícil anotar las matemáticas en rebajas, pero la ley algebraica clave es

(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a

Si aplica esta ley, puede determinar que las correcciones gamma conmutan, por lo que está bien aplicar la corrección gamma a valores ya corregidos.—NR

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top