Escolar Documentos
Profissional Documentos
Cultura Documentos
LISTA DE EXERCÌCIOS II
Questão 1 - (a) implemente o filtro passa-baixa ideal em que todas as frequências acima da
frequência de corte Wc são retiradas da imagem:
(iii) wc = 3*π/8 - Por fim aplicamos a frequência de corte 3π/8 que gera um filtro com região de
corte um pouco maior, que permite a passagem de mais frequências, o que gera uma
imagem resultante com pouca suavização e com uma riqueza de detalhes semelhante a
da imagem original, como podemos perceber pela imagem abaixo:
(b) implemente o filtro Butterworth passa-baixa:
Abaixo é apresentado um trecho do código implementado, onde podemos ver a função
transformada_fourier que recebe uma imagem e utiliza a função ftt2() do numpy para fazer a
transformada de Fourier e levar a imagem para o domínio da frequência, em seguida definimos o
filtro_butterworth() e a função passa_baixa() que realizará a aplicação o filtro sobre a imagem de
entrada.
(i) wc = π/8 - Aplicamos o filtro implementado na imagem mostrada abaixo, inicialmente com
frequência de corte π/8 que gera uma imagem com grande suavização o que acarreta na
perda de muitos detalhes
(ii) wc = π/4 - Testamos também com a frequência de corte π/4, que resulta em um filtro um
pouco maior e realiza uma melhor suavização na imagem, mantendo uma boa riqueza de
detalhes.
(iii) wc = 3*π/8 - Finalmente, aplicamos a frequência de corte 3π/8 que resulta em um filtro
maior que permite a passagem de mais frequências e realiza uma suavização menor na
imagem, como podemos perceber na imagem abaixo:
(c) Quais diferenças visuais podem ser encontradas nos resultados finais das filtragens utilizando os
filtros ideais e os filtros de Butterworth?
Abaixo podemos visualizar duas imagens, a da esquerda gerada pelo código da letra a, o filtro passa
baixa ideal com frequência de corte π/8 e a da direita gerada pelo código da letra b, o filtro de
Butterworth também com a mesma frequência de corte π/8. A diferença visual é muito sutil, mas a
sensação que tenho que é a da direita apresenta uma suavização melhor, com menos ruídos. Ao
lado do bico da ave do lado esquerdo há a presença de traços brancos gerados provavelmente pelo
processo de aplicação do filtro, o que não acontece na da esquerda.
(ii) wc = π/4 – testando agora para a frequência de corte π/4, obtemos o seguinte resultado:
Resultado ampliado:
Podemos perceber na imagem acima uma menor intensidade nas bordas, isso se deve a
frequência de corte que foi escolhida, de π/4.
(iii) wc = 3*π/8 – Por fim, utilizando a frequência de corte 3π/8, obtemos isso:
Resultado ampliado:
(e) Realize o processamento de uma imagem de entrada x(n1; n2) sobrepondo o componente
derivativo x0(n1; n2) ao sinal original:
Nas imagens acima podemos visualizar a esquerda a imagem original e a direita a imagem
resultante, que sofreu a operação de acréscimo y(n1; n2) = x(n1; n2) + x’(n1; n2) , como resultado
podemos perceber um aguçamento nas bordas da imagem resultante que se deve a soma das
intensidades dos pixel originais da borda aos pixels da imagem x’(n1; n2).
Questão 2 –
Nesta questão realizamos a implementação do método de Canny, que tem como objetivo detectar as
bordas dos elementos de uma imagem, a primeira etapa do método de canny consiste em realizar
uma suavização na imagem, essa funcionalidade não é feita diretamente pela função do OpenCV
que utilizamos, por isso utilizamos o filtro de butterworth passa baixa para suavizar a imagem e em
seguida aplica Canny definindo os parâmetros de Talto e Tbaixo e a norma que será usada para o
cálculo dos gradientes.
Imagem original:
Testes realizados:
(i) Wc = π/8
(ii) Wc = π/4
(iii) Wc = π/2
Como podemos perceber pelas imagens acima, para frequências de corte baixas como pi/8, temos uma baixa
detecção de bordas, pois o filtro será mais rigoroso nas frequências que irão passar, para o valor pi/4 já
temos um resultado melhor, com identificação de bordas em áreas da figura que não haviam sido detectadas
anteriormente. Conforme a frequência de corte vai aumentando mais frequências vão sendo permitidas e
mais bordas vão sendo detectadas na imagem como aconteceu no teste com pi/2. Identificar a qual
frequência de corte é mais adequada irá depender dos propósitos que se deseja utilizar a imagem
processada, no caso analisado eu diria que a mais adequada seria a 2ª encontrada com a frequência de corte
pi/4, pois ela identifica de forma bem uniforme as bordas da superfície do labirinto, ignorando quase que
totalmente os ruídos e as linhas da profundidade.
Questão 3 –
O algoritmo de Canny é dividido em 4 etapas, que são elas:
1 – Redução de ruído: Utiliza um filtro Gaussiano e através de convolução suaviza ligeiramente os
elementos da imagem, isto é reduz o efeito de pixels ruidosos na imagem.
2 – Cálculo dos gradientes: Como a borda de uma imagem pode estar em vários sentidos é
necessário identificar em que sentido elas estão, se verticais, horizontais ou diagonais.
3 – Eliminação dos gradientes não máximos: Quando um valor de magnitude é menor que os seus
vizinhos na direção do gradiente ele é desconsiderado.
4 – Limiarização: Utiliza dois valores de limiares inicias, um alto e um baixo, e faz a verificação
selecionando os pixels que são maiores que o limiar máximo ou menor que o limiar máximo e maior
que o mínimo.
O método de Canny contem parâmetros que podem ser alterados e que afetarão diretamente o
resultado final, são eles:
O filtro que será utilizado para a suavização do passo 1;
Os limiares, Talto e Tbaixo aplicados no passo 4;
Imagem de entrada:
Teste 1:
Parâmetros utilizados:
Filtro butterworth passa baixa para suavização, com frequência de corte pi/2
Algoritmo de Canny com Tbaixo = 100 e Talto=110
Resultado:
Teste 2:
Parâmetros utilizados:
Filtro butterworth passa baixa para suavização, com frequência de corte pi/4
Algoritmo de Canny com Tbaixo = 25 e Talto = 100
Resultado:
Questão 4 – Utilize o algoritmo de Canny da questão anterior para detectar as bordas de uma
imagem digital:
Imagem original: