小编ssp*_*ole的帖子

用于模糊图像的低通滤波器

我试图通过传递我创建的低通滤波器来使用 fft 模糊图像,但输出结果是一个充满灰色噪声的图像。我只是想遵循这里的基础知识,但我的实现似乎有问题:  

from scipy import fftpack
import numpy as np
import imageio
from PIL import Image, ImageDraw

image1 = imageio.imread('image.jpg',as_gray=True)

#convert image to numpy array
image1_np=np.array(image)

#fft of image
fft1 = fftpack.fftshift(fftpack.fft2(image1_np))

#Create a low pass filter image
x,y = image1_np.shape[0],image1_np.shape[1]
#size of circle
e_x,e_y=50,50
#create a box 
bbox=((x/2)-(e_x/2),(y/2)-(e_y/2),(x/2)+(e_x/2),(y/2)+(e_y/2))

low_pass=Image.new("L",(image1_np.shape[0],image1_np.shape[1]),color=0)

draw1=ImageDraw.Draw(low_pass)
draw1.ellipse(bbox, fill=255)

low_pass_np=np.array(low_pass)
low_pass_fft=fftpack.fftshift(fftpack.fft2(low_pass))

#multiply both the images
filtered=np.multiply(fft1,low_pass_fft)

#inverse fft
ifft2 = abs(fftpack.ifft2(fftpack.ifftshift(filtered)))

#save the image
imageio.imsave('fft-then-ifft.png', ifft2.astype(np .uint8))
Run Code Online (Sandbox Code Playgroud)

原图:

已创建低通滤波器

结果图像

python fft image-processing python-3.x

3
推荐指数
1
解决办法
6399
查看次数

标签 统计

fft ×1

image-processing ×1

python ×1

python-3.x ×1