Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens...

32
0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - [email protected] Filipe Tiago Alves de Magalhães - [email protected] Porto, 20 de Novembro de 2005

Transcript of Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens...

Page 1: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

0

Televisão digital – EEC5270 Relatório

Filtragem de imagens fixas

usando Matlab

Bruno Filipe Sobral de Oliveira - [email protected] Filipe Tiago Alves de Magalhães - [email protected]

Porto, 20 de Novembro de 2005

Page 2: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

i

Índice

Índice i

1. Introdução 3

1.1 Enquadramento ................................................................................................................... 3

1.2 Objectivos ........................................................................................................................... 3

1.3 Fundamentos teóricos.......................................................................................................... 3

2. Análise e especificação 5

2.1 Funcionamento e funcionalidades do programa.................................................................. 5

2.2 Filtros implementados......................................................................................................... 7

2.2.1 Filtro Passa-Baixo......................................................................................................... 7

2.2.2 Filtro Passa-Alto ........................................................................................................... 7

2.2.3 Filtro Passa-Banda........................................................................................................ 8

2.2.4 Filtro Gaussiano............................................................................................................ 8

2.2.5 Filtro Laplaciano........................................................................................................... 9

2.2.6 Filtro de média............................................................................................................ 10

2.2.7 Filtro Unsharp............................................................................................................. 11

2.2.8 Filtro Mediana ............................................................................................................ 11

2.2.9 Filtro de Sobel e de Prewitt ........................................................................................ 12

2.2.10 LoG (Laplacian of Gaussian)...................................................................................... 13

2.2.11 Filtro Disk................................................................................................................... 14

2.2.12 Filtro High-Boost........................................................................................................ 15

2.2.13 Filtro Canny................................................................................................................ 17

2.2.14 Filtro Roberts.............................................................................................................. 18

3. Comentários finais 21

Apêndice A 24

�Tutorial de como usar o programa ......................................................................................... 25

Page 3: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

II ERRO! NÃO EXISTE NENHUM TEXTO COM O ESTILO ESPECIFICADO

NO DOCUMENTO.: ERRO! ESTILO NÃO DEFINIDO.

ii

Page 4: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

3

1. Introdução

1.1 Enquadramento

O trabalho descrito neste relatório enquadra-se no âmbito da disciplina de Televisão Digital -

EEC5270, da Licenciatura em Engenharia Electrotécnica e de Computadores.

1.2 Objectivos

Pretendeu-se com este trabalho implementar uma aplicação capaz de efectuar filtragem de imagens

fixas utilizando um programa implementado em Matlab.

1.3 Fundamentos teóricos

A filtragem é um método amplamente utilizado no processamento de imagem, tendo vários propósitos,

como por exemplo o realce de orlas ou a eliminação de ruído. Um outro propósito é a redução da

largura de banda da informação, para dessa forma permitir um mais fácil transporte e armazenamento

das imagens, procurando manter compatibilidade com a percepção visual humana.

O princípio em que as técnicas no domínio da frequência assentam é o teorema da convolução.

Criando uma imagem g(x,y) através da convolução de uma imagem f(x,y) com um operador linear e

invariante relativamente à posição h(x,y)1, que não é mais do que:

( ) ),(*),(, yxfyxhyxg = (1)

A equação anterior, partindo do teorema da convolução2, permite estabelecer a seguinte relação no

domínio das frequências:

),(),(),( vuFvuHvuG = (2)

onde G, H e F são as transformadas de Fourier de g, h e f, respectivamente. Na terminologia da teoria

de sistemas lineares, a transformada H(u,v) é chamada de função transferência do processo. Em óptica,

1 Um operador invariante relativamente à posição, é um operador cujo resultado depende apenas do valor de

f(x,y) num ponto da imagem e não da posição desse ponto. Invariância relativamente à posição é um requisito

implícito na definição de integrais de convolução.

2 f(x,y)*g(x,y)⇔F(u,v)G(u,v) e f(x,y)g(x,y)⇔F(u,v)*G(u,v).

Page 5: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

4

H(u,v) é chamada de função transferência óptica e a sua magnitude é chamada de função transferência

de modulação.

Inúmeros problemas de melhoramento de imagem podem ser expressos na forma da

Eq. 2. Numa aplicação típica de melhoramento de imagem, f(x,y) é dada e o objectivo, depois da

computação de F(u,v), é seleccionar H(u,v) por forma a que a imagem desejada,

)],(),([),( 1 vuFvuHyxg −ℑ= (3)

realce alguma particularidade de f(x,y). Por exemplo, orlas em f(x,y) podem ser acentuadas usando a

função H(u,v) que enfatiza as componentes de alta-frequência de F(u,v).

Quando uma imagem é processada para percepção visual, é subjectivamente que o observador avalia

quão bem um determinado método funciona.

Melhoramento no domínio das frequências

O melhoramento de imagens no domínio das frequências apresenta um método de implementação

bastante directo. Simplesmente computa-se a transformada de Fourier da imagem a ser melhorada,

multiplica-se o resultado pela função transferência de um determinado filtro e toma-se a transformada

inversa para produzir a imagem melhorada.

As ideias de suavização através da redução do conteúdo de alta-frequência ou de evidenciação através

do aumento de magnitude das componentes de alta-frequência em relação às de baixa-frequência, vêm

de conceitos directamente relacionados com a transformada de Fourier. De facto, a ideia de filtragem

linear torna-se consideravelmente mais apelativa e intuitiva no domínio das frequências. Na prática,

pequenas máscaras espaciais são usadas mais vezes do que a transformada de Fourier, devido à sua

simplicidade de implementação e rapidez de operação. No entanto, uma compreensão dos conceitos do

domínio das frequências é essencial na resolução de problemas, que não são facilmente acessíveis por

técnicas espaciais.

Page 6: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

5

2. Análise e especificação

2.1 Funcionamento e funcionalidades do programa

Tendo como ponto de partida a aplicação desenvolvida em anos anteriores, no âmbito desta mesma

disciplina, a nossa aplicação apresenta agora cinco novos filtros (LoG, Canny, Roberts, Disk e High-

boost) e novas opções no modo como a informação é apresentada ao utilizador.

O funcionamento básico do programa é ilustrado na seguinte figura:

A imagem é adquirida no formato RGB, conhecido por “truecolor”. Quando o botão “Aplicar Filtro” é

pressionado, são calculados os coeficientes de cada um dos três filtros escolhidos.

Esses coeficientes são guardados para poderem ser reutilizados noutras funcionalidades do programa.

Como a mediana não é um filtro FIR, a janela não tem coeficientes e portanto aparece uma janela preta

em vez do gráfico dos coeficientes ou da sua resposta em frequência. O mesmo sucede com o filtro

Canny e Roberts.

Calculados os coeficientes dos filtros, a imagem de entrada é convertida no espaço de cor previamente

escolhido (RGB, NTSC, YCbCr ou HSV). Qualquer um dos quatro espaços de cor é constituído por

três componentes. Para trabalhar com cada componente individualmente cada uma delas é copiada para

uma matriz m por n por 3, com todos os elemento nulos, excepto a camada correspondente.

Neste momento é criada uma cópia de cada componente para ficar disponível para ser mostrada. Como

as imagens só podem ser mostradas em RGB, estas são então convertidas para RGB. Se o espaço de

cor escolhido já estiver em RGB, não é preciso convertê-la. Posto isto a imagem pode ser convertida

para níveis de cinzento ou para preto e branco o que pode contribuir para uma melhor visualização do

resultado final uma vez que a percepção visual humana é algo subjectiva e por vezes pode ser muito

mais intuitivo analisar certos detalhes recorrendo a imagens em tons de cinzento ou a preto e branco.

Page 7: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

6

O programa apresenta a seguinte interface gráfica:

O programa permite a navegação pelos directórios para a escolha da imagem a ser tratada. Depois de

aplicar o filtro desejado para cada uma das componentes da imagem no espaço de cor seleccionado,

podem-se visualizar os coeficientes de cada filtro, a sua resposta em frequência ou as componentes da

imagem antes e depois de serem filtradas. São também apresentadas no ecrã as imagens original e

filtrada (esta imagem pode ser facilmente guardada clicando no botão “Salvar imagem filtrada”).

O programa apresenta também as seguintes funcionalidades:

• mudar as características de vários filtros em simultâneo;

• apresentar qualquer imagem no seu tamanho original;

• visualizar uma pequena descrição ao seleccionar um filtro;

• guardar as características dos filtros e do espaço de cor seleccionados num ficheiro de texto;

• seleccionar se a imagem filtrada é mostrada a cores, níveis de cinzento ou binarizada;

• comparar os resultados da imagem original com a imagem filtrada a cores, a niveis de

cinzento e binarizada.

Page 8: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

7

2.2 Filtros implementados

2.2.1 Filtro Passa-Baixo

Um filtro passa-baixo, tal como o próprio nome evidencia, vai filtrar as variações bruscas de cor da

imagem, ou seja, as altas frequências.

Para este tipo de filtro, pode-se concluir que na imagem filtrada se verifica uma suavização

relativamente à imagem original, que é tanto mais visível e mais acentuada quanto menor for a

frequência aplicada, ou quanto maior for o tamanho da janela utilizada. Esta suavização da imagem

acontece, uma vez que as variações mais bruscas de cor são filtradas, sendo que quanto menor for a

frequência de corte, maior é o número de variações filtradas. Por outro lado, quanto maior for o

tamanho da janela, maior vai ser a contribuição dos pixels vizinhos para o ponto que queremos

determinar, logo a imagem vai sofrer um maior esbatimento.

A seguir é apresentado o resultado da filtragem usando um filtro passa-baixo com dimensão da janela

de 6 e frequência de corte de 0.2:

Imagem original Imagem filtrada

2.2.2 Filtro Passa-Alto

Através das várias experiências efectuadas com este filtro, observa-se que o factor com maior

importância que se traduz em melhores resultados é a variação da frequência de corte, que dá origem a

uma melhor definição e obtenção das orlas ou contornos dos objectos presentes nas imagens. O filtro

Passa Alto é utilizado para detectar orlas, uma vez que, quanto mais alta a frequência seleccionada,

maior é o número de variações de cor que são filtradas, sendo que as únicas variações que não são

filtradas são as mais bruscas.

A seguir é apresentado o resultado da filtragem usando um filtro passa-alto com dimensão da janela de

Page 9: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

8

10 e frequência de corte de 0.7:

Imagem original Imagem filtrada

2.2.3 Filtro Passa-Banda

Para este tipo de filtro, e uma vez que é necessário definir frequências inferior e superior de corte, a

diversidade de testes aumenta. Será por isso importante de salientar que para este tipo de filtro e uma

vez que a largura de banda está bem definida e limitada, poder-se-ão obter diferentes resultados. Sendo

assim verifica-se que utilizando uma largura de banda definida entre as frequências 0,1 e 0,4, obtém-se

resultados muito parecidos com a aplicação de um filtro Passa-Baixo. Isto porque a única diferença

entre estas duas situações reside no facto que no filtro Passa-Banda, a banda é limitada, mas em ambas

as situações as variações mais bruscas são filtradas, resultando numa suavização das variações de cor

da imagem original.

Por outro lado, se for utilizada uma banda definida entre as frequências 0,4 e 0,7, observam-se

resultados muito parecidos com os da aplicação do filtro Passa-Alto, pelas mesmas razões. Ou seja, a

banda neste caso é limitada, no entanto, aplica o mesmo efeito na imagem, ou seja filtrar as variações

mais suaves, fazendo com que o resultado final seja a detecção das orlas dos objectos.

2.2.4 Filtro Gaussiano

Este tipo de filtro recebe como parâmetros a dimensão da janela e um valor para o desvio padrão

máximo sigma. Este filtro tem um comportamento similar ao filtro passa-baixo, isto é, a sua aplicação

resulta numa suavização da imagem original. Esta suavização é tanto mais visível quanto maior for o

desvio padrão sigma considerado, não dependendo muito do tamanho da janela utilizado. Desta forma,

e depois de se analisar o gráfico correspondente aos coeficientes do filtro, observa-se que o aumento de

sigma traduz-se num aumento do número de pixels cujo valor é diferente de zero, o que implica que vá

Page 10: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

9

também aumentando a contribuição dos pixels vizinhos a cada ponto, reflectindo-se numa maior

suavização da imagem. De salientar também a pouca influência que tem a variação do tamanho da

janela, e a alteração entre os diferentes espaços de cor, já que os resultados finais são muito

semelhantes.

A seguir é apresentado o resultado da filtragem usando um filtro gaussiano com dimensão da janela de

10 e sigma de 6:

Imagem original Imagem filtrada

2.2.5 Filtro Laplaciano

Este filtro tem como único parâmetro alpha, que controla a forma dos coeficientes do filtro Laplaciano.

Sendo assim, e analisando os resultados correspondentes à variação deste parâmetro, observa-se que a

diminuição do valor de alpha se traduz numa ligeira melhoria na obtenção dos contornos dos objectos.

Sendo assim, no global, e seja qual for o valor de alpha utilizado, pode-se concluir que o uso deste

filtro funciona como uma boa ferramenta para a obtenção dos contornos.

A seguir é apresentado o resultado da filtragem usando um filtro laplaciano com alpha igual a 0.2:

Imagem original Imagem filtrada

Page 11: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

10

Imagem original Imagem filtrada

2.2.6 Filtro de média

No estudo das consequências de aplicação de um filtro de média a diversas imagens, e alterando o

único parâmetro possível, ou seja, a dimensão da janela utilizada, verifica-se que quanto menor for a

janela utilizada melhores são os resultados e maior é a aproximação à imagem original. Isto porque à

medida que aumenta a janela, aumenta o número de pixels que vão contribuir para a obtenção do

resultado final. Uma grande variação de dois pixels vizinhos, é atenuada pois em seu lugar fica um

valor que traduz a sua média. Se a janela for suficientemente grande, dependendo também do conteúdo

da imagem, a imagem ficará mais desfocada. Como se comprova na figura representada de seguida

pode-se, em alguns casos (dependendo do tamanho da janela utilizada e da dimensão das partículas),

eliminar o ruído existente, à custa de uma pequena degradação na qualidade da imagem original, isto é

provocando uma pequena suavização da imagem.

A seguir é apresentado o resultado da filtragem usando um filtro de média com dimensão da janela

igual a 4:

Imagem original Imagem filtrada

Page 12: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

11

2.2.7 Filtro Unsharp

Este filtro é obtido a partir do inverso do filtro Laplaciano. Como tal recebe como único parâmetro o

valor de alpha, que determina a forma do filtro Laplaciano. Aplicando diferentes valores de alpha em

diversas imagens, observa-se que com o aumento do seu valor a imagem parece manter o contraste,

reflectindo-se no entanto numa melhor preservação das orlas. Nota-se também uma degradação na

qualidade da imagem.

O filtro Unsharp é um simples operador de realce que recebe o seu nome do facto de realçar orals (e

outras componentes de alta frequência numa imagem), através da subtracção de uma imagem suavizada

à imagem original. Esta técnica é amplamente usada na indústria fotográfica e de impressão para realce

de orlas.

A seguir é apresentado uma imagem que passou por um filtro unsharp com alpha igual a 0.5.

Nitidamente a imagem filtrada é mais nítida que a imagem original.

Imagem original Imagem filtrada

2.2.8 Filtro Mediana

O filtro de Mediana tal como o próprio nome indica, corresponde a atribuir a cada ponto

visitado o valor mediano para uma determinada janela utilizada. O resultado da sua aplicação é

uma suavização da imagem original, que se acentua quanto maior for o tamanho da janela

utilizado. Embora este seja um filtro não-linear e não um filtro FIR, este tem importância pois

com o filtro de Mediana obtém-se melhores resultados que com o de Media. O filtro de

Mediana, além de contribuir para a eliminação do ruído, preserva melhor as orlas que o filtro

de Média, como se pode verificar pelas imagens.

O valor da Mediana é aquele que separa ao meio o conjunto de pixels considerado, com 50%

do pixels abaixo da Mediana e 50% acima.

A seguir é apresentado o resultado da filtragem usando um filtro mediana com dimensão da

Page 13: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

12

janela igual a 3:

Imagem original Imagem filtrada

2.2.9 Filtro de Sobel e de Prewitt

Estes filtros não recebem nenhum parâmetro, uma vez que as matrizes para efectuar a convolução já estão

predefinidas. Este processo consiste na convolução de uma janela tal como já anteriormente indicada, para

detectar as orlas horizontais. Paralelamente passa-se a janela transposta. A imagem final é a média desses

dois resultados intermédios. Por análise das imagens conclui-se que também estes filtros se apresentam

como uma boa ferramenta para detecção de orlas.

Normalmente é mais usado o filtro de Sobel que o de Prewitt pois o primeiro apresenta maior imunidade ao

ruído. Isto é facilmente verificável pela análise dos coeficientes de cada janela.

Imagem original Imagem filtrada

Page 14: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

13

Imagem original Imagem filtrada

2.2.10 LoG (Laplacian of Gaussian)

O laplaciano é uma medida isotrópica 2-D da segunda derivada espacial de uma imagem, que destaca

as regiões de mudança rápida de intensidade numa imagem, sendo por isso frequentemente usado na

detecção de orlas. O laplaciano é frequentemente aplicado a imagens que previamente foram

suavizadas, com um filtro gaussiano de forma a reduzir a sua sensibilidade ao ruído. É nesta situação

que estamos perante uma implementação do tipo LoG.

A função 2-D LoG centrada em zero com um desvio padrão Gaussiano apresenta a seguinte forma:

(4)

Os parâmetros aceites por este filtro, na nossa aplicação, são:

• Dimensão da janela: para criar uma matriz quadrada com a dimensão especificada

• Sigma: desvio padrão do filtro gerado

A matriz gerada para o filtro é rotativamente simétrica, como o exemplo a seguir mostra:

0.0448 0.0468 0.0564 0.0468 0.0448

0.0468 0.3167 0.7146 0.3167 0.0468

0.0564 0.7146 -4.9048 0.7146 0.0564

0.0468 0.3167 0.7146 0.3167 0.0468

0.0448 0.0468 0.0564 0.0468 0.0448

Através dos resultados obtidos foi possível concluir que para valores de sigma inferiores a 0.5 o valor

da dimensão da janela afecta bastante a imagem filtrada, enquanto que para valores de sigma superiores

a dimensão da janela não afecta no resultado final. Quanto maior o sigma melhor será o resultado da

imagem filtrada.

Na figura a seguir representada é possível visualizar o resultado do filtro LoG com uma dimensão de

Page 15: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

14

janela variável e um desvio padrão variável na imagem original apresentada:

Imagem original Janela=10 e sigma=0.3

Janela=20 e sigma=0.3 Janela=10 e sigma=0.8

2.2.11 Filtro Disk

O filtro Disk é um filtro circular passa-baixo com uma matriz quadrada de tamanho 2*raio+1, onde

raio é um parâmetro passado como argumento à nossa aplicação.

Exemplo de uma matriz gerada para o filtro com raio = 2:

0 0.0170 0.0381 0.0170 0

0.0170 0.0784 0.0796 0.0784 0.0170

0.0381 0.0796 0.0796 0.0796 0.0381

0.0170 0.0784 0.0796 0.0784 0.0170

0 0.0170 0.0381 0.0170 0

A partir de vários testes variando o único parâmetro o raio, chegou-se à conclusão que quanto maior for

o raio, maior será a suavização sofrida pela imagem original.

Na figura a seguir representada é possível visualizar o resultado do filtro Disk com um raio de 2:

Page 16: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

15

Imagem original Imagem filtrada

2.2.12 Filtro High-Boost

A filtragem passa-alto pode ser vista como a subtracção de uma imagem filtrada com um filtro passa-

baixo à imagem original, que se pode representar pela seguinte equação:

Passa-Alto = Original – Passa-Baixo (5)

No entanto, muitas das vezes onde há a necessidade de obter uma imagem filtrada com um filtro passa-

alto, é também necessário reter algumas das componentes de baixa-frequência para ajudar na

interpretação da imagem. Então, se multiplicarmos a imagem original por um factor de amplificação A

antes de subtrairmos a imagem filtrada com um filtro passa-baixo, iremos obter um filtro high-boost or

um filtro que enfatiza as altas frequências, donde vem:

High-Boost = A.Original – Passa-Baixo

= (A-1).Original + Original – Passa-Baixo

= (A-1).Original + Passa-Alto (6)

Logo, se A = 1 o que temos é simplesmente um filtro passa-alto. Quando A > 1, parte da imagem

original é apresentada na saída, o que permite recuperar parte das componentes de baixa-frequência

perdidas na operação de filtragem passa-alto.

Uma máscara usada para filtragem espacial high-boost pode ser como a que a seguir se apresenta,

onde o valor do peso central é W = 9A – 1, com A ≥ 1.

-1/9 -1/9 -1/9

-1/9 W/9 -1/9

-1/9 -1/9 -1/9

Page 17: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

16

Nas figuras a seguir apresentadas é possível visualizar resultados do filtro High-Boost variando o

parâmetro de entrada “Peso”:

Imagem original Com Peso = 1 Com Peso = 1.2 Com Peso = 1.7

Imagem Original Com Peso = 1.2

Com Peso = 1.5 Com Peso = 1.8

É de realçar, a existência de um compromisso entre os resultados pretendidos e os obtidos

Page 18: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

17

relativamente ao valor do “Peso” seleccionado. Em particular, o resultado com Peso = 1.2, é o

mesmo que adicionar 0.2 da imagem original à mesma imagem filtrada por um filtro Passa-

Alto básico. À medida que se aumenta o valor do “Peso”, o fundo da imagem torna-se cada

vez mais brilhante. Note-se também que o ruído tem um papel importante na aparência visual

da imagem sujeita a uma filtragem High-Boost. Este resultado não é de todo inesperado, uma

vez que a filtragem Passa-Alto realça o ruído, assim como outras transições bruscas numa

imagem.

2.2.13 Filtro Canny

Na implementação deste filtro recorremos à função edge do MATLAB, passando-lhe como argumento

cada uma das imagens de cada componente do espaço de cor seleccionado e o método em questão

(Canny). Na saída como o que obtínhamos era uma imagem binarizada, tivemos que recorrer a um

factor multiplicativo para que nos

fosse possível obter uma imagem a cores na saída. Esse factor determina quão elevada é a intensidade

de cada uma das componentes.

O método de Canny difere dos outros filtros detectores de orlas porque usa dois thresholds diferentes

(para detectar os fortes e os fracos contornos), e inclui as orlas mais leves no output apenas se

estiverem ligadas às orlas principais. O método Canny é assim muito mais resistente ao ruído que os

outros filtros, e é mais provável que detecte as verdadeiras orlas leves. Este método procura por

máximos locais no gradiente da imagem a analisar, sendo o gradiente obtido recorrendo à derivada de

um filtro Gaussiano.

Este filtro aceita como parâmetro de entrada, um valor sigma que representa o desvio padrão do filtro

gaussiano, sendo o tamanho da matriz automaticamente calculado com base neste valor. O valor de

threshold é automaticamente calculado pela função edge.

A seguir são apresentadas várias imagens resultantes da aplicação de um filtro Canny com sigma igual

a 1.

Imagens originais Imagens filtradas (níveis de cizentos)

Page 19: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

18

2.2.14 Filtro Roberts

Este filtro apresenta configuração similar à anterior, sendo desta vez aplicado o método Roberts, que

apresenta uma análise de variação de gradiente baseada na aplicação das duas máscaras de convolução

em baixo apresentadas,

(8)

Máscaras para detecção de orlas com direcção 45º e 135º, respectivamente.

Os resultados são depois combinados para evidenciar a direcção e a intensidade das orlas.

(9)

Representação da direcção do gradiente e da direcção da orla

A direcção do gradiente dá-nos informação sobre a direcção de máximo crescimento da função, por

exemplo, de preto ( f(x,y) = 0 ) para branco ( f(x,y) = 255 ).

Na Figura (9), as linhas fechadas representam linhas com a mesma intensidade de brilho.

Nas figuras a seguir apresentadas é possível visualizar o resultado do filtro, onde se repara que é menos

eficaz que outros filtros já descritos em cima:

Page 20: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

19

Imagem original Imagem filtrada (níveis de cinzento)

Page 21: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago
Page 22: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

3. Comentários finais

Após a análise da funcionalidade de cada um dos filtros implementados, recorrendo a diversos testes com

várias imagens e variando os parâmetros de entrada para cada filtro, iremos agora referenciar os filtros

que melhores resultados apresentam para uma determinada característica que se pretenda obter.

Se o objectivo for o de suavizar a imagem original, o filtro que se revelou mais eficaz para isto foi o

Gaussiano , porque é o que preserva mais os contornos da imagem original e permite um maior controlo

do resultado final através dos seus parâmetros de entrada.

O filtro mediana é o segundo melhor porque também conserva alguns dos contornos da imagem

suavizando-a suavemente. Os resultados do passa-baixo são semelhantes ao do filtro mediana.

O que apresentou piores resultados foi o filtro de média porque degrada bastante os contornos da imagem

tornado-a bastante desfocada.

Imagem original Passa-baixo(Dimensão da janela: 10; Freq. de corte: 0.2)

Gaussiano (Dimensão da janela: 10; Sigma: 2.0) Média(Dimensão da janela: 10)

Page 23: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

22

Mediana (Dimensão da janela: 10) Disk (Raio: 3)

Se o objectivo for o de detectar contornos ou orlas na imagem original o que apresenta melhor

resultado é o filtro de Canny, porque é o que apresenta a melhor resistência ao ruído.

Relativamente aos outros filtros, os resultados podem variar consoante o tipo de imagem em questão e

também consoante a informação que pretendemos obter. É difícil estabelecer comparações entre

métodos que apresentam morfologias tão variadas, e sujeitas a uma avaliação tão subjectiva como a

percepção visual humana. Pode-se no entanto destacar que o método que apresenta os resultados

menos apelativos e com menor qualidade, comparado com os restantes, é o do método de Roberts,

pois os contornos apresentados são pouco imunes ao ruído e nem sempre os contornos se apresentam

fechados. As imagens filtradas a seguir apresentadas encontram .se todas em níveis de cinzentos.

Imagem original Canny (Sigma: 1)

Page 24: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

23

Laplaciano (Alpha: 0.2) LoG (Dimensão da janela: 10; Sigma: 0.7)

High-Boost (Peso: 1.2) Roberts

Sobel Prewitt

Page 25: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

24

Passa-Alto(Dimensão da janela: ;Freq. de corte: 0.4)

Apêndice A

Page 26: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

25

Fig.1

����Tutorial de como usar o programa

Neste tutorial serão explicados os passos básicos de utilização da nossa aplicação e como

interagir com a interface gráfica.

Requisitos mínimos: possuir preferencialmente o MATLAB 7.0 instalado.

1. Abrir o CD “Filtragem de imagens fixas” contendo os ficheiros necessários para a

execução do programa;

2. Copiar a pasta “Filtragem de imagens fixas” para o disco rígido;

3. Abrir o Matlab 7.0 e correr o programa filtragem.m, deverá aparecer a seguinte

interface gráfica (fig.1);

1->Como abrir uma nova imagem?

1. Na janela da interface gráfica clicar no Botão Carregar imagem (1 da fig.2);

Page 27: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

26

2. Seleccionar a imagem pretendida (deverá surgir a imagem como na fig.2);

3. Após ter seleccionado a imagem deverá aparecer no campo 2 “Imagem pronta para

filtragem”.

Fig.2

2->Como aplicar um filtro?

1. O campo 1 da figura 3 é a zona onde se faz a selecção e manipulação dos filtros, onde são

Page 28: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

27

apresentadas as 3 componentes da imagem e um filtro para cada uma delas. Para mudar o

espaço de cor clica-se no campo 5 e selecciona-se o espaço de cor pretendido.

2. A selecção do filtro e da sua dimensão é feita no campo 2 da fig.3. Após ter seleccionado um

filtro este é aplicado automaticamente a cada uma das 3 componentes e é possivel a

visualização de uma pequena descrição do filtro seleccionado no campo 6 da fig. 3.

3. Se pretender aplicar um filtro diferente para cada componente terá de desactivar o campo

“Prender” (campo 4 da fig.3), seleccionar o filtro e em seguida activar novamente o campo

“Prender” (campo 4 da fig. 3). É necessário efectuar este procedimento para todas as

componentes;

4. Os valores desejados para os parâmetros de entrada de cada filtro seleccionado, são

introduzidos no campo 3 da fig.3;

Fig.3

5. Após a selecção e configuração dos filtros é possível seleccionar no campo1 da fig.4 se a

Page 29: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

28

imagem filtrada irá ser mostrada a cores, em níveis de cinzento ou binarizada;

6. Após realizados os passos todos é altura de aplicar o(s) filtro(s) à imagem introduzida, para

isso basta clicar no botão “Aplicar Filtros” presente no campo 2 da fig.4.

Fig.4

3-> Visualização dos resultados

Page 30: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

29

1. Após ter clicado no botão “Aplicar Filtros” deverá aparecer na interface gráfica todos

os resultados da filtragem (como mostrado na fig.5). No campo 1 da fig.5 é onde se

encontra a imagem filtrada. É possível visualizar a imagem original e filtrada numa

janela independente clicando no botão que apresenta uma lupa (campo 2).

2. No campo 3 da fig.5 é possível seleccionar a informação relativa à filtragem que

pretendemos visualizar, como por exemplo os coeficientes do filtro, a resposta em

frequência e cada uma das 3 componentes filtradas. É possível visualizar facilmente

cada um dos gráficos numa janela independente clicando no botão que apresenta uma

lupa.

3. É possivel visualizar facilmente a imagem original e a imagem filtrada a cores, níveis

de cinzento e binarizada numa só janela clicando no botão “Comparar Resultados”

(campo 4 da fig. 5). Deverá surgir uma janela idêntica à da fig.6.

Fig.5

Page 31: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

30

Fig.6

4->Outros:

• Para salvar a imagem filtrada carregar no botão “Salvar imagem filtrada”;

• Para salvar o relatório da imagem filtrada num ficheiro de texto carregar no botão com

uma disquete;

• Para fechar o programa clicar no botão “Sair”.

Page 32: Filtragem de imagens fixas · 0 Televisão digital – EEC5270 Relatório Filtragem de imagens fixas usando Matlab Bruno Filipe Sobral de Oliveira - ee01084@fe.up.pt Filipe Tiago

FEUP 2005/06 FILTRAGEM DE IMAGENS FIXAS

31