Pratica2 PDI

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

2018

Filtragem Espacial

Filtragem Espacial
CHARLES WAY HUN FUNG
Sumário
Filtragem Espacial .......................................................................................................................... 2
Detecção de Pontos Isolados ..................................................................................................... 2
Detecção de linhas ..................................................................................................................... 3
Detecção de Bordas ................................................................................................................... 5
Máscaras de Roberts ............................................................................................................... 6
Máscaras de Prewitt................................................................................................................. 7
Máscaras de Sobel .................................................................................................................. 7
Inserindo Ruído em Imagens...................................................................................................... 8
Filtro de média.......................................................................................................................... 11
Filtro de mediana...................................................................................................................... 12
Referências................................................................................................................................... 12

Filtragem Espacial 1 Eng. Charles Way Hun Fung MSc.


Filtragem Espacial
A filtragem espacial consiste na convolução em duas dimensões de uma máscara pré-
determinada e uma imagem. Esta filtragem tem o intuito de dar ênfase a uma determinada
característica da imagem. Para definirmos estas máscaras devemos determinar qual característica
iremos enfatizar na imagem. Inicialmente iremos fazer detecção de pontos, linhas e bordas. A partir
disto temos da literatura algumas máscaras padrões.

Detecção de Pontos Isolados

A máscara apresentada consiste em uma forma de representação matricial dos laplaicianos:

Figura 1 – Máscara para detecção de pontos isolados.

Fonte: (Gonzalez, 2010)

Para implementarmos esta matriz no SciLab inicialmente iremos fazer a leitura das imagens
house.tif.

Em seguida definiremos a máscara:

Agora para aplicar a máscara na imagem, ou em outras palavras vamos aplicar o filtro para
detecção de pontos, devemos aplicar a convolução entre a máscara e a imagem:

Antes de aplicar a convolução temos que converter os pixels da imagem em real, para poder
realizar a operação:

A seguir aplicando a convolução:

Filtragem Espacial 2 Eng. Charles Way Hun Fung MSc.


Para demonstrar o resultado na figura a seguir, utilizaremos o subplot, colocando a esquerda
a original e a direita o resultado da filtragem:

Figura 2 – Resultado da operação de filtragem.

Detecção de linhas

Segundo (Gonzalez, 2010), as linhas podem ter diversas direções, por isso podemos usar
existem diversas máscaras para realizar estas detecções. Estas terão uma ênfase maior em uma
determinada direção, a seguir são apresentadas estas matrizes:

Figura 3 – Máscaras para detecção de linhas em diversas direções.

Fonte: (Gonzalez, 2010)

Perceba que para cada matriz os maiores valores apresentam a direção que esta máscara.

A seguir vamos inserir estas matrizes no SciLab:

Filtragem Espacial 3 Eng. Charles Way Hun Fung MSc.


Perceba que também é possível criar matrizes apenas espaçando os números na respectiva
linha.

Podemos realizar uma convolução diferente para cada uma das máscaras apresentadas:

Figura 4 – (a) horizontal, (b) 45°, (c) vertical, (d) -45°

Filtragem Espacial 4 Eng. Charles Way Hun Fung MSc.


O código usado para reproduzir a figura 4 é:

Detecção de Bordas

Bordas são usadas para segmentar uma imagem baseada em variações abruptas da
intensidade dos pixels. As bordas podem ser modeladas seguindo três modelos:

Figura 5 – Modelo de bordas: (a) Degrau, (b) Rampa, (c) Telhado (Roof).

Fonte: (Gonzalez, 2010).

Para fazer a detecção de borda podemos seguir alguns modelos propostos de máscaras
que existem na literatura como apresentado na figura a seguir:

Filtragem Espacial 5 Eng. Charles Way Hun Fung MSc.


Figura 6 – Máscaras para detecção de borda.

Fonte: (Gonzalez, 2010).

Máscaras de Roberts

Inicialmente iremos inserir as máscaras de Roberts no SciLab para então aplicar na imagem, temos:

Aplicando a convolução entre as máscaras e a imagem temos:

(b)
(a)

Figura 7 – Resultado da convolução pelas máscaras de Roberts. (a)Mask_Roberts1,


(b)Mask_Roberts2.

Filtragem Espacial 6 Eng. Charles Way Hun Fung MSc.


Máscaras de Prewitt

Inserindo as máscaras apresentadas na figura 6 no SciLab:

Aplicando a convolução entre as máscaras de Prewitt e a imagem:

(a) (b)

Figura 8 – Resultado da convolução pelas máscaras de Prewitt. (a)Mask_Prewitt1,


(b)Mask_Prewitt2.

Máscaras de Sobel

Inserindo as máscaras de Sobel apresentadas na figura 6 no SciLab:

Aplicando a convolução entre as máscaras de Sobel e a imagem:

Filtragem Espacial 7 Eng. Charles Way Hun Fung MSc.


(a) (b)

Figura 9 – Resultado da convolução pelas máscaras de Sobel. (a)Mask_Sobel1, (b)Mask_Sobel2.

Inserindo Ruído em Imagens

Ruídos podem ser inseridos em imagens devido a alguns fatores como:

- Mau funcionamento do equipamento.

- Interferências eletrônicas – sensor, circuito eletrônico, recepção dos dados, etc.

- Intermitência nas transmissões de dados.

Este ruído pode se enquadrar em duas categorias:

- Sistemático

- Aleatório.

O primeiro tipo de ruído é causado pelo sistema de processamento da imagem, dentre os erros
possíveis de ocorrer são: Striping, que consiste em uma falha sistemática no detector e line drop
que é uma falha na atribuição de um valor de pixel.

No segundo caso são erros causados pelo meio ou por alguma interferência externa, esta causa
erros de bit alterando distribuição de pixels da imagem.

No SciLab podemos inserir diversos tipos de ruído, aqui no curso utilizaremos apenas dois tipos
muito conhecidos em processamento de imagens: Gaussiano e “Sal e Pimenta”.

Filtragem Espacial 8 Eng. Charles Way Hun Fung MSc.


Para inserir ruído usando o SciLab deve fazer uso da função imnoise:

imnoise(<imagem>,<tipo de ruído>, <densidade de ruído>);

Onde:

- Imagem é uma imagem recebida em uma variável.

- Tipo de ruído: Deve ser o nome do ruído em inglês entre aspas simples, utilizaremos: ‘gaussian’ e
‘salt & pepper’.

- Densidade de ruído: Pode-se considerar que é a variação do ruído que varia de 0 a 1. Por padrão
tem valor 0.05.

Exemplos:

Aplicando o ruído Gaussiano em uma imagem recebida:

(a) (b)

(c) (d)

Filtragem Espacial 9 Eng. Charles Way Hun Fung MSc.


Figura 10 – Imagem com ruído gaussiano. (a) Imagem original, (b) Imagem com ruído de 0.05, (c)
Imagem com ruído 0.5 e (d) Imagem com ruído 0.7.

Aplicando o ruído Sal e Pimenta em uma imagem recebida:

(a) (b)

(c) (d)

Figura 11 – Imagem com ruído sal e pimenta. (a) Imagem original, (b) Imagem com ruído de 0.05,
(c) Imagem com ruído 0.5 e (d) Imagem com ruído 0.7.

Filtragem Espacial 10 Eng. Charles Way Hun Fung MSc.


Filtro de média

O filtro de média consiste no cálculo da média dos pontos que estão sub a máscara,
produzindo um ponto de saída. Este ponto normalmente é o ponto central da máscara.

Os filtros de média em conjunto com os filtros de mediana são filtros usados para suavizar a
imagem, ou seja, estes filtros causam um borramento na imagem.

Para fazer uso deste filtro no Scilab deve-se usar a função fspecial() para criar o filtro, então
aplica-lo usando a função imfilter. A seguir vamos compreender os parâmetros de funcionamento
desta função:

A função fspecial pode ser usada para criar diversos tipos de filtros, desde detectores de borda
a filtros de média. No caso específico de filtro de média:

filtro=fspecial(‘average’,<tamanho>)

Esta função retorna o filtro que será utilizado em filtro.

- Tamanho é a dimensão da máscara, por exemplo 3 significa 3x3.

Exemplo:

(a) (b) (c)

Figura 12 – (a) Imagem original, (b) Imagem com ruído sal e pimenta de 0.05, (c) Imagem
ruidosa suavizada por um filtro de média 3x3.

Filtragem Espacial 11 Eng. Charles Way Hun Fung MSc.


Filtro de mediana

Este filtro segue o mesmo padrão do filtro de média, porém o valor de saída é o valor da
mediana dos valores que estão sub a máscara.

Para fazer uso deste filtro no SciLab deve-se fazer uso da função immedian():

ImagemFiltrada = immedian(<Imagem>,<tamanho>);

Onde:

- Imagem é a imagem a ser filtrada.

- Tamanho é o tamanho da máscara do filtro.

(a) (b) (c)

Figura 13 – (a) Imagem original, (b) Imagem com ruído sal e pimenta de 0.05, (c) Imagem
ruidosa suavizada por um filtro de mediana 3x3.

Referências

[1] R. C. Gonzalez e R. E. Woods, Processamento Digital de Imagens, São Paulo:


Pearson, 2010.

Filtragem Espacial 12 Eng. Charles Way Hun Fung MSc.

Você também pode gostar