Engenharia Biomédica Processamento de Imagens Marcia A. S. Bissaco 1
Exemplos filtros Média Mediana Passa_B Passa_A Borda_H Borda_V Sobel_Y Sobel_X Oliveira, Henrique J. Quintino (UMC-SP), 2
Media Mediana Passa_B Passa_A 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1 3 1 3 16 3 1 3 1 0-1 0-1 4-1 0-1 0 Oliveira, Henrique J. Quintino (UMC-SP), 3
Template Usado para manipulação da imagem no domínio espacial; É uma máscara usada para realizar operações na vizinhança de um pixel (Gonzalez and Woods, 2002); Matriz cuja célula central é posicionada no pixel de interesse; O pixel de interesse (PI) e os pixels da vizinhança são multiplicados pelos valores nas posições correspondentes da matriz máscara. A soma dos resultados obtidos substitui o valor PI na imagem resultante. 4
Considerando uma máscara de tamanho 3x3 genericamente representada por: w1 w2 w3 w4 w5 w6 w7 w8 w9 xi, i=1,...,9 os valores dos pixels sob a máscara, será atribuído ao pixel central o valor expresso por: R = w1x1 + w2x2 +... + w9x9. 5
Template Usado nas etapas do PDI: Pre-processamento (baixo nível) Visa melhorar a qualidade da imagem; Filtros passa baixa; Segmentação (nível médio) Extração e identificação de áreas de interesse contidas na imagem; Realçar bordas, suprimir detalhes, minimizar ruídos e etc. Filtros passa alta. 6
Segmentação (médio nível) Algumas técnicas utilizadas. Segmentação por: Descontinuidades; Threshold (limiar); Regiões; Texturas. Operações pixel-a-pixel ou orientadas a vizinhança do pixel 7
Segmentação (médio nível) Segmentação por descontinuidades Matrizes de convolução: Recurso muito utilizado que descreve operações como cálculo de gradiente, remoção de ruídos, etc... Pinho, Márcio Sarroglia (PUC-RS), http://www.inf.pucrs.br/~pinho/cg-ppgcc/processamentodeimagens.pdf 8
Após a aplicação de uma matriz de convolução, algumas imagens apresentam regiões com intensidade abaixo de zero ou muito altas. Para manter a imagem válida, utiliza-se um procedimento chamado normalização, que consiste em alterar seus valores para situa-los entre 0 e 255, mas mantendo a mesma proporção de antes. 9 9
Segmentação (médio nível) Segmentação por descontinuidades Segmentação de ponto isolado: Detecta um ponto que se destaca dos demais; É útil para remoção de ruídos e análise de partículas em imagens com fundo constante; Para cada locação do template é calculado o valor da soma dos produtos dos pixels pelos coeficientes dados; Técnica conhecida como filtro passa-alta. -1-1 -1-1 8-1 -1-1 -1 10
Para xi e i=1,..., 9 como valor de um pixel e aplicando o template a partir do canto superior esquerdo, tem-se: - x1 - x2 - x3 - x4 + 8x5 - x6 - x7 - x8 - x9 Em uma área em que a intensidade é constante, a soma será igual a zero. Se a intensidade de x5 é maior que o valor de fundo (ou seja, se é um ponto isolado), a soma será maior que zero e, portanto, este pixel será realçado. Pinho, Márcio Sarroglia (PUC-RS), http://www.inf.pucrs.br/~pinho/cg-ppgcc/processamentodeimagens.pdf Nunes, Fátima. L 11
Segmentação (médio nível) Segmentação por descontinuidades Detecção de Linhas: uso de máscaras para detecção de linhas nas direções horizontal, 45º, vertical e -45º -1-1 -1-1 -1 2-1 2-1 2-1 -1 2 2 2-1 2-1 -1 2-1 -1 2-1 -1-1 -1 2-1 -1-1 2-1 -1-1 2 Horizontais 45 o Verticais -45 o O cálculo do valor do pixel central é realizado conforme já demonstrado. 12
Segmentação (médio nível) Segmentação por descontinuidades Detecção de bordas: Vetor de gradiente (magnitude e direção) Aplica a convolução Verifica se a magnitude é maior que um certo valor 13
Operadores Gradiente O gradiente de uma região é a medida de alguma variação dentro desta região; O método mais comum para obter o gradiente é a derivada do pixel em relação aos seus vizinhos. f = f x f y Sendo que o tamanho deste vetor é dado por: 2 2 1/2 ( f ) +( f ) f = x y 14
O operador pode ser simplificado pelos módulos das diferenças em cada direção f [ ( x5 - x8) 2 + (x5 - x6) 2 ] 1/2 f x5 - x8 + x5 - x6 x1 x2 x3 x4 x5 x6 x7 x8 x9 Ou considerando todas as direções da mascaras 3x3 temos f (x7 + x8 + x9) - (x1 - x2 - x3) + (x3 - x6 - x9) - (x1 - x4 - x7) xi são as posições dos pixel dentro da mascara 15
Imagem Sobel_X Sobel_Y Gx = (x7 + 2x8 + x9) - (x1 + 2x2 + x3) Gy = (x3 + 2x6 + x9) - (x1 + 2x4 + x7) Sendo x5 o pixel sobre o qual está sendo aplicado o operador e os demais são os pixels pertencentes à vizinhança-de-8 dele. Pinho, Márcio Sarroglia (PUC-RS), http://www.inf.pucrs.br/~pinho/cg-ppgcc/processamentodeimagens.pdf 16
Segmentação (médio nível) Segmentação por limiar Limiar único (L): Operação orientada a vizinhança dos pixels; Pinho, Márcio Sarroglia (PUC-RS), http://www.inf.pucrs.br/~pinho/cg-ppgcc/processamentodeimagens.pdf 17
Segmentação (médio nível) Segmentação por limiar Crescimento de região: Consiste em agregar conjuntos de pixels em regiões maiores; Escolhe-se um pixel ou um conjunto de pixels denominados sementes e faz-se o crescimento da região através da agregação de pixels vizinhos às sementes que possuem propriedades similares (intensidade, cor, textura etc); O processo continua até se atingir uma condição préestabelecida de parada, como por exemplo, um determinado nível de cinza ou uma distância específica. 18
Segmentação (médio nível) Segmentação por limiar Crescimento de região: Vantagem: a imagem não precisa ser homogênea, pois as suas características são previamente analisadas e incluídas nos descritores de semelhança; Desvantagens: dificuldade na seleção dos pixels sementes (a aplicação deve ser conhecida); dificuldade no estabelecimento das propriedades de semelhança (a aplicação e os tipos de dados da imagem devem ser conhecidos) e dificuldade na determinação de condições de parada (depende da análise da imagem); 19
Segmentação (médio nível) Combinação de técnicas 20
Combinação de técnicas Borda_H Borda_V Sobel_X Sobel_Y -1-1 1 1-1 1-1 1 1 2 1 0 0 0-1 -2-1 1 0-1 2 0-2 1 0-1 B I N A R I Z A D A S (limiar) Oliveira, Henrique J. Quintino (UMC-SP), 21
Segmentação Exercitando... Usando os softwares ImageJ Filtros: acessar menu: Process > Filters. Imagens (placa, catedral, etc.) Codificando algoritmos... Lazarus, Delphi, entre outros. - Média; - Mediana; - Limiarização; - sobel 22
Exercício 1: Fazer o algoritmo de outra rotina que aplique o gradiente 2x2 na imagem do exercício anterior Roberts Aplicar também os gradientes: Prewitt 1 0 0-1 0 1-1 0-1 -1-1 0 0 0 1 1 1-1 0 1-1 0 1-1 0 1 23
Créditos Conteúdo e imagens foram obtidos em: Apresentações formuladas por: Henrique Jesus Quintino de Oliveira (UMC); Márcio Sarroglia Pinho (PUC-RS); Livros Digital image processing - 2nd ed. / 2001 - Livros - Acervo 43234 GONZALEZ, Rafael C.; WOODS, Richard E.. Digital image processing. 2nd ed. Nova Jersey: Prentice Hall, 2001. 793 p. ISBN 0201180758 Número de Chamada: 621.367 G643d 2. ed. Processamendo Digita de Imagens Hugo Vieira Neto e Ogê Marques. Disponível em: www.dcmm.puc-rio.br/cursos/ipdi 24
Créditos Conteúdo e imagens foram obtidos em: Links http://www.dcmm.puc-rio.br/cursos/ipdi/index_files/frame.html http://www.cbpf.br/cat/pdsi/pdf/cap3webfinal.pdf http://www.cbpf.br/cat/pdsi/visao/index.htm http://www.inf.pucrs.br/~pinho/cg- PPGCC/ProcessamentoDeImagens.pdf http://equipe.nce.ufrj.br/thome/p_grad/nn_img/transp/c4_filtros.pdf http://www.inf.ufrgs.br/~danielnm/docs/filtrosespaciaispassabaixa.pdf 25
Algoritmo: Binarização (único limiar) 1. Considere que x é linha, y é coluna e k é a constante de brilho 2. Definir o limiar (K) 3. Para x = até quantidade_de_linhas_da_imagem faça 4. Para y = 1 até quantidade_de_colunas_da_imagem faça 5. Se A(x,y) < K então 6. C(x,y) = 0 7. Senão 8. C(x,y) = 255 9. Fim_se 10. Fim_para 11. Fim_para 26
Algoritmo: Média 1. Considere que x é linha, y é coluna e k é a constante de brilho 2. Definir o tamanho do template (T) 3. Para y = até quantidade_de_linhas_da_imagem faça 4. Para x = 1 até quantidade_de_colunas_da_imagem faça 5. Soma 0 6. Para j y T/2 até y + T/2 faça 7. Para i x T/2 até x + T/2 faça 8. Soma Soma + A(j,i) 9. Fim_Para 10. Fim_Para 11. C (y,x) soma/(t*t); 12. Fim_para 13. Fim_para 27
Algoritmo: Mediana 1. Considere que x é linha, y é coluna e k é a constante de brilho 2. Definir o tamanho do template (T) 3. Definir vetor (Vet) com (T*T) elementos 4. Para x = até quantidade_de_linhas_da_imagem faça 5. Para y = 1 até quantidade_de_colunas_da_imagem faça 6. Guarda intensidades da vizinhança em VET; 7. Ordena VET; 8. C (y,x) elemento médio de VET ; 9. Fim_para 10. Fim_para 28
Algoritmo: Template 1. Considere que x é linha, y é coluna e k é a constante de brilho 2. Definir o tamanho do template (T) 3. Para x = até quantidade_de_linhas_da_imagem faça 4. Para y = 1 até quantidade_de_colunas_da_imagem faça 5. Soma 0; 6. Ti 0; Tj 0; 7. Para i x T/2 até x + T/2 faça 8. Para j y T/2 até y + T/2 faça 9. Soma Soma + A(i,j) * Template(Ti, Tj) 10. Tj Tj + 1; 11. Fim_Para 12. Ti Ti + 1; 13. Fim_Para 14. C (y,x) soma/(t*t); 15. Fim_para 16. Fim_para (tomar cuidado com bordas da imagem; consistir) 29
Algoritmo: Media de várias imagens 30