Exercício 10 de IA636-2009

Autor: Matias
Data: 29/05/2009

Questão 1

  1. Implementar o filtro de Gabor, tanto no domínio da frequência como no domínio espacial

Foi usada a seguinte expressão para a filtro de Gabor, no domínio espacial:

Onde:

 1 def filtro_gabor(tamanho_x,tamanho_y,theta,sigma_x,sigma_y,f):
 2     X,Y = meshgrid(range(-tamanho_x/2,tamanho_x/2),range(-tamanho_y/2,tamanho_y/2))
 3     X_theta = X * cos(theta) + Y * sin(theta)
 4     Y_theta = -X * sin(theta) + Y *cos(theta)
 5     filtro = exp((-1./2) * ( (X_theta**2/ sigma_x**2) + (Y_theta**2 / sigma_y**2)) ) * cos(2*pi*f*X_theta)
 6 
 7     return filtro
 8 
 9 def filtro_gabor_freq(tamanho_x,tamanho_y,theta,sigma_x,sigma_y,f):
10     filtro = iadft(filtro_gabor(tamanho_x,tamanho_y,theta,sigma_x,sigma_y,f))
11     return filtro
12 
13 
14 imagem = filtro_gabor(200,200,pi/3,15,10,.3)
15 adshow(ianormalize(imagem,[0,255]),title='Exemplo filtro Gabor, dominio espacial, theta=pi/3, sigma_x=15,sigma_y=10,f=.3')

Exemplo filtro Gabor, dominio espacial, theta=pi/3, sigma_x=15,sigma_y=10,f=.3

1 imagem = filtro_gabor_freq(200,200,pi/3,15,10,.3)
2 adshow(iadftview(imagem),title='O mesmo exemplo anterior, agora no dominio da frequencia.')

O mesmo exemplo anterior, agora no dominio da frequencia.

Questão 2

  1. Aplicar o filtro de Gabor em diversas direções e classificar a orientação das regiões do fingerprint.
 1 imagem = adread('db1_a/1_1.tif')
 2 
 3 
 4 imagem_freq = iadft(imagem)
 5 
 6 limite = 40
 7 for k in range(8):
 8 
 9     G = filtro_gabor_freq(imagem.shape[1],imagem.shape[0],k*pi/8,12,12,1./4)
10     imagem_filtrada = imagem_freq * G
11     imagem_nova = abs(iaidft(imagem_filtrada))
12     imagem_nova = ianormalize(iaifftshift(imagem_nova),[0,100]) > limite
13     adshow(imagem_nova,title='Angulo %d*pi/8, Limite %d%%' % (k,limite),id=k)

Angulo 0*pi/8, Limite 40%

Angulo 1*pi/8, Limite 40%

Angulo 2*pi/8, Limite 40%

Angulo 3*pi/8, Limite 40%

Angulo 4*pi/8, Limite 40%

Angulo 5*pi/8, Limite 40%

Angulo 6*pi/8, Limite 40%

Angulo 7*pi/8, Limite 40%