2. realce de imagens métodos no domínio espacial 2.1 convolução w1w2w3 w4w5w6 w7w8w9 w1w2w3...
TRANSCRIPT
2. Realce de imagens
Métodos no domínio espacial
2.1 Convolução
w1 w2 w3
w4 w5 w6
w7 w8 w9w1 w2 w3
w4 w5 w6
w7 w8 w9
w1 w2 w3
w4 w5 w6
w7 w8 w9
w1 w2 w3
w4 w5 w6
w7 w8 w9
w1 w2 w3
w4 w5 w6
w7 w8 w9
w1 w2 w3
w4 w5 w6
w7 w8 w9
w1 w2 w3
w4 w5 w6
w7 w8 w9
Exemplo de convolução
-1 -1 -1
-1 8 -1
-1 -1 -1
A=
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35
B=
Métodos no domínio espacial
2. Realce de imagens
int Masc3x3[3][3]= { {-1, -1, -1}, {-1, 8, -1},
{-1, -1, -1} };
channels=convolucao->nChannels; step=convolucao->widthStep; data=(uchar *)convolucao->imageData;
for(r=2; r<convolucao->height-2; r++){ for(c=2; c<convolucao->width-2; c++){ //Processamento com Máscara 3x3 somacor = 0; for(m=-1; m<=1; m++){ for(n=-1; n<=1; n++){ NivelCinza = cvGet2D(filtro, r+m, c+n); somacor = somacor + (Masc3x3[m+1][n+1]*NivelCinza.val[0]); }}//fim do FOR m n data[r*step + c*channels] = somacor; //recebe valor de cinza do processo de convolução }}//fim do FOR r c
2.2 Alargamento de contraste
Métodos no domínio espacial
2. Realce de imagens
//Realce de imagens baseado em uma Transformação lineara = 1.0;b = -15.; for(r=0; r<img_transformed->height; r++){ for(c=0; c<img_transformed->width; c++){ Pixel = cvGet2D(Cinza, r, c); nc = a*(Pixel.val[0]) + b; data[r*step + c*channels] = nc; }}
Imagem original Imagem realçada
2.2 Alargamento de contraste (transformação linear)
Métodos no domínio espacial
2. Realce de imagens
//Realce de imagens baseado em uma Transformação lineara = 1.0;b = 25.; for(r=0; r<img_transformed->height; r++){ for(c=0; c<img_transformed->width; c++){ Pixel = cvGet2D(Cinza, r, c); nc = a*(Pixel.val[0]) + b + 0.5; data[r*step + c*channels] = nc; }}
Imagem original Imagem realçada
2.2 Alargamento de contraste (transformação linear)
Métodos no domínio espacial
2. Realce de imagens
2.2 Alargamento de contraste (transformação não linear)
Métodos no domínio espacial
2. Realce de imagens
2.2 Alargamento de contraste
Métodos no domínio espacial
2. Realce de imagens
•
•
2.3 Histograma de Imagens
Métodos no domínio espacial
2. Realce de imagens
Imagem escura
Alto contraste
Baixo contraste
?
Rotina para calcular histograma de imagem
Métodos no domínio espacial
2. Realce de imagens
void histograma(){ long int freq[256]; int max, k1, k2, i, j;
for (i=0; i<256; i++) freq[i] = 0; max = 0; for (i=2; i<larg-2; i++) for (j=2; j<altu-2; j++) { k1 = ImagemEntrada[i][j]; freq[k1]++; if ( freq[k1] > max ) max = freq[k1]; } k1 = round(max / 100.0);
for (i=0; i<256; i++) { k2 = (int) freq[i] / k1; Histograma->MoveTo(i,100); Histograma->LineTo(i,100-k2); }
}
2.3 Equalização de histograma
Métodos no domínio espacial
2. Realce de imagens
Exercício - Dada a Tabela abaixo:
1) Equalizar o histograma2) Montar o histograma não equalizado e equalizado3) Montar a função de transformação utilizada para a equalização
2. Realce de imagens
Histograma não equalizado
Função de Transformação
Solução do exercício anterior
Histograma equalizado
2.4 Limiarização
Métodos no domínio espacial
2. Realce de imagens
2.4 Limiarização
Métodos no domínio espacial
2. Realce de imagens
T = 100
T = 200
2.4 Limiarização
Métodos no domínio espacial
2. Realce de imagens
Tipos de limiar (T)• Global • Local• Adaptativo
Global
Local Adaptativo
(1)
(2)
Relações espaciais
Abertura
• Propriedades:• Suaviza o contorno da imagem
Fechamento
• Propriedades:• Suaviza o contorno da imagem e elimina pequenos buracos na imagem
Abertura e fechamento são duais em relação à complementação e reflexão
Abertura• Propriedades:
• Suaviza o contorno da imagem • A o B é um subconjunto de A
• (A o B) o B = A o B
Fechamento• Propriedades:
• Suaviza o contorno da imagem e elimina pequenos buracos na imagem
• A é um subconjunto de A o B
• (A o B) o B = A o B
Abertura e fechamento são duais em relação à complementação e reflexão
Exemplo de abertura
Convolução de B em A
Exemplo de fechamento
Extração de fronteiras
origem