jailton_Ex9

Autor: jailton
Data: 19/05/2009
  1 from numpy import mgrid,meshgrid
  2 from numpy.fft import fft2,ifft2,fftshift
  3 fxy1 = mmreadgray('db1_a/1_1.tif')
  4 fxy2 = mmreadgray('Attachments/ia636-2009/exercicio9/barcode.tif')
  5 def jjnormaliza(fi,Lmax):   #Função normaliza
  6     minf=numpy.min(fi)
  7     delta=numpy.ptp(fi)
  8     fo=(fi-minf)*Lmax/delta
  9     return fo
 10 def jjcos(N,M,fx,fy,fase):      #Função cosseno
 11     x, y = numpy.meshgrid(range(N),range(M))
 12     fo = cos(2*pi*(x*fx+y*fy)+fase)
 13     return fo
 14 def jjcirculo(N,M,x0,y0,r):     #Função círculo
 15     x, y = numpy.meshgrid(range(M),range(N))
 16     fo = (x-x0)**2+(y-y0)**2-r**2
 17     for i in range(N):
 18        for j in range(M):
 19           if fo[i,j]<= 0:
 20               fo[i,j] = 1
 21           else:
 22              fo[i,j] = 0
 23     return fo
 24 #----------------------------------
 25 iashow(fxy1,title = "1-f(x,y)-Imagem de Entrada 1")
 26 Fuv=fft2(fxy1)
 27 Fuv1 = iadftview(Fuv)
 28 iashow(Fuv1,title = "1-Magnitude-Imagem de Entrada")
 29 #----------------------------------
 30 hxy=jjcirculo(374,388,194,187,58)  #Filtro Passa-Baixa
 31 iashow(uint16(hxy),title = "1.1-h(x,y)-Filtro Passa-Baixa")
 32 HuvFuv=Fuv*fftshift(hxy)
 33 HuvFuv1 = iadftview(HuvFuv)
 34 iashow(uint16(HuvFuv1),title = "1.1-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa")
 35 ifxy=abs(ifft2(HuvFuv))
 36 iashow(uint16(ifxy),title = "1.1-Saída- f(x,y) - Após Filtro Passa-Baixa")
 37 #-------Filtro-Passa Alta---------------
 38 hxy=1-jjcirculo(374,388,194,187,25)
 39 iashow(uint16(hxy),title = "1.2-h(x,y)- Filtro Passa-Alta")
 40 HuvFuv=Fuv*fftshift(hxy)
 41 HuvFuv1 = iadftview(HuvFuv)
 42 iashow(uint16(HuvFuv1),title = "1.2-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Alta")
 43 ifxy=abs(ifft2(HuvFuv))
 44 iashow(uint16(ifxy),title = "1.2-Saída - f(x,y) - Após Filtro Passa Alta")
 45 #--------Filtro-Corta Faixa-------------
 46 hxy=(1-jjcirculo(374,388,194,187,58))+(jjcirculo(374,388,194,187,25))
 47 iashow(uint16(hxy),title = "1.3-h(x,y)- Filtro Corta-Faixa")
 48 HuvFuv=Fuv*fftshift(hxy)
 49 HuvFuv1 = iadftview(HuvFuv)
 50 iashow(uint16(HuvFuv1),title = "1.3-F(u,v)->F(u,v)*H(u,v)-Após Filtro Corta-Faixa")
 51 ifxy=abs(ifft2(HuvFuv))
 52 iashow(uint16(ifxy),title = "1.3-Saída - f(x,y) - Após Filtro Corta-Faixa")
 53 #------Filtro-Passa Faixa---------------
 54 hxy=jjcirculo(374,388,194,187,58)-(jjcirculo(374,388,194,187,25))
 55 iashow(uint16(hxy),title = "1.4-h(x,y)- Filtro Passa-Faixa")
 56 HuvFuv=Fuv*fftshift(hxy)
 57 HuvFuv1 = iadftview(HuvFuv)
 58 iashow(uint16(HuvFuv1),title = "1.4-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Faixa")
 59 ifxy=abs(ifft2(HuvFuv))
 60 iashow(uint16(ifxy),title = "1.4-Saída - f(x,y) - Após Filtro Passa-Faixa" )
 61 #-------------------------------------
 62 iashow(fxy2,title = "2-f(x,y)-Imagem de Entrada 2")
 63 Fuv=fft2(fxy2)
 64 Fuv1 = iadftview(Fuv)
 65 iashow(Fuv1,title = "2-Magnitude-Imagem de Entrada")
 66 #----------------------------------
 67 hxy=jjcirculo(256,256,128,128,60)  #Filtro Passa-Baixa
 68 iashow(uint16(hxy),title = "2.1-h(x,y)-Filtro Passa-Baixa")
 69 HuvFuv=Fuv*fftshift(hxy)
 70 HuvFuv1 = iadftview(HuvFuv)
 71 iashow(uint16(HuvFuv1),title = "2.1-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa")
 72 ifxy=abs(ifft2(HuvFuv))
 73 iashow(uint16(ifxy),title = "2.1-Saída- f(x,y) - Após Filtro Passa-Baixa")
 74 #-------Filtro-Passa Alta---------------
 75 hxy=1-jjcirculo(256,256,128,128,10)
 76 iashow(uint16(hxy),title = "2.2-h(x,y)- Filtro Passa-Alta")
 77 HuvFuv=Fuv*fftshift(hxy)
 78 HuvFuv1 = iadftview(HuvFuv)
 79 iashow(uint16(HuvFuv1),title = "2.2-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Alta")
 80 ifxy=abs(ifft2(HuvFuv))
 81 iashow(uint16(ifxy),title = "2.2-Saída - f(x,y) - Após Filtro Passa Alta")
 82 #--------Filtro-Corta Faixa-------------
 83 hxy=(1-jjcirculo(256,256,128,128,60)+(jjcirculo(256,256,128,128,10)))
 84 iashow(uint16(hxy),title = "2.3-h(x,y)- Filtro Corta-Faixa")
 85 HuvFuv=Fuv*fftshift(hxy)
 86 HuvFuv1 = iadftview(HuvFuv)
 87 iashow(uint16(HuvFuv1),title = "2.3-F(u,v)->F(u,v)*H(u,v)-Após Filtro Corta-Faixa")
 88 ifxy=abs(ifft2(HuvFuv))
 89 iashow(uint16(ifxy),title = "2.3-Saída - f(x,y) - Após Filtro Corta-Faixa")
 90 #------Filtro-Passa Faixa---------------
 91 hxy=(jjcirculo(256,256,128,128,60)-(jjcirculo(256,256,128,128,10)))
 92 iashow(uint16(hxy),title = "2.4-h(x,y)- Filtro Passa-Faixa")
 93 HuvFuv=Fuv*fftshift(hxy)
 94 HuvFuv1 = iadftview(HuvFuv)
 95 iashow(uint16(HuvFuv1),title = "2.4-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Faixa")
 96 ifxy=abs(ifft2(HuvFuv))
 97 iashow(uint16(ifxy),title = "2.4-Saída - f(x,y) - Após Filtro Passa-Faixa" )
 98 #-------------------------------------
 99 #-------------------------------------
100 fo=jjcos(256,256,0.02,0.01,0)
101 iashow(uint16(jjnormaliza(fo,255)),title = "Entrada-Função Cosseno-2D")
102 Fuv=fft2(fo)
103 Fuv1 = iadftview(Fuv)
104 #-------------------------------------
105 iashow(Fuv1,title = "Magnitude (Fourier-Imagem de Entrada")
106 hxy=jjcirculo(256,256,128,128,60)  #Filtro Passa-Baixa
107 iashow(uint16(hxy),title = "h(x,y)-Filtro Passa-Baixa")
108 HuvFuv=Fuv*fftshift(hxy)
109 HuvFuv1 = iadftview(HuvFuv)
110 iashow(uint16(HuvFuv1),title = "F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa")
111 ifxy=abs(ifft2(HuvFuv))
112 iashow(uint16(ifxy),title = "Saída- f(x,y) - Após Filtro Passa-Baixa")

1-f(x,y)-Imagem de Entrada 1

1-Magnitude-Imagem de Entrada

1.1-h(x,y)-Filtro Passa-Baixa

1.1-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa

1.1-Saída- f(x,y) - Após Filtro Passa-Baixa

1.2-h(x,y)- Filtro Passa-Alta

1.2-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Alta

1.2-Saída - f(x,y) - Após Filtro Passa Alta

1.3-h(x,y)- Filtro Corta-Faixa

1.3-F(u,v)->F(u,v)*H(u,v)-Após Filtro Corta-Faixa

1.3-Saída - f(x,y) - Após Filtro Corta-Faixa

1.4-h(x,y)- Filtro Passa-Faixa

1.4-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Faixa

1.4-Saída - f(x,y) - Após Filtro Passa-Faixa

2-f(x,y)-Imagem de Entrada 2

2-Magnitude-Imagem de Entrada

2.1-h(x,y)-Filtro Passa-Baixa

2.1-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa

2.1-Saída- f(x,y) - Após Filtro Passa-Baixa

2.2-h(x,y)- Filtro Passa-Alta

2.2-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Alta

2.2-Saída - f(x,y) - Após Filtro Passa Alta

2.3-h(x,y)- Filtro Corta-Faixa

2.3-F(u,v)->F(u,v)*H(u,v)-Após Filtro Corta-Faixa

2.3-Saída - f(x,y) - Após Filtro Corta-Faixa

2.4-h(x,y)- Filtro Passa-Faixa

2.4-F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Faixa

2.4-Saída - f(x,y) - Após Filtro Passa-Faixa

Entrada-Função Cosseno-2D

Magnitude (Fourier-Imagem de Entrada

h(x,y)-Filtro Passa-Baixa

F(u,v)->F(u,v)*H(u,v)-Após Filtro Passa-Baixa

Saída- f(x,y) - Após Filtro Passa-Baixa