Fundamentos de Computação Gráfica Prof.: Marcelo Gattass Mudança da Temperatura de Cor de uma Imagem Hildebrando Trannin Definição Objetivo: implementar um algoritmo para realizar a mudança da temperatura de cor de uma imagem Entrada: imagem com temperatura atual definida e escolha de uma nova temperatura Saída: imagem com nova temperatura Corpo Negro Objeto que absorve toda luz incidente (preto quando está frio) Quando quente, emite radiância proporcional a temperatura Importante propriedade: Um corpo negro a uma temperatura T, emite os mesmos comprimento de onda e intensidade que estaria presente em um ambiente em T. L T 7500 K o T 6500 o K T 5500 o K 250 300 350 400 450 500 550 600 650 700 750 800 Corpo Negro Para encontrar a radiância de um corpo negro a uma temperatura T e em um comprimento de onda λ, usamos a lei de Planck. c15 L e c2 T 1 Temos: c1 = 2πhc2 c2 = hc / k Com c = 2.99792458 x 108 m.s-1 h = 6.626176 x 10-34 J.s k = 1.380662 x 10-23 J.K-1 Utilizamos a fórmula apresentada para encontrar o espectro de luz da nova temperatura da imagem Espectro de radiância Após encontrar o espectro da nova temperatura, devemos convertê-lo para o sistema sRGB a fim de encontrarmos os seus valores em RGB Sistema de cores do monitor: mRGB (sRGB) Etapas de conversão do espectro: Espectro -> XYZ XYZ -> mRGB Espectro -> XYZ 780 Utilizamos as fórmulas ao lado para encontrar os valores X, Y e Z a partir de um espectro de luz. X P ( ) x ( ) d 380 780 Y P ( ) y ( ) d 380 780 Z P ( ) z ( ) d 380 ∫ 2.0 * z ( ) 1.5 x ( ) y ( ) 1.0 0.5 400 500 600 700 (nm) XYZ -> RGB Coordenadas x e y dos fósforos do monitor: x y white 0.3127 0.3290 Após alguns cálculos: R G = B R G B 0.64 0.30 0.15 0.33 0.60 0.06 3.240 -1.537 -0.499 -0.969 1.876 0.042 0.056 -0.204 1.057 X Y Z Ao final dessa etapa já temos os valores em RGB do espectro da nova temperatura de cor Conversão da Temperatura Com o RGB da nova temperatura, encontramos um fator de conversão para cada componente do RGB: FR = R novo / R antigo FG = G novo / G antigo FB = B novo / B antigo Para cada pixel da imagem, foi aplicado o fator em todas as componentes RGB R = FR * R antigo G = FG * G antigo B = FB * B antigo Resultados Esquerda: T original = 2940K Direita: T original = 2940K T destino = 6500K Resultados Esquerda: T original = 5080K Direita: T original = 5450K T destino = 3500K T destino = 3500K Referências Color Vision and Colorimetry Theory and Applications - Daniel Malacara http://www.brucelindbloom.com http://www.graphics.cornell.edu http://www.tecgraf.puc-rio.br/~mgattass http://en.wikipedia.org/wiki/CIE_1931_color_space http://en.wikipedia.org/wiki/SRGB http://www.brucelindbloom.com/index.html?Eqn_Blackbody.html http://en.wikipedia.org/wiki/Blackbody