Você está na página 1de 3

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA BIOMÉDICA
PROCESSAMENTO DIGITAL DE IMAGENS

Laboratório – Capítulos 04 e 05

IMPLEMENTAÇÃO

1. 2-D fast Fourier transform. Use 'cameraman.tif'

a) Calcule a transformada rápida de Fourier da imagem centralizando as frequências. Siga os seguintes passos:
I: Calcule a fft (2D) da imagem (double)
II: Calcule o log (abs(I))
III: Exiba a transformada, utilizando low=0 e hight=20
IV: Centralize as frequências de “I”
III: Calcule o log (abs(II))
IV: Exiba a imagem transformada, utilizando low=0 e hight=20
b) Explique porque é necessário centralizar as frequências.

2. Filtragem usando a transformada de Fourier. Para aplicar um filtro em uma imagem utilizamos a convolução. A convolução
de uma máscara na imagem (filtragem espacial) equivale a multiplicação da transformada de Fourier da imagem pela transformada
da máscara (filtragem do espectro).

a) Crie uma função com o nome “function im=mascaraFourier(imagem, mascara)”. Essa função deve receber a
imagem e máscara. A função deve calcular a fft da imagem (utilizando o operador shift) e multiplica-la ponto a ponto (.*) a imagem
transformada pela máscara. E por fim calcular as operações inversas de shift e da fft. Como saída ela deve fornecer a imagem
transformada.

3. Filtro ideal. O filtro ideal estabelece que todas as frequências dentro de um círculo de raio R, cujo centro se alinha com o centro
da imagem devem ser mantidas (filtro passa-baixa) ou eliminadas (passa-alta). É um filtro sem atenuação, ele faz um corte abrupto
nas frequências, criando falsas bordas.

Máscara ideal. O código, a seguir, é de uma função que recebe os tamanhos da máscara e raio. Como resultado, essa função retorna
uma matriz preenchida com zeros, com exceção do círculo central o qual será preenchido com valores 1. Trata-se de uma máscara
de suavização (passa-baixa).

function mascara = mascaraIdeal(ny,nx,raio)


mascara=zeros (ny,nx);
mascara(round(ny/2),round(nx/2))=1;
bw=bwdist(mascara);
mascara(bw<=raio)=1;
end
a) Filtro ideal de suavização. A ideia por trás do filtro ideal de suavização é muito simples: a partir do centro da imagem
transformada, e após a aplicação da correção da centralização, devemos selecionar e manter apenas as frequências localizadas a
uma certa distância do centro, sendo as demais frequências zeradas. É essa distância a partir do centro que define o nível de
suavização do filtro: quanto menor a distância, maior a suavização. Crie um código que:

I: Leia a imagem. (Utilize 'shadow.tif')


II: Crie uma máscara (utilize a função dada na questão 3) com as dimensões da imagem e raio=20.
III: Calcule a transformada de Fourier (utilize a função criada na questão 2 – letra a) recebendo a imagem e a máscara.
IV: Exiba a original, máscara e o resultado da suavização. Lembre-se de transformar o resultado da suavização para uint8
antes de exibir.

b) Filtro ideal de realce. A ideia por trás do filtro ideal de suavização é muito simples: a partir do centro da imagem transformada,
e após a aplicação da correção da centralização, devemos selecionar e zerar apenas as frequências localizadas a uma certa distância
do centro, sendo as demais frequências mantidas. É essa distância a partir do centro que define o nível de realce do filtro: quanto
maior a distância, maior ênfase as frequências mais altas. Mostra os detalhes da imagem. Após a criação do filtro, eu resultados
deve ser somado a imagem original. Crie um código que:

I: Leia a imagem. (Utilize 'shadow.tif')


II: Crie uma máscara (utilize a função dada na questão 3) com as dimensões da imagem e raio=20.
III: Inverta os valores lógicos de II, para que a máscara seja de realce.
IV: Calcule a transformada de Fourier (utilize a função criada na questão 2 – letra a) recebendo a imagem e a máscara.
V: Some o filtro (IV) a imagem (double).
VI: Exiba a original, máscara e o resultado da suavização. Lembre-se de transformar o resultado da suavização para uint8
antes de exibir.

4. Desenvolva um algoritmo utilizando estratégia de restauração e reconstrução de imagens, a partir de uma imagem M x N (imagem
do projeto). Segue os passos:

a) Realiza a leitura da imagem inicial;


b) Escolha um tipos de ruído e aplique na imagem inicial;
c) Aplique o filtro da mediana na imagem resultante de (b);
d) Aplique o filtro da média geométrica na imagem resultante de (b);
e) Ilustre o histograma da imagem inicial (a), da imgem resultante em (b), em (c) e (d);
f) Descreva o que acontece em cada aplicação.

5.Desenvolva um algoritmo utilizando estratégia de restauração e reconstrução de imagens, para remover o ruído existente nas
figuras Lena e Vale de la Luna. Faça a comparação de 2 estratégias na utilização desses filtros. Descreva suas estratégias e resultados
adquiridos.

(a) (b)
Figura 1: (a) Lena (https://felipemk.webnode.com.br) e (b) Vale de la aluna (http://elblogdelquesape.blogspot.com)
6. Com base na figura abaixo, responda os itens (a) e (b).

a) Escolha uma imagem e gere a imagem desfocada (g) e a imagem recuperada após a filtragem inversa (f^). Utilizando PSF
Gaussiana.
b) Adicione um ruído Gaussiano (g=imnoise(g,'gaussian',0,0.002)). Exiba a nova imagem desfocada e o resultado
da filtragem inversa. Explique porque ao adicionar ruído a filtragem inversa não funcionou.

7. Filtragem Wiener-Helstrom com restrição (mínimo erro quadrático médio). Sugestão: utilizar a função disponível no Matlab
“deconvreg”.

a) Criar uma imagem com influência da PSF e ruído.


• Escolha uma imagem
• Crie uma PSF gaussiana com estes parâmetros: ('gaussian',7,10)
• Produza uma imagem desfocada/borrada e ruidosa, ou seja, onde há influência da PSF/degradação e ruído. Utilizar nível
de ruído V=0.1.
b) Realizar a filtragem de Wiener com restrição: com o operador laplaciano padrão e com Multiplicador de Lagrange fixado 10
vezes maior.

Referências

[1] Rafael C. Gonzalez; Richard E. Woods. Processamento Digital de Imagens 3a edição. Pearson.
[2] Atividade adaptada: https://web.fe.up.pt

Você também pode gostar