高通滤波numpy

频域中,低频代表细节,高频代表边缘
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文介绍高通滤波器 ,将频谱中心位置设置为0,如图所示:
在这里插入图片描述

import cv2
import numpy as np
import matplotlib.pyplot as plt

o=cv2.imread('image\\boat.bmp',0)               #读入图片
f=np.fft.fft2(o)
fshift=np.fft.fftshift(f)                       #傅里叶变换
rows,cols=o.shape
crow,ccol=int(rows/2),int(cols/2)
fshift[crow-30:crow+30,ccol-30:ccol+30]=0       #低频为0
ishift=np.fft.ifftshift(fshift)
io=np.fft.ifft2(ishift)
io=np.abs(io)                                   #逆傅里叶变换

plt.subplot(121),plt.imshow(o,cmap='gray'),plt.title('original'),plt.axis('off')
plt.subplot(122),plt.imshow(io,cmap='gray'),plt.title('result'),plt.axis('off')
plt.show()

在这里插入图片描述
可以看出,高通滤波保留了图片的轮廓。

猜你喜欢

转载自blog.csdn.net/sundanping_123/article/details/87969067