image - suavizado - Fórmula de corrección de gamma:. ^(gamma) o. ^(1/gamma)?
que es gamma en los juegos (2)
Estoy buscando una fórmula de corrección de gamma simple para imágenes en escala de grises con valores entre 0 y 255.
Digamos que la gamma de mi pantalla es 2.2 (es una pantalla LCD, así que probablemente necesitaría estimarla con un procedimiento más complicado, pero supongamos que mi pantalla se está comportando muy bien).
¿Cuál de las siguientes fórmulas sería la correcta?
(1) Corregido = 255 * (Imagen / 255). ^ 2.2
O
(2) Corregido = 255 * (Imagen / 255). ^ (1 / 2.2)
(Están destinados a ser códigos matlab, pero espero que sean comprensibles incluso para las personas que no son matlab)
He estado buscando en internet pero encontré ambas fórmulas dando vueltas. Sospecho que (2) es la correcta, y mi confusión se debe a la tendencia a llamar "valor gamma" al inverso del valor gamma real, pero realmente agradecería algunos comentarios de personas que saben de lo que están hablando. .
Gracias :-)
Se usan ambas fórmulas, una para codificar gamma y otra para decodificar gamma.
La codificación gamma se utiliza para aumentar la calidad de los valores de sombra cuando una imagen se almacena como valores de intensidad enteros, por lo que para realizar la codificación gamma se utiliza la fórmula:
encoded = ((original / 255) ^ (1 / gamma)) * 255
La decodificación gamma se usa para restaurar los valores originales, por lo que la fórmula para eso es:
original = ((encoded / 255) ^ gamma) * 255
Si el monitor realiza la decodificación gamma, desearía usar la primera fórmula para codificar los datos de la imagen.
La corrección gamma controla el brillo general de una imagen. Las imágenes que no se corrigen pueden verse decoloradas o demasiado oscuras. Supongamos que un monitor de computadora tiene una función de potencia 2.2
como una curva de intensidad a respuesta de voltaje. Esto solo significa que si envía un mensaje al monitor que un píxel determinado debe tener una intensidad igual a x
, en realidad mostrará un píxel que tiene una intensidad igual a x 2.2 Debido a que el rango de voltajes enviados al monitor está entre 0
y 1
, esto significa que el valor de intensidad mostrado será menor de lo que usted quería que fuera. Dicho monitor se dice que tiene un gamma de 2.2
.
Así que en tu caso,
Corrected = 255 * (Image/255)^(1/2.2).