In [ ]:
%matplotlib inline
In [ ]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
In [ ]:
pattern = np.zeros((4, 4))
pattern[1:3,1:3] = 1
In [ ]:
pattern
In [ ]:
signal = np.tile(pattern, (2, 2))
In [ ]:
fig = plt.figure(figsize=(16.0, 10.0))
ax = fig.add_subplot(111)
ax.imshow(signal, interpolation='nearest', cmap=cm.gray)
In [ ]:
transformed_signal = np.fft.fft2(signal)
#transformed_signal
In [ ]:
fig = plt.figure(figsize=(16.0, 10.0))
ax = fig.add_subplot(111)
ax.imshow(abs(transformed_signal), interpolation='nearest', cmap=cm.gray)
In [ ]:
max_value = np.max(abs(transformed_signal))
filtered_transformed_signal = transformed_signal * (abs(transformed_signal) > max_value*0.5)
In [ ]:
#filtered_transformed_signal[6, 6] = 0
#filtered_transformed_signal[2, 2] = 0
#filtered_transformed_signal[2, 6] = 0
#filtered_transformed_signal[6, 2] = 0
#filtered_transformed_signal[1, 6] = 0
#filtered_transformed_signal[6, 1] = 0
#filtered_transformed_signal[1, 2] = 0
#filtered_transformed_signal[2, 1] = 0
#filtered_transformed_signal
fig = plt.figure(figsize=(16.0, 10.0))
ax = fig.add_subplot(111)
ax.imshow(abs(filtered_transformed_signal), interpolation='nearest', cmap=cm.gray)
In [ ]:
filtered_signal = np.fft.ifft2(filtered_transformed_signal)
#filtered_signal
In [ ]:
fig = plt.figure(figsize=(16.0, 10.0))
ax = fig.add_subplot(111)
ax.imshow(abs(filtered_signal), interpolation='nearest', cmap=cm.gray)
In [ ]:
#shifted_filtered_signal = np.fft.ifftshift(transformed_signal)
#shifted_filtered_signal
In [ ]:
#shifted_transformed_signal = np.fft.fftshift(transformed_signal)
#shifted_transformed_signal