A implementação da convolução do scipy é genérica mas não é mais eficiente que a ia.conv
Funções necessárias:
Demos:
http://adessowiki.fee.unicamp.br/adesso/wiki/courseIA8981S2015/aula7/view/
In [15]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
N = 100
x = np.arange(N)
u = 1
f = np.cos(2*np.pi * x * u /N )
plt.plot(f)
#print(f)
Out[15]:
In [16]:
N,M = 100,200
u,v = 5,30
phi = 0
x,y = np.indices((N,M))
f = np.cos(2*np.pi*u*x/N + 2*np.pi*v*y/M + phi)
#print(f)
plt.imshow(f,cmap='gray')
plt.colorbar()
Out[16]:
In [13]:
import matplotlib.image as mpimg
from numpy.fft import fft2
f = mpimg.imread('../data/cameraman.tif')
f2 = np.zeros((128, 256))
f2[:,63:63+8] = 1
plt.imshow(f2,cmap='gray')
Out[13]:
In [3]:
def ptrans(f,t):
rr,cc = t
H,W = f.shape
r = rr%H
c = cc%W
g = np.empty_like(f)
g[:r,:c] = f[H-r:H,W-c:W]
g[:r,c:] = f[H-r:H,0:W-c]
g[r:,:c] = f[0:H-r,W-c:W]
g[r:,c:] = f[0:H-r,0:W-c]
return g
In [12]:
faux = np.ones_like(f)
f1 = np.zeros_like(f)
f1[0,0]= 1
faux = f
F = fft2(faux)
H,W = faux.shape
#print(np.abs(F))
#plt.figure(figsize=(12,12))
plt.imshow(np.log(np.abs(ptrans(F,(H//2,W//2))+1)),cmap='gray')
print(F[0,0])
print(F)
In [14]:
plt.imshow(f,cmap='gray')
Out[14]:
In [ ]:
f = 50*ones((128,128))
4. f[:, : 32] = 200
5. f[:,64+32: ] = 200
In [ ]:
2. Fazer o demo dftscaleproperty
In [ ]:
3. Fazer uma demonstração ilustrativa da propriedade da rotação: dftrotationproperty