Exercicio 10 - Filtro de Gabor

Ref: http://en.wikipedia.org/wiki/Gabor_filter

Equacao do Filtro de Gabor

onde

e

Sendo

x,y - Tamanho da Imagem

Lambda - Largura de Onda

Theta - Orientacao

Psi - Deslocamento de Fase

Sigma - Largura de Banda

Gamma - Relacao de Aspecto

Filtro de Gabor

 1 def FiltroGabor(X,Y, Lambda, Theta, Psi, Sigma, Gamma):
 2 
 3     (x,y) = iameshgrid(arange(-X/2, X/2), arange(-Y/2,Y/2))
 4 
 5     # Rotation
 6     xl=  x*cos(Theta) +y*sin(Theta)
 7     yl= -x*sin(Theta) +y*cos(Theta)
 8 
 9     gb=exp(-((xl**2 + yl**2 * Gamma**2)/(2*Sigma**2)))* cos(2*pi*(xl/Lambda)+Psi)
10 
11     return gb

Funcao Ler Parametros

 1 def LerParametrosEntrada():
 2     parser = OptionParser()
 3     parser.add_option("--arquivo", type='string', default='Attachments/ia636-2009/exercicio9/barcode.tif', help='nome do arquivo de imagem')
 4     parser.add_option("--Lambda", type='int', default=15, help='Largura de Onda')
 5     parser.add_option("--Theta", type='float', default=0.5, help='Orientacao')
 6     parser.add_option("--Psi", type='float', default=0, help='Deslocamento de Fase')
 7     parser.add_option("--Sigma", type='int', default=10, help='Largura de Banda')
 8     parser.add_option("--Gamma", type='float', default=0.5, help='Relacao de Aspecto')
 9 
10     opt, arg = parser.parse_args()
11     return [opt.arquivo, opt.Lambda, opt.Theta, opt.Psi, opt.Sigma ,opt.Gamma]

Testar Filtro de Gabor

 1 Params = LerParametrosEntrada()
 2 
 3 f =  adreadgray(Params[0])
 4 iashow(f,title='Imagem Original')
 5 
 6 F = iadft(f)
 7 iashow(iadftview(F),title='Imagem Original - Dominio da Frequencia')
 8 
 9 w,l = f.shape
10 
11 g = FiltroGabor( w, l, Params[1], Params[2], Params[3], Params[4], Params[5])
12 iashow(ianormalize(g,[0,255]), title='Filtro Gabor')
13 
14 G = iadft(g)
15 iashow(iadftview(G),title='Filtro de Gabor - Dominio da Frequencia')
16 
17 Fg = F * iaifftshift(g)
18 iashow(abs(iaidft(Fg)),title='Imagem Filtrada pelo g')
19 
20 FG = F * iaifftshift(G)
21 iashow(abs(iaidft(FG)),title='Imagem Filtrada pelo G')
ERROR execute

------------------------------------------------------------
*** Exception while evaluating code:
  File "<string>", line 6, in <module>
NameError: name 'iadft' is not defined

------------------------------------------------------------

Imagem Original