Você está na página 1de 26

UNIVERSIDADE FEDERAL DO TRIANGULO MINEIRO

INSTITUTO DE CIÊNCIAS TECNOLÓGICAS E EXATAS

André Ajonas Lavez


Gabriel Augusto de Souza

Trabalho 5 - PDI

Uberaba
Novembro – 2016
André Ajonas Lavez
Gabriel Augusto de Souza

Trabalho 3 - PDI

Trabalho apresentado para disciplina


Processamento digital de imagens para fins
avaliativos.
Prof. Dr. Luciano Xavier Medeiros

Uberaba
Novembro – 2016
i

LISTA DE FIGURAS
Figura 1 - Conceito de máscara.. ................................................................................................ 3
Figura 2 - Máscara passa-alta de (a) 3x3 e (b)5x5. .................................................................... 4
Figura 3 - Filtragem espacial passa-baixa com máscara 3x3 .. .................................................. 5
Figura 4 - Filtragem espacial passa-baixa com máscara 5x5 ..................................................... 5
Figura 5 - Filtragem espacial passa-baixa com varias máscaras ................................................ 6
Figura 6 - Filtragem espacial passa-baixa de ruído gaussiano ................................................... 6
Figura 7 - Filtragem espacial passa-baixa de ruido sal e pimenta .............................................. 7
Figura 8 - Filtragem espacial passa-alta com máscara 3x3. ....................................................... 7
Figura 9 - Filtragem espacial passa-alta com máscara 5x5 ........................................................ 8
Figura 10 - Filtragem espacial passa-alta com varias máscaras ................................................. 8
Figura 11 - Filtragem espacial mediana de ruido sal e pimenta ................................................. 9
Figura 12 - Filtragem espacial mediana de ruído gaussiano .................................................... 9
Figura 13 - Filtragem espacial mediana com varias máscaras ................................................. 10
ii
iii

SUMÁRIO
1. INTRODUÇÃO ................................................................................................................. 1

2. RESUMO TEÓRICO........................................................................................................ 3

3. RESULTADOS OBTIDOS ............................................................................................... 5

3.1 FILTRO ESPACIAL PASSA-BAIXA ..................................................................... 5

3.2 FILTRO ESPACIAL PASSA-ALTA ....................................................................... 7

3.3 FILTRO ESPACIAL MEDIANA............................................................................. 8

4. CONCLUSÃO ................................................................................................................ 11

5. REFERÊNCIAS ............................................................................................................. 13

6. ANEXOS ......................................................................................................................... 15

6.1 CÓDIGO PRINCIPAL ........................................................................................... 15

6.2 FUNÇÃO FILTRO PASSA BAIXA ...................................................................... 16

6.3 FUNÇÃO FILTRO PASSA BAIXA ...................................................................... 17

6.4 FUNÇÃO FILTRO MEDIANA ............................................................................. 17


iv
1

1. INTRODUÇÃO

Nesse relatório verificaremos a importância do uso de filtros espaciais lineares e não


lineares e também iremos implementar tais filtros, os quais são: Filtro espacial passa-baixa,
filtro espacial passa-alta e filtro espacial mediana.
Começaremos aplicando tais filtros a imagem da Lenna, por sequência verificaremos o
comportamento de cada filtro, levando em conta quais características que cada um destaca, e
também suprimi. Para ser possível determinar qual a principal função de cada um.
Para auxiliar a interpretação dos filtros, iremos introduzir ruídos na imagem de entrada
e comparar os resultados obtidos de cada filtro. Além disso também será variado o tamanho das
máscaras de cada um dos filtros, afim de saber o que tal mudança altera na imagem final.
2
3

2. RESUMO TEÓRICO

Os processos de filtragem em imagens, se dividem em 2 grandes grupos, filtragem no


domínio da frequência, o qual faz o uso da transformada de Fourier na imagem e manipula-se
seu espectro de acordo com o objetivo, retornando ao domínio do espaço com a aplicação da
transformada inversa de Fourier. O outro grande grupo de filtragem são as filtragens no domínio
do espaço, em que são manipulados os pixels da própria imagem, resultando em uma nova
imagem de saída[1].
Para que possamos realizar as chamadas filtragens espaciais utilizamos de mascaras
(também conhecidas como sub-imagem), pequena matriz que visa levar em conta os elementos
vizinhos ao pixel analisado. O conceito de máscara fica mais claro analisando a Figura 1, onde
podemos notar uma imagem na qual temos a presença de uma máscara 3x3:

Figura 1 - Conceito de máscara.


Fonte: Autoria própria.

A máscara deve percorrer toda a imagem, pois somete assim conseguimos gerar uma
nova imagem com as mesmas dimensões da imagem pré-processada e com novos valores para
cada pixel. Vale lembrar que, ao utilizarmos uma máscara 3x3 devemos adicionar uma borda
de zeros de espessura 1, com o objetivo de encaixar toda a sub-imagem na imagem a ser
processada. No caso de uma sub-imagem de 5x5, a borda de zeros possuirá 2 de espessura, e
assim sucessivamente.
No trabalho realizado em questão utilizamos de filtragens espaciais lineares, filtro
passa-baixa e filtro passa-alta, e não lineares filtro de mediana. A máscara para realizar o filtro
passa-baixa possui todos seus elementos com o valor unitário, assim basta somar todos os pixels
internos a máscara, e posteriormente realizar a média. Tal média deve ser alocada na nova
imagem, na posição central em que a máscara esteve presente[2].
4

A aplicação de tal técnica tem como objetivo suavizar a imagem, e quanto maior a
máscara, maior será a suavização. Caso a mesma tenha um tamanho relativamente grande
(maior que 9), a imagem de saída será borrada, perdendo a representatividade de bordas.
Já a técnica de filtragem espacial passa-alta, realiza o oposto do passa-baixa, ou seja,
enaltece as bordas e mudanças de tons. Isso se deve ao fato que a mascará utilizada possui
valores negativos nas extremidades e o elemento central valor positivo de maior expressão, na
Figura 2 podemos ver a máscara 3x3 e 5x5 passa-alta

Figura 2 - Máscara passa-alta de (a) 3x3 e (b)5x5.


Fonte: Autoria prórpria.

A filtragem espacial mediana, funciona da mesma maneira que a operação mediana, a


qual o resultado é o elemento central de uma sequência de números ordenados [3], sendo muito
eficiente para a retirada de ruídos do tipo sal e pimenta[1].
5

3. RESULTADOS OBTIDOS

Os resultados obtidos foram divididos em sub categorias, afim de facilitar a


compreensão do leitor.

3.1 FILTRO ESPACIAL PASSA-BAIXA

Conforme solicitado foi implementado um programa que realiza a filtragem espacial


passa-baixa, podemos ver os resultados obtidos abaixo:

Figura 3 - Filtragem espacial passa-baixa: (a) Imagem original e (b) imagem processada com máscara
3x3.
Fonte: Autoria própria.

Podemos notar na Figura 3 que houve uma suavização nas bordas, conforme esperado.
Na Figura 4 temos uma maior suavização e início de borramento devido a máscara possuir
maior dimensão (5x5).

Figura 4 - Filtragem espacial passa-baixa: (a) Imagem original e (b) imagem processada com máscara
5x5.
Fonte: Autoria própria.

Para tornar possível um melhor efeito comparativo entre as imagens, na Figura 5


apresentamos 3 diferentes mascaras e os resultados obtidos:
6

Figura 5 - Filtragem espacial passa-baixa: (a) Imagem original e em sequência, imagens processadas
com máscaras: (b) 3x3 ,(c) 5x5 e (d) 7x7.
Fonte: Autoria própria.

Como podemos notar na Figura 6, a filtragem espacial passa-baixa tem resultados


relativamente bom quando aplicado a imagens com ruído do tipo gaussiano:

Figura 6 - Filtragem espacial passa-baixa: (a) Imagem original, (b) imagem corrompida com ruído
gaussiano, e em sequência, imagens processadas com máscaras: (c) 3x3 e (d) 5x5.
Fonte: Autoria própria.

Já quando é aplicado em uma imagem que apresenta ruído do tipo sal e pimenta,
consegue retirar boa parte do ruído, contudo não temos um bom resultado conforme observamos
na Figura 7:
7

Figura 7 - Filtragem espacial passa-baixa: (a) Imagem original, (b) imagem corrompida com ruído sal
e pimenta, e em sequência, imagens processadas com máscaras: (c) 3x3 e (d) 5x5.
Fonte: Autoria própria.

3.2 FILTRO ESPACIAL PASSA-ALTA

De maneira análoga, foi criado um programa que processa as imagens com o uso do
filtro espacial passa-alta. Os resultados estão expostos abaixo:

Figura 8 - Filtragem espacial passa-alta: (a) Imagem original e (b) imagem processada com máscara
3x3.
Fonte: Autoria própria.

Como era esperado houve um enaltecimento nos contornos, contudo a imagem


escureceu muito, pois no filtro há valores negativos influenciando assim o escurecimento, tal
resultado está exposta na Figura 8. Já Figura 9 temos o mesmo tipo de filtro, contudo com
máscara de 5x5:
8

Figura 9 - Filtragem espacial passa-alta: (a) Imagem original e (b) imagem processada com máscara
5x5.
Fonte: Autoria própria.

Com o aumento notamos que as bordas ficam ainda mais destacadas. Abaixo na Figura
10 está apresentado o filtro passa-alta com tamanho de máscaras distintos:

Figura 10 - Filtragem espacial passa-alta: (a) Imagem original e em sequência, imagens processadas
com máscaras: (b) 3x3 ,(c) 5x5 e (d) 7x7.
Fonte: Autoria própria.

3.3 FILTRO ESPACIAL MEDIANA

Como comentado no resumo teórico o filtro de mediana possui excelentes resultados


quando aplicado a imagens com ruído sal e pimenta, assim visto na Figura 11:
9

Figura 11 - Filtragem espacial mediana: (a) Imagem original, (b) imagem corrompida com ruído sal e
pimenta, e em sequência, imagens processadas com máscaras: (c) 3x3 e (d) 5x5.
Fonte: Autoria própria.

Até mesmo quando aplicado em ruído gaussiano o filtro de mediana tem resultados
satisfatórios, como observamos a Figura 12 abaixo:

Figura 12 - Filtragem espacial mediana: (a) Imagem original, (b) imagem corrompida com ruído
gaussiano, e em sequência, imagens processadas com máscaras: (c) 3x3 e (d) 5x5
Fonte: Autoria própria.

Como na Figura 13 a aplicação de filtragem espacial mediana com máscaras de


tamanhos superiores a 5, causam um grande embasamento na imagem final.
10

Figura 13 - Filtragem espacial passa-alta: (a) Imagem original e em sequência, imagens processadas
com máscaras: (b) 3x3 ,(c) 5x5 e (d) 7x7.
Fonte: Autoria própria.

.
11

4. CONCLUSÃO

Após aplicarmos os 3 diferentes tipos de filtros solicitados no relatório ficou claro que,
devemos saber qual é nosso objetivo final para que possamos escolher o filtro desejado e ser
possível alcançar tais objetivos.
Caso queira destacar as bordas, devemos utilizar o filtro passa-altas com uma máscara
grande (em torno de 7), contudo a imagem final se escurecera demasiadamente em virtude de
tirar a componente DC da imagem. Portanto devemos ter cuidado ao utiliza-los.
Para redução de ruído do tipo sal e pimenta, e também o ruído gaussiano, é recomendado
utilizar o filtro de mediana com máscaras de no máximo 5 colunas e 5 linhas, afim de evitar o
alto embasamento.
O processo de filtragem espacial passa-baixa é indicado para suavização de superfícies,
além de também poder ser aplicado a ruídos. Contudo seu resultado não é tão eficiente quando
comparado ao filtro de mediana.
Notamos também que tais processos de filtragem espaciais, podem ser utilizado como
técnicas de pré-processamento, afim de destacar ou retirar determinadas características da
imagem de entrada. Aumentando a qualidade da imagem que virá a ser processada.
12
13

5. REFERÊNCIAS

[1] R. Gonzales e R. Woods, PROCESSAMENTO DE IMAGENS DIGITAIS, 3o ed. São


Paulo: Pearson, 2010.
[2] A. Backes, FILTRAGEM ESPACIAL - Filtros Digitais no domínio do espaço.
Uberlandia, p. 1–27, 2014.
[3] P. L. Meyer, PROBABILIDADE - Aplicações à Estatística, 2o ed, vol. 22, no 62.
Aparecida: Santuário, 2012.
14
15

6. ANEXOS

6.1 CÓDIGO PRINCIPAL

clc;
clear;
close all;

%aquisição da imagem
entrada=imread('Lenna256.bmp');
tamMasc=3;
colormap(gray(256));

subplot(2,2,1);%linha coluna posição


image(entrada);
axis equal;
axis('off');

%ruido gaussiano
%k=round(normrnd(0,sqrt(100),[size(entrada)]));

%ruido sal e pimenta


k=randi(11,256);
k=k-1;
for a=1:256
for b=1:256
if (k(a,b)==10)
k(a,b)=255;
elseif(k(a,b)==0)
k(a,b)=0;
else
k(a,b)=1;
end
end
end

entrada=entrada.*k; %adicinando ruido

subplot(2,2,2);%linha coluna posição


image(entrada);
axis equal;
axis('off');

for a=0:1
tamMasc=3+2*a;
%chamando a função Filtro passa Baixa
%saida=FPBespacial(entrada,tamMasc);

%chamando a função Filtro passa Alta


16

%saida=FPAespacial(entrada,tamMasc);

%chamando a função Filtro Mediana


saida=FMediana(entrada,tamMasc);

subplot(2,2,3+a);%linha coluna posição


image(saida);
axis equal;
axis('off');
clear saida;
clear tamMasc;
end

6.2 FUNÇÃO FILTRO PASSA BAIXA

function saida=FPBespacial(entrada,tamMasc)

%o quanto deve preencher a imagem original para passar a mascara


aumento=(tamMasc-1)/2;

%verifica as dimensões da entrada


tamanho=size(entrada);

%cria matriz de 0 que ira prencher a imagem, com o aumento necessario para passar a mascara
entradaConca=zeros(tamanho(1)+2*aumento,tamanho(2)+2*aumento);

%concatena a matriz de zero com a entrada


entradaConca((1+aumento):(tamanho(1)+aumento),(1+aumento):(tamanho(2)+aumento))=entrada;

soma=0; numeroPtos=0;
for linha=0:(tamanho(1)-1)%roda as linhas
for coluna=0:(tamanho(2)-1)%roda as colunas
for Lmasc=1:tamMasc %roda linhas da mascara
for Cmasc=1:tamMasc %roda colunas da mascara
pixel=entradaConca((linha+Lmasc),(coluna+Cmasc));
if (pixel != 0) %Faz com que apenas pixels diferente de zero
contribuam
numeroPtos++;
end
soma=soma+pixel;
end
end
saida((linha+1),(coluna+1))=soma/(numeroPtos);%cria a nova imagem
soma=0; %zera o somador
numeroPtos=0; %zera o numero de ptos da imagem dif de zero
end
end
endfunction;
17

6.3 FUNÇÃO FILTRO PASSA BAIXA

function saida=FPAespacial(entrada,tamMasc)

%o quanto deve preencher a imagem original para passar a mascara


aumento=(tamMasc-1)/2;

%verifica as dimensões da entrada


tamanho=size(entrada);

%cria matriz de 0 que ira prencher a imagem, com o aumento necessario para passar a mascara
entradaConca=zeros(tamanho(1)+2*aumento,tamanho(2)+2*aumento);

%concatena a matriz de zero com a entrada


entradaConca((1+aumento):(tamanho(1)+aumento),(1+aumento):(tamanho(2)+aumento))=entrada;

soma=0; numeroPtos=0;
for linha=0:(tamanho(1)-1)%roda as linhas
for coluna=0:(tamanho(2)-1)%roda as colunas
for Lmasc=1:tamMasc %roda linhas da mascara
for Cmasc=1:tamMasc %roda colunas da mascara
if ( entradaConca((linha+Lmasc),(coluna+Cmasc))!=0) %Faz com que
apenas pixels diferente de zero contribuam
numeroPtos++;
end
if (Lmasc == tamMasc-aumento && Cmasc ==tamMasc-aumento) % apenas o
elemento centra da matriz não possui -1 como multiplicação
pixel=(tamMasc^2-
1)*entradaConca((linha+Lmasc),(coluna+Cmasc));
else
pixel=(-1)*entradaConca((linha+Lmasc),(coluna+Cmasc));
end
soma=soma+pixel;
end
end
saida((linha+1),(coluna+1))=soma/(numeroPtos);%cria a nova imagem
soma=0; %zera o somador
numeroPtos=0;
end
end
endfunction

6.4 FUNÇÃO FILTRO MEDIANA

function saida=FMediana(entrada,tamMasc)

%o quanto deve preencher a imagem original para passar a mascara


aumento=(tamMasc-1)/2;
18

%verifica as dimensões da entrada


tamanho=size(entrada);

%cria matriz de 0 que ira prencher a imagem, com o aumento necessario para passar a mascara
entradaConca=zeros(tamanho(1)+2*aumento,tamanho(2)+2*aumento);

%concatena a matriz de zero com a entrada


entradaConca((1+aumento):(tamanho(1)+aumento),(1+aumento):(tamanho(2)+aumento))=entrada;

soma=0; posicao=0;
mediana=ceil(tamMasc^2/2);%indice do elemento centra do vetor pixel

for linha=0:(tamanho(1)-1)%roda as linhas


for coluna=0:(tamanho(2)-1)%roda as colunas
for Lmasc=1:tamMasc %roda linhas da mascara
for Cmasc=1:tamMasc %roda colunas da mascara
posicao++;% cada loop incrementa um e dita a posição do pixel
pixel(posicao)=entradaConca((linha+Lmasc),(coluna+Cmasc));%armazeno os
valores da mascara em um vetor
end
end
pixel=sort(pixel);%ordei o vetor
saida((linha+1),(coluna+1))=pixel(mediana);%cria a nova imagem
posicao=0;
end
end
endfunction

Você também pode gostar