高通滤波numpy

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

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()

高通滤波numpy_第5张图片
可以看出,高通滤波保留了图片的轮廓。

你可能感兴趣的:(python-OpenCV)