lionisEX10

Autor: lionis
Data: 28/05/2009

Filtro de Gabor

Um filtro de Gabor é um filtro linear, cuja resposta do impulso é definida por uma função harmônica, multiplicada por uma função Gaussiana.

Domínio espacial

Onde:

A magnitude é dada por:

Implementação no domínio espacial

 1 def gaborFilterSpatial(size, theta, f, sigma):
 2     h,w = size[0], size[1]
 3     x,y = meshgrid(arange(-w/2,w/2), arange(-h/2,h/2))
 4 
 5     xtheta = x*cos(theta) + y*sin(theta)
 6     ytheta = -x*sin(theta) + y*cos(theta)
 7 
 8     return exp(-0.5*((xtheta/sigma[0])**2+(ytheta/sigma[1])**2)) * cos(2*pi*f*xtheta)
 9 
10 h_spatial = gaborFilterSpatial([250,250], pi/4, 0.02, [20, 20])

Implementação no domínio de frequência

1 def gaborFilterFrequency(size, theta, f, sigma):
2     h = gaborFilterSpatial(size, theta, f, sigma)
3     return iadft(h)
4 
5 h_frequency = gaborFilterFrequency([250,250], pi/4, 0.2, [10, 10])
1 adshow(ianormalize(h_spatial, [0,256]),title='Filtro de Gabor no domínio espacial')
2 adshow(ianormalize(iadftview(h_frequency), [0,256]),title='Filtro de Gabor no domínio de frequência')
ianormalize: warning, upper valuer larger than 255. Cannot fit in uint8 image

Filtro de Gabor no domínio espacial

Filtro de Gabor no domínio de frequência

Aplicação na impressão digital

 1 imgFingerPrint = mmreadgray('db1_a/1_1.tif')
 2 F_fingerprint = iadft(imgFingerPrint)
 3 
 4 adshow(imgFingerPrint,title='Impressão digital original')
 5 adshow(ianormalize(iadftview(F_fingerprint), [0,256]),title='Transformada da imagem')
 6 
 7 for i in range(0,180,15):
 8     H = gaborFilterFrequency(imgFingerPrint.shape, pi*i/180, 0.2, [10, 10])
 9     HF = H * F_fingerprint
10     I = iafftshift(iaidft(HF))
11 
12     adshow(iadftview(HF),title='Imagem transformada no domínio da frequência')
13     adshow(ianormalize(abs(I),[0,256]),title='Impressão digital: ângulo=' + str(i))
ianormalize: warning, upper valuer larger than 255. Cannot fit in uint8 image

Impressão digital original

Transformada da imagem

Imagem transformada no domínio da frequência

Impressão digital: ângulo=0

Imagem transformada no domínio da frequência

Impressão digital: ângulo=15

Imagem transformada no domínio da frequência

Impressão digital: ângulo=30

Imagem transformada no domínio da frequência

Impressão digital: ângulo=45

Imagem transformada no domínio da frequência

Impressão digital: ângulo=60

Imagem transformada no domínio da frequência

Impressão digital: ângulo=75

Imagem transformada no domínio da frequência

Impressão digital: ângulo=90

Imagem transformada no domínio da frequência

Impressão digital: ângulo=105

Imagem transformada no domínio da frequência

Impressão digital: ângulo=120

Imagem transformada no domínio da frequência

Impressão digital: ângulo=135

Imagem transformada no domínio da frequência

Impressão digital: ângulo=150

Imagem transformada no domínio da frequência

Impressão digital: ângulo=165

Conclusão

Nota-se que a cada variação de ângulo, uma região da impressão digital é valorizada.