FEUP 2006/2007 TELEVISÃO DIGITAL Filtragem de Imagens Fixas Nuno Miguel da Cunha Pássaro Nuno Miguel Dantas de Faria nº de aluno: 010503228 email: ee01228@fe.up.pt nº de aluno: 010503160 email: ee01160@fe.up.pt 1 de Novembro de 2006
INDICE 1. Objectivos... 3 2. Introdução... 3 3. Análise... 3 3.1 Filtros Desenvolvidos... 3 3.1.1 Passa-Baixo... 3 3.1.2 Passa-Alto... 4 3.1.3 Passa-Banda... 4 3.1.4 Gaussiano... 4 3.1.5 Laplaciano... 4 3.1.6 Média... 4 3.1.7 Mediana... 4 3.1.8 Sobel... 5 3.1.9 Disk... 5 3.1.10 Canny... 5 4. Conclusão... 6 4.1 Comparação de Resultados... 6 4.1.1 Passa-Baixo... 6 4.1.2 Passa-Alto... 6 4.1.3 Passa-Banda... 7 4.1.4 Gaussiano... 8 4.1.5 Laplaciano... 8 4.1.6 Média... 9 4.1.7 Mediana... 9 4.1.8 Sobel... 10 4.1.9 Disk... 10 4.1.10 Canny... 11 4.2 Conclusões finais... 11 Anexo A... 12 Tutorial do Programa... 12 2
1. Objectivos Este trabalho tem como objectivo a implementação de uma aplicação, em MATLAB, que seja capaz de aplicar filtros a imagens fixas (Passa-Baixo, Passa-Alto, Passa-Banda, Media, Mediana, Laplaciano, Gaussiano, Disk, Canny e Sobel, estes filtros serão descritos mais adiante). 2. Introdução A filtragem de imagens é uma técnica utilizada para remover ruído, realçar contornos e melhorar o contraste em imagens. Este documento discute as distinções básicas entre alguns filtros e os usos para os mesmos. A classificação mais habitual dos filtros baseia-se na sua linearidade e resposta em frequência, é também normal uma terceira classificação que distingue filtros espaciais de filtros no domínio das frequências, onde é aplicada a representação da transformada de Fourier da imagem. Uma forma fundamental de caracterizar filtros é a forma como eles amplificam ou atenuam certas bandas de frequência. Em geral, existem muitos tipos diferentes de respostas em frequência, mas para imagens, a grande categoria de filtros Passa- Baixo e de filtros Passa-Alto são suficientes, tendo em conta que de uma forma ou outra, dependendo dos parâmetros que são introduzidos, um filtro Passa-Banda pode operar como filtro Passa-Baixo ou Passa-Alto. Os filtros Passa-baixo são usados para operações de remoção de ruído ou para suavizar a imagem. Os filtros Passa-Alto respondem a mudanças abruptas da intensidade de luz numa imagem, por isso são utilizados no realce de detalhes na imagem, como contornos. A desvantagem dos filtros Passa-Alto é que têm tendência a ampliar o ruído de alta-frequência em conjunto com os detalhes de interesse. É de notar que a resposta em frequência pode ser usada para classificar os filtros espaciais e os que trabalham no domínio das frequências. Os filtros espaciais alteram os valores dos pixeis pela variação da intensidade de luz nas suas vizinhanças, enquanto que os filtros que operam no domínio das frequências, filtram imagens que sofreram uma transformada de Fourier (por DFT ou FFT). 3. Análise 3.1 Filtros Desenvolvidos: 3.1.1 Passa-Baixo O Passa-Baixo atenua as altas frequências, como qualquer filtro quanto maior a ordem maior é a atenuação das frequências superiores à sua frequência de corte. A atenuação das altas frequências causa uma suavização da imagem mas para uma dada frequência de corte se a ordem for muito grande a qualidade da imagem degradar-se-á, torna-se imperceptível. 3
3.1.2 Passa-Alto O filtro Passa-Alto atenua as baixas frequências. Estes filtros permitem a detecção de contornos ao atenuar as mudanças lentas de cores. Verificou-se que para frequências de corte altas, próximas de 1, só as alterações mais bruscas é que não eram filtradas. É de notar que tal como o filtro Passa-Baixo se a ordem é muito alta, para uma dada frequência, a qualidade da imagem diminui significativamente. 3.1.3 Passa-Banda Este filtro tem um comportamento que se assemelha a um filtro Passa-Baixo quando a sua frequência de corte inferior se encontra no intervalo ]0;0,1] e a sua frequência superior de corte vai até valores próximos de 0,4. O filtro Passa-Banda teve uma resposta do tipo Passa-Alto quando a sua frequência superior de corte estava no intervalo [0,7;0[ e a sua frequência inferior de corte se situa com valores próximos de 0.4. 3.1.4 Gaussiano Este filtro é do tipo Passa-Baixo, ou seja, suaviza a imagem. Quanto maior o desvio padrão que é inserido para o cálculo do filtro mais notória se torna a suavização da imagem. A ordem utilizada deve ser escolhida consoante a imagem a filtrar e tal como para a ordem de um filtro Passa-Baixo, deve ter um valor que não afecte negativamente a qualidade da imagem. 3.1.5 Laplaciano Filtro do tipo Passa-Alto, aceita como parâmetro alpha, é um filtro que detecta contornos de forma eficaz. O parâmetro pode ser variado no intervalo [0;1] e a sua escolha depende apenas da definição que se pretende, não há grande inconvenientes na sua variação. No global, este filtro funciona como uma boa ferramenta para a obtenção de contornos. 3.1.6 Média Filtro do tipo Passa-Baixo. A suavização da imagem é conseguida através da variação da janela utilizada, quanto maior é a dimensão da janela ( ordem na aplicação implementada) maior é a suavização conseguida à custa de qualidade da imagem. Mais uma vez a escolha do valor do parâmetro depende apenas do resultado desejado, mas se o objectivo for a eliminação do ruído com a mínima perda de qualidade da imagem este filtro consegue um resultado satisfatório. 3.1.7 Mediana Filtro do tipo Passa-Baixo. Tem como objectivo a suavização da imagem original, que será tanto maior quanto maior for o tamanho da janela utilizada. A implementação do filtro Mediana atribui a cada ponto visitado o valor mediano da janela utilizada. Comparativamente com o filtro Média, o filtro Mediana apresenta 4
melhores resultados, pois para além de eliminar o ruído, as orlas são preservadas com maior qualidade do que com o filtro Média. 3.1.8 Sobel O filtro Sobel é um filtro não-linear para realçar bordas e representa uma aproximação à função de Sobel. É um filtro que apresenta uma grande imunidade ao ruído. O tamanho da janela (3 x 3) não pode ser mudado. Este processo consiste na convolução de uma janela para detectar as orlas horizontais. Paralelamente passa-se a janela transposta. A imagem final é a média desses dois resultados intermédios. A aplicação deste filtro pode, muitas vezes, produzir bordas artificiais, o que representa uma desvantagem, pois pode confundir o utilizador. 3.1.9 Disk Este filtro é do tipo Passa-Baixo com uma matriz quadrada de ordem 2*Raio +1, onde será o Raio o parâmetro variante. Após vários testes efectuados, chegou se à conclusão que a suavização de uma imagem depende directamente do Raio. Quanto maior ou menor o Raio, maior ou menor será a suavização da imagem de origem. 3.1.10 Canny O detector de orlas de Canny é um filtro de convolução f muito mais resistente ao ruído do que os outros filtros. Este método difere dos outros filtros detectores de orlas, pois usa dois thresholds diferentes, um para contornos fortes e outro para contornos fracos. Este método baseia se em procurar por máximos no gradiente da imagem que se pretende analisar,cujo gradiente foi obtido a partir da derivada de um filtro Gaussiano. Este filtro foi implementado recorrendo a uma função edge, passando lhe como argumento cada uma das imagens de cada componente de cor seleccionada. Uma vez que a imagem de saída era uma imagem binarizada, tivemos de optar por utilizar um facto multiplicativo de modo a ser possível colocar na saída uma imagem a cores. A intensidade de cada componente é nos dada por esse facto multiplicativo. 5
4. Conclusão 4.1 Comparação de Resultados Filtros Aplicados: 4.1.1 Passa-Baixo Ordem: 10 Frequência de corte: 0.3 A imagem original sofre uma suavização nas transições de cor. Ruído e brilho que torna a imagem original mais texturizada desaparecem e a imagem torna-se mais suave. 4.1.2 Passa-Alto Ordem: 10 Frequência de Corte:0.4 6
Os contornos foram realçados, como era esperado, mas o ruído introduzido na imagem devido à reflexão da luz na água não foi eliminado e torna o realce dos contornos na zona onde a àgua está presente difícil. 4.1.3 Passa-Banda Ordem: 10 Frequência Superior de Corte: 0.4 Frequência Inferior de Corte: 0.05 Tal como o referido no ponto 3.1.3 o comportamento verificado para uma frequência superior de corte no intervalo ]0;0,1] e uma frequência inferior de corte próxima de 0.4 é similar ao de um filtro Passa-Baixo. Ordem: 10 Frequência Superior de Corte: 0.5 Frequência Inferior de Corte: 0.4 Aqui pode se ver que em comparação com o filtro Passa-Alto a utilização do filtro Passa Banda na detecção de orlas tem vantagens pela possibilidade de se poder 7
eliminar as mais altas frequencias que são responsáveis pelo ruído originário da reflexão da luz na água. A imagem filtrada em comparação com a do ponto 4.1.3 tem melhor definição das orlas. 4.1.4 Gaussiano Desvio padrão: 1 Ordem: 5 Este filtro tem resposta melhor que o filtro Passa-Baixo mas inferior ao Passa- Banda. Podemos verificar que imagem fica suavizada sem a perda significativa de qualidade. 4.1.5 Laplaciano Alpha: 1 Neste filtro podemos verificar que a imagem filtrada em comparação com a imagem filtrada num filtro Passa-Banda tem mais ruído, apesar de nas zonas onde não 8
existe ruído os contornos têm mais definição, nas zonas com ruído a distinção dos contornos torna se dificil. 4.1.6 Média Ordem: 3 Este filtro é eficaz na suavização de imagens e eliminação de ruído pela versatilidade e simplicidade que apresenta, é possivel, através da manipulação da ordem, conseguir vários graus de suavização conseguindo se resultados muito positivos. 4.1.7 Mediana Ordem: 3 Este filtro tem uma resposta muito semelhante ao filtro média. 9
4.1.8 Sobel Este filtro consegue uma boa detecção de contornos, comparativamente com os filtros referidos anteriormente os contornos estão bastante salientados. Continua-se a verificar que o ruído originário pela reflexão da luz na água continua a afectar a qualidade da imagem filtrada. 4.1.9 Disk Raio: 2 Este filtro, do tipo Passa-Baixo, é extremamente poderoso na suavização de imagens. Como se pode ver, pela comparação directa entre a imagem original e a imagem filtrada, com apenas duas vezes o valor unitário do raio, conseguiu-se uma alta suavização mas em contra partida a qualidade da imagem perde-se e a imagem perde muito promenor. 10
4.1.10 Canny Desvio padrão: 1 O filtro Canny consegue realçar os relevos com eficácia e apesar da presença de ruído proveniente da reflexão da luz na água é possível detectar onde esta o contorno adjacente à agua. Este filtro n elimina o ruído mas consegue separar eficazmente os píxeis que representam contorno dos que são indesejáveis 4.2 Conclusões finais Após implementação e teste em várias imagens, variando possíveis parâmetros de entrada, de todos os filtros, estamos em condições de opinar sobre os que apresentam melhores resultados. Nesta aplicação foram testados dois tipos de filtros. Os filtros Passa-Baixo e os filtros Passa-Alto. Comparando o desempenho de todos os filtros do tipo Passa-Baixo (suavizam a imagem original e eliminam ruído) podemos afirmar, segundo o que foi verificado experimentalmente com esta aplicação, que o filtro que apresenta melhores resultados é o filtro Gaussiano, pois consegue suavizar a imagem e ao mesmo tempo manter a imagem próxima da imagem original. Em contrapartida, o filtro Passa-Baixo é o filtro que apresenta piores resultados, pois torna a imagem muito desfocada. Em termos de capacidade de eliminação de ruído e de suavização o filtro Disk mostrou ser extremamente eficaz. Nos filtros do tipo Passa-Alto (detectar contornos), o que se mostrou mais eficaz foi o filtro Canny, mas é de notar que o filtro Sobel consegue em certos tipos de imagem uma definição maior, perdendo para o Canny quando a imagem filtrada tem zonas com alta luminância. Pelo contrário, o filtro Passa-Alto, aparenta ser o filtro menos eficaz no que toca a detectar contornos, pois por vezes os contornos são pouco acentuados ocorrendo situações em que não estão completamente definidos. 11
Anexo A Tutorial do Programa Este tutorial tem como objectivo ajudar possíveis utilizadores na compreensão da nossa aplicação bem como no manuseamento da mesma. Após abir a pasta Filtragem de imagens fixas e com a ajuda do Matlab, executar o ficheiro filtragem.m, surge a seguinte interface gráfica: Fig 1. 12
A primeira questão que se coloca ao iniciar a aplicação é : Como se insere uma imagem? Clicar na janela da interface gráfica Inserir imagem. Seleccionar a imagem pretendida. Após esta primeira dúvida estar esclarecida surge uma segunda questão: Como se utiliza o campo central da interface gráfica? O primeiro parâmetro a ser escolhido nesse quadro é o tipo de filtro que pretendemos aplicar a cada componente RGB. Consoante o tipo de filtro escolhido para cada componente, procede se à escolha dos parâmetros de entrada que caracterizam cada filtro, como se pode ver na Fig 2.Esses mesmos parâmetros estão sujeitos a restrições. Para isso,foi criado um botão Ajuda que nos elucida um pouco melhor sobre que restrições existentes e para que filtros se aplica essas restrições. Fig 2. Após selecção e a configuração de cada filtro, é possível seleccionar se a imagem filtrada irá ser mostrada a cores, a níveis de cinzento ou binarizada. Para isso, basta seleccionar no botão Cores o modo como se pretende visualizar. 13
É possível ainda escolher o espaço de representação da imagem original. Para isso basta clicar no botão RGB e seleccionar se se pretende o espaço de representação RGB ou o espaço de representação HSV. Uma vez que todos os parâmetros iniciais estão escolhidos, procede-se então à Filtragem da imagem: Após se clicar no botão Filtragem, deverá aparecer na interface gráfica os resultados da filtragem. Pode se constatar a partir da Fig 3 e da Fig 4 que é possível visualizar, para além da imagem filtrada, os gráficos dos coeficientes dos filtros de cada componente, bem como os gráficos de resposta em frequência. Em todos estes gráficos e uma vez que a sua visualização não é a melhor, existe um botão Zoom In cuja função consiste em ampliar o gráfico. Fig 3. 14
Fig 4. É possível ainda visualizar a partir do botão Componente O/F, as componentes originais e filtradas de cada componente RGB, separadamente. 15
Fig 5. Para sair da aplicação, basta clicar no botão Sair. 16