Compare commits
2 Commits
44e325c42b
...
4bab354a95
Author | SHA1 | Date | |
---|---|---|---|
4bab354a95 | |||
451bd55219 |
41
datasets/raise/fft/fft.py
Normal file
41
datasets/raise/fft/fft.py
Normal file
@ -0,0 +1,41 @@
|
||||
from scipy import fftpack
|
||||
import numpy as np
|
||||
import imageio
|
||||
from PIL import Image, ImageDraw
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
image = imageio.imread('image.jpg', mode = 'L')
|
||||
#plt.imshow(image, cmap = 'grey')
|
||||
#plt.show()
|
||||
|
||||
# convert image to numpy array
|
||||
imageNp = np.array(image)
|
||||
|
||||
# fft of image
|
||||
fft1 = fftpack.fftshift(fftpack.fft2(imageNp))
|
||||
|
||||
# create a low pass filter image
|
||||
x, y = imageNp.shape
|
||||
# size of circle
|
||||
CIRCLE_RADIUS = 50
|
||||
eX, eY = CIRCLE_RADIUS, CIRCLE_RADIUS
|
||||
# create a box
|
||||
middleX, middleY = x / 2, y / 2
|
||||
bbox = (middleX - eX, middleY - eY, middleX + eX, middleY + eY)
|
||||
|
||||
lowPass = Image.new('L', imageNp.shape, color = 0)
|
||||
|
||||
draw = ImageDraw.Draw(lowPass)
|
||||
draw.ellipse(bbox, fill = 1)
|
||||
|
||||
lowPassNp = np.array(lowPass)
|
||||
|
||||
# multiply both the images
|
||||
filtered = np.multiply(fft1, lowPassNp.T)
|
||||
|
||||
# inverse fft
|
||||
ifft2 = np.real(fftpack.ifft2(fftpack.ifftshift(filtered)))
|
||||
ifft2 = np.maximum(0, np.minimum(ifft2, 255))
|
||||
|
||||
# save the image
|
||||
imageio.imsave('fft-then-ifft.png', ifft2.astype(np.uint8))
|
Loading…
Reference in New Issue
Block a user