180 likes | 342 Views
Fundamentos de Computação Gráfica Prof. Marcelo Gattass. Temperatura e Ajuste de Cor. Guilherme Schirmer de Souza. Introdução.
E N D
Fundamentos de Computação Gráfica Prof. Marcelo Gattass Temperatura e Ajuste de Cor Guilherme Schirmer de Souza
Introdução • O objetivo dessa apresentação é fazer uma breve descrição teórica do segundo trabalho da disciplina de Fundamentos de Computação Gráfica além de mostrar os resultados obtidos. • O trabalho consistia em transformar uma imagem em uma determinada temperatura de cor para outra. Além disso, também era proposto no trabalho a correção do RGB da imagem de acordo com o color checker existente na mesma.
Temperatura de Cor • Os materiais emitem radiação quando aquecidos a uma determinada temperatura. A distribuição espectral dessa radiação depende da temperatura e da natureza do corpo emissor. Um corpo negro é um emissor de energia radiante, cuja distribuição espectral dessa energia depende apenas da temperatura. • A temperatura de cor de uma luz visível é determinada pela comparação de sua cromaticidade com um corpo negro emissor de energia radiante ideal.
A tabela abaixo mostra a correspondência de alguns tipos de luz visível com a temperatura de emissão de radiação de alguns corpos negros.
Cromaticidade da Temperatura de Cor • Para poder transformar uma temperatura de cor em outra, primeiramente é necessário obter a cromaticidade do branco da temperatura de cor inicial. Esses valores são obtidos através das seguintes equações:
Após isso, esses valores devem ser convertidos para a base XYZ: • Dessa forma são obtidas as cores das temperaturas de cor de início e de destino na base XYZ.
Conversão da Imagem • O processo de conversão de todos os pontos das imagem de uma temperatura de cor para outra é o seguinte: Ponto RGB RGB->XYZ BradFord XYZ->RGB Novo Ponto RGB
O processo de conversão de um ponto no RGB para XYZ se dá pelo seguinte processo: RGB -> XYZ var_R = ( R / 255 ) //R = From 0 to 255var_G = ( G / 255 ) //G = From 0 to 255var_B = ( B / 255 ) //B = From 0 to 255if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4else var_R = var_R / 12.92if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4else var_G = var_G / 12.92if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4else var_B = var_B / 12.92var_R = var_R * 100var_G = var_G * 100var_B = var_B * 100//Observer. = 2°, Illuminant = D65X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505
O método de Bradford é um método de adaptação cromática que consiste em uma transformação linear de uma cor de origem na base XYZ para uma cor de destino na mesma base. Essa transformação leva em conta o branco padrão de cada temperatura (origem e destino) para fazer essa conversão. Assim, temos: Método de BradFord
onde (Xs, Ys, Zs) é a cor de origem e (Xd,Yd,Zd) é a cor de destino, (Xws, Yws, Zws) é a cor da temperatura de cor da origem e (Xwd, Ywd, Zwd) é a cor da temperatura de cor de destino. [Ma] e [Ma]-1 são as matrizes constantes de Bradford para a conversão:
O processo de conversão de um ponto XYZ para o RGB se dá da seguinte forma: XYZ->RGB ref_X = 95.047 //Observer = 2°, Illuminant = D65ref_Y = 100.000ref_Z = 108.883var_X = X / 100 //X = From 0 to ref_Xvar_Y = Y / 100 //Y = From 0 to ref_Yvar_Z = Z / 100 //Z = From 0 to ref_Yvar_R = var_X * 3.2406 + var_Y * -1.5372 + var_Z * -0.4986var_G = var_X * -0.9689 + var_Y * 1.8758 + var_Z * 0.0415var_B = var_X * 0.0557 + var_Y * -0.2040 + var_Z * 1.0570if ( var_R > 0.0031308 ) var_R = 1.055 * ( var_R ^ ( 1 / 2.4 ) ) - 0.055else var_R = 12.92 * var_Rif ( var_G > 0.0031308 ) var_G = 1.055 * ( var_G ^ ( 1 / 2.4 ) ) - 0.055else var_G = 12.92 * var_Gif ( var_B > 0.0031308 ) var_B = 1.055 * ( var_B ^ ( 1 / 2.4 ) ) - 0.055else var_B = 12.92 * var_BR = var_R * 255G = var_G * 255B = var_B * 255
Ajuste de Cor (ou balanço de cor) é o ajuste das relativas quantidades de vermelho, verde e azul em uma imagem, de forma que as cores neutras sejam reproduzidas corretamente. Para ajustar as cores de uma determinada imagem basta utilizar o seguinte método: Ajuste de Cor
onde RGB é cor balanceada e R’G’B’ é a cor a ser ajustada. A cor (R’w, G’w, B’w) é cor da imagem escolhida como branco, e serve como base para o balanceamento das outras. Esse branco geralmente é obtido de um determinado color-checker.
Color checker é um quadro com 24 cores que representam objetos naturais de grande interesse como pele humana e o céu azul por exemplo. Esse quadro serve como um padrão objetivo para determinar o balanço de cor de qualquer sistema de cor, ajudando a determinar as diferenças de reprodução de cor (vide Figura 1). Color Checker Figura 1
Conversão de uma imagem da temperatura de cor de 2940K para 5450K. Resultados
Referências • Notas de aula. • http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html • http://www.hi-def.com/colorTemp.html • http://en.wikipedia.org/wiki/Color_temperature • http://en.wikipedia.org/wiki/Planckian_locus • http://en.wikipedia.org/wiki/White_balance • http://www.babelcolor.com/main_level/ColorChecker.htm#ColorChecker_data
http://usa.gretagmacbethstore.com/index.cfm/act/Catalog.cfm/catalogid/1742/category/ColorChecker%20Charts/browse/null/MenuGroup/__Menu%20USA%20New/desc/ColorChecker.htmhttp://usa.gretagmacbethstore.com/index.cfm/act/Catalog.cfm/catalogid/1742/category/ColorChecker%20Charts/browse/null/MenuGroup/__Menu%20USA%20New/desc/ColorChecker.htm • Gomes, Jonas; Velho, Luiz. Computação Gráfica:Imagem. 2ª Edição. Rio de Janeiro, IMPA, 2002.