这是我们如何使用scipy fftpack
设计HPF
from skimage.io import imread
import matplotlib.pyplot as plt
import scipy.fftpack as fp
im = np.mean(imread('../images/lena.jpg'), axis=2) # assuming an RGB image
plt.figure(figsize=(10,10))
plt.imshow(im, cmap=plt.cm.gray)
plt.axis('off')
plt.show()
原始图片
F1 = fftpack.fft2((im).astype(float))
F2 = fftpack.fftshift(F1)
plt.figure(figsize=(10,10))
plt.imshow( (20*np.log10( 0.1 + F2)).astype(int), cmap=plt.cm.gray)
plt.show()
FFT频谱
(w, h) = im.shape
half_w, half_h = int(w/2), int(h/2)
# high pass filter
n = 25
F2[half_w-n:half_w+n+1,half_h-n:half_h+n+1] = 0 # select all but the first 50x50 (low) frequencies
plt.figure(figsize=(10,10))
plt.imshow( (20*np.log10( 0.1 + F2)).astype(int))
plt.show()
阻止频谱中的低频
im1 = fp.ifft2(fftpack.ifftshift(F2)).real
plt.figure(figsize=(10,10))
plt.imshow(im1, cmap='gray')
plt.axis('off')
plt.show()
应用HPF后输出图像
0
我目前正在研究图像处理。在Scipy中,我知道Scipy.signal中有一个中值过滤器。谁能告诉我是否有一个类似于高通滤波器的滤波器?
谢谢