图像的锐化可以通过衰减图像频谱中的低频成分来实现,这建立起了空间域图像锐化和频率域高通滤波之间的对应关系。我们想要实现和上一章中高斯低通滤波相反的效果,即高斯高通滤波,实现的方法和上一章的代码基本一致,就是滤波函数有所不同,形式为
实现的代码如下,图像还是那熟悉的动漫女头,处理后边缘显得很清晰很突出,而除了边缘外其他的区域的颜色都是浅色。当sigma的数值越大,边缘提取得越精确,但是有可能出现不完整的边缘信息,即边缘不连续,所以也不适合取值过大。
import cv2
import numpy as np
def GaussianHighFrequencyFilter(src, dst, sigma = 1):
im = cv2.imread(src, 0)
imarr = np.array(im)
height, width = imarr.shape
fft = np.fft.fft2(imarr)
fft = np.fft.fftshift(fft)
for i in range(height):
for j in range(height):
fft[i, j] *= (1 - np.exp(-((i - (height - 1)/2)**2 + (j - (width - 1)/2)**2)/2/sigma**2))
ff