A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Macbeth Color Pattern Prof.: Marcelo Gatass Aluno: Felipe Baldino Moreira Fundamentos de Computação Gráfica 1. Semestre de 2013 - Trabalho 0.

Apresentações semelhantes


Apresentação em tema: "Macbeth Color Pattern Prof.: Marcelo Gatass Aluno: Felipe Baldino Moreira Fundamentos de Computação Gráfica 1. Semestre de 2013 - Trabalho 0."— Transcrição da apresentação:

1 Macbeth Color Pattern Prof.: Marcelo Gatass Aluno: Felipe Baldino Moreira Fundamentos de Computação Gráfica 1. Semestre de Trabalho 0

2 O padrão Macbeth gerado O Padrão MacBeth gamma = 1.6/2.4

3 O que foi feito Alterado o arquivo color.c com as constantes passadas pelo professor para o parametro A e D65 do espectro para a conversão para o sistema XYZ. Criada a função de conversão corCIEXYZtosRGB_Bruce que recebe como entrada as cores no sistema CIEXYZ e retorna no sistema sRGB mantendo o iluminante atual e usa a fórmula obtida no site do Bruce Lindbloom. Inserida a variável de ajuste Gamma no programa. Implementada a função de leitura do arquivo corCIEXYZIlumminantA_toD65_XYZScaling – converte o iluminante A para o D65 no espaço de cor XYZ. Apresentado o padrão tanto com o Iluminant A como o D65.

4 corCIEXYZtosRGB_Bruce int corCIEXYZtosRGB_Bruce(float X,float Y, float Z, float* R, float* G, float* B) /*converte XYZ para sRGB, fórmula obtida do site do Bruce LindBloom */ { *R = * X + ( * Y )+ ( ) * Z; *G =( ) * X +( * Y) * Z; *B = * X + ( * Y) * Z; return 1; }

5 gamma_sRGB(double x) static double gamma_sRGB(double x){ /* Retorna o valor da cor x corrigido com a correção gamma */ double ft,t = (x>0)?x:-x; if (t> ) ft = 1.055*pow(t,fVargamma)-0.055; /*código original ft = 1.055*pow(t,1.0/2.4)-0.055; */ else ft = 12.92*t; return (x>0)?ft:-ft; }

6 inv_gamma_sRGB static double inv_gamma_sRGB( float x) { /* Como foi alterada a função da variação gamma, também foi necessário alterar a inv_gamma_sRGB */ double ft,t=(double) (x>0)?x:-x; if ( t > ) ft = pow((t+0.055)/1.055,fVargamma); /*alterado de 2.4 para fVargamma */ else ft = t/12.92; return (x>0)?ft:-ft; }

7 Int corCIEXYZIlumminantA_toD65_XYZScaling(float X,float Y, float Z, float* XX, float* YY, float* ZZ) { double m[3*3] ={ , , , , , , , , }; *XX = (m[0] * X) + (m[1] * Y )+ (m[2] ) * Z; *YY =(m[3] * X) + (m[4] * Y )+ (m[5] ) * Z;; *ZZ = (m[6] * X) + (m[7] * Y )+ (m[8] ) * Z;; return 1; }

8 Learquivo void learquivo(char str[20]) {FILE *arq; float f, fx,fy,fz,fl,fr,fg,fb,fxa,fya,fza,fra,fga,fba; float lpart[lambdacolorsonfile]; char cname[1000]; int i,cnumber,linha,n; for (i=0;i

9 O output do Programa O padrão superior utiliza o Iluminante D65 O Padrão inferior utiliza o iluminante A e o converte para ser exibido no monitor.


Carregar ppt "Macbeth Color Pattern Prof.: Marcelo Gatass Aluno: Felipe Baldino Moreira Fundamentos de Computação Gráfica 1. Semestre de 2013 - Trabalho 0."

Apresentações semelhantes


Anúncios Google