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

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

Trabalho de Imagem Felipe Baldino Moreira Prof: Marcelo Gatass.

Apresentações semelhantes


Apresentação em tema: "Trabalho de Imagem Felipe Baldino Moreira Prof: Marcelo Gatass."— Transcrição da apresentação:

1 Trabalho de Imagem Felipe Baldino Moreira Prof: Marcelo Gatass.
Disciplina Fundamentos de Computação Gráfica

2 Comandos para utilizar o programa
Esc – Sai ‘o’ - Recarrega a imagem original ‘b’ – Converte a imagem em Puro Preto e Branco 'g‘ – Converte a Imagem em Tons de Cinza. 'G‘ – Aplica o Filtro de Gauss 's‘ – Aplica o Filtro de Sobel 'i‘ – Inverte as cores da Imagem

3 Converte a imagem em Puro Preto e Branco
A imagem é decomposta em tons de cinza e então, caso o pixel tenha a cor maior que um threshold (que no caso foi utilizado 0,25) o pixel fica Branco e Preto caso contrário. Segue o Algoritmo aplicado a cada pixel: r=r*0.299; g=g*0.587; b=b*0.144; r=r+g+b; if (r<0.25) r=0.0; else r = 1.0; g=r; b=r;

4 Inverte as cores da Imagem
A imagem tem suas cores invertidas como se fosse um negativo. Cada cor que compõe o pixel tem seu valor subtraído de um. Segue o Algoritmo aplicado a cada pixel: r=1-r; g=1-g; b=1-b;

5 Converte a imagem Tons de Cinza
É feita uma correlação entre as cores, de modo que elas somadas representem o tom de cinza esperado para o pixel. Neste caso, o vermelho (r) é multiplicado por 0.299, o Verde (g) por e o azul (b) por r=r*0.299; g=g*0.587; b=b*0.144; r=r+g+b; Após esta correção não é possível mais se visualizar as cores, e todas parecem como tons de cinza.

6 Converte a imagem Tons de Cinza
É feita uma correlação entre as cores, de modo que elas somadas representem o tom de cinza esperado para o pixel. Neste caso, o vermelho (r) é multiplicado por 0.299, o Verde (g) por e o azul (b) por r=r*0.299; g=g*0.587; b=b*0.144; r=r+g+b; Após esta correção não é possível mais se visualizar as cores, e todas parecem como tons de cinza.

7 Filtro de Gauss É feita aplicação da matriz gaussinana na imagem e seu resultado é que a imagem fica borrada. Segue a definição da Matriz gaussiana : #define det 4.0 float gaussianfilter[3][3]={(1.0/det,2.0/det,1.0/det),(2.0/det,4.0/det,2.0/det),(1.0/det,2.0/det,1.0/det)};

8 Void applygaussian(void) int i,j,ii,jj; double r,rr,g,gg,bb,b,gbuffer[3]; RgbImage Imagem_final(filename); unsigned char *img; img= (unsigned char *) Imagemoriginal->ImageData(); for(i=1;i<Imagemoriginal->GetNumRows()-1;i++) { for(j=1;j<Imagemoriginal->GetNumCols()-1;j++) gbuffer[0]=0.0f; gbuffer[1]=0.0f; gbuffer[2]=0.0f; for (ii=0;ii<3;ii++) for(jj=0;jj<3;jj++) Imagemoriginal->GetRgbPixel(i+ii-1,j+jj-1,&rr,&gg,&bb); gbuffer[0]=gbuffer[0]+gaussianfilter[ii][jj]*rr; gbuffer[1]=gbuffer[1]+gaussianfilter[ii][jj]*gg; gbuffer[2]=gbuffer[2]+gaussianfilter[ii][jj]*bb; } Imagem_final.SetRgbPixelf(i,j,gbuffer[0],gbuffer[1],gbuffer[2]);

9 Filtro de Sobel É um filtro utilizado para detectar contornos.
Este filtro ressalta os contornos das imagens. Utiliza duas matrizes, uma para o eixo X e outra para o eixo y listadas abaixo. float Gx[3][3]={(1.0,0.0,-1.0),(2,0,-2),(1.0,0,-1.0)}, Gy[3][3]={(1.0,2.0,1.0),(0,0,0),(-1.0,-2.0,-1.0)};

10 void applysobel(void) { int i,j,ii,jj; double r,rr,g,gg,bb,b,gbufferx[3],gbuffery[3],GX,GY; RgbImage Imagem_final(filename); unsigned char *img; img= (unsigned char *) Imagemoriginal->ImageData(); for(i=1;i<Imagemoriginal->GetNumRows()-1;i++) { for(j=1;j<Imagemoriginal->GetNumCols()-1;j++) {gbufferx[0]=0.0f; gbufferx[1]=0.0f; gbufferx[2]=0.0f; gbuffery[0]=0.0f; gbuffery[1]=0.0f; gbuffery[2]=0.0f; for (ii=0;ii<3;ii++) { for(jj=0;jj<3;jj++) { Imagemoriginal->GetRgbPixel(i+ii-1,j+jj-1,&rr,&gg,&bb); gbufferx[0]=gbufferx[0]+Gx[ii][jj]*rr; gbufferx[1]=gbufferx[1]+Gx[ii][jj]*gg; gbufferx[2]=gbufferx[2]+Gx[ii][jj]*bb; gbuffery[0]=gbuffery[0]+Gy[ii][jj]*rr; gbuffery[1]=gbuffery[1]+Gy[ii][jj]*gg; gbuffery[2]=gbuffery[2]+Gy[ii][jj]*bb; } for(jj=0;jj<3;jj++) { gbufferx[jj]=gbufferx[jj]*gbufferx[jj]; gbuffery[jj]=gbuffery[jj]*gbuffery[jj]; } } Imagem_final.SetRgbPixelf(i,j,sqrt(gbufferx[0]-gbuffery[0]),sqrt(gbufferx[1]-gbuffery[1]),sqrt(gbufferx[2]-gbuffery[2]));


Carregar ppt "Trabalho de Imagem Felipe Baldino Moreira Prof: Marcelo Gatass."

Apresentações semelhantes


Anúncios Google