Anda di halaman 1dari 6

Curva de Distribuição

Espectral.

Trabalho 1 de Fundamentos de Computação Gráfica


Pontifícia Universidade Católica do Rio de Janeiro
Prof. Marcelo Gattass
Data: 11/07/2006

Aluno: Mário Pimenta Schettini Pacheco - 0611921


Introdução
Este trabalho visa construir uma curva de distribuição espectral que mostrará decomposição de uma
cor específica em seus comprimentos de onda representados por colunas. Cada coluna impressa no
gráfico buscará uma proximidade de cor com o seu respectivo comprimento de onda.

Além desta curva este trabalho mostrará uma representação da cor em questão em sRGB e também
uma outra representação, também em sRGB, da diferença entre a cor real e a cor mostrada.

Sistemas de Cores
Alguns Conceitos Importantes

Embora a percepção de cor do ser humano pareça ser simples, poderíamos supor que nossos olhos
captam as cores da seguinte forma:

R = ∫ c(λ )r (λ )dλ G = ∫ c(λ ) g (λ )dλ B = ∫ c(λ )b(λ )dλ

Mas não é assim que realmente acontece.

Nossos olhos possuem células especiais chamadas cones (responsáveis pela cor) e bastonetes (não
interpretam cores). Os cones são ainda de 3 tipos diferentes, cada um sensível às cores R ou G ou B
conforme a seguinte curva (obtida experimentalmente):

.20
g(λ)
.18
.16 r(λ)
Fração de luz absorvida

.14
por cada cone

.12
.10
.08
.06
.04
b(λ)
.02
0
400 440 480 520 560 600 640 680 λ
Comprimento de onda (nm)

Para efeito de representação de cores podemos usar o padrão CIEE XYZ (CIE 1931). Uma
observação importante é que neste modelo, o Y foi escolhido para acompanhar a curva do verde na
percepção do olho humano (luminância - Y(λ)):
2.0
(λ)
Z(λ)
1.8
C(λ ) = X(λ) X + Y(λ) Y + Z(λ) Z
1.6
1.4
1.2 (λ)
X(λ)
Valor (λ)
Y(λ)
1.0
0.8
0.6
0.4 (λ)
X(λ)
0.2

400 500 600 700


λ
(nm)

Descrição do Programa
Entrada de dados

Este programa lê arquivos em formato CSV que possui 2 colunas de dados. A primeira coluna diz
do comprimento de onda (λ) e a segunda coluna se refere à intensidade deste comprimento de onda.

O arquivo COR.CSV fornecido é a representação da cor D65. Segue um exemplo dos valores deste
arquivo:

380,49.975500
381,50.442800
382,50.910000
383,51.377300
(...)
777,64.409600
778,64.067300
779,63.725100
780,63.382800

Também foram criados 2 outros arquivos de nome COR2.CSV e COR3.CSV que possuem
concentração de 470 à 520nm (de azul para verde) e de 650 à 700 nm (vermelho) que mostram as
condições que apresentam diferença entre a cor real e a sRGB.

O programa TRAB1.EXE deve ser executado passando-se como parâmetro o nome do arquivo csv
que se deseja apresentar. Por padrão, caso nenhum arquivo não seja fornecido o programa tenta
acessar o arquivo COR.CSV.
Exemplos de Curva de Distribuição Espectral

Distribuição Espectral – 1 coluna


Cor original representada
para cada cor de λ = 380 até 780nm em sRGB

Diferença entre a
cor real e a sRGB
em sRGB

Este exemplo é o resultado de se chamar o programa passando como parâmetro o arquivo


COR.CSV:

Exemplo da saída do arquivo de dados COR2.CSV onde podemos observar a concentração na faixa
de azul para o verde, a cor final aproximada pelo sistema sRGB e a diferença entre a cor real e a
apresentada.

Mensagem apresentada na janela de console:

C:\ >trab1 COR.CSV

F2 -> Liga/ desliga fix de Luminancia


+ - -> Aumenta/diminui fator de luminancia

F3 -> Liga/Desliga NORMALIZE


ESC-> Sai do Programa
Parametro: nome do arquivo CSV, se omitido,
o arquivo a ser aberto sera COR.CSV

A tecla F2 liga e desliga o recurso de fix de luminância, que, quando ligado, poderá ser aumentado
e diminuído pelas teclas + e – do teclado.

A Tecla F3 faz uma normalização do gráfico para que as cores nos extremos do gráfico sejam
imrpimíveis usando-se uma cor que, mesmo não sendo fiel à real (que não pode ser representada
pelo dispositivo) é aproximada por uma mais próxima (repetindo as cores visíveis nas bordas até
final do gráfico).

Descrição dos passos executados pelo programa

Passo 1: Leitura do arquivo externo de cor;

Passo 2: Normalização dos valores lidos: função: corNormalizarIntensidade();

Passo 3: Mostrar gráfico de distribuição espectral (comandos OpenGL na função disblay_cb() );

Passo 4: Mostrar retângulos da cor original e de diferença (final da função disblay_cb() );


Bibliografia
Notas de Aula Prof. Marcelo Gattass
FCG2006 – http://www.tecgraf.puc-rio.br/~mgattass/

Índice
Introdução ............................................................................................................................................2
Sistemas de Cores ................................................................................................................................2
Alguns Conceitos Importantes .........................................................................................................2
Descrição do Programa ........................................................................................................................3
Entrada de dados ..............................................................................................................................3
Exemplos de Curva de Distribuição Espectral.................................................................................4
Descrição dos passos executados pelo programa.............................................................................5
Bibliografia ..........................................................................................................................................6
Índice....................................................................................................................................................6