下面是使用 Python OpenCV 实现理想高通滤波处理图片的基本步骤:
- 导入所需要的库:
import cv2 import numpy as np from matplotlib import pyplot as plt
- 读取图片:
img = cv2.imread('image.jpg',0)
- 计算傅里叶变换:
f = np.fft.fft2(img) fshift = np.fft.fftshift(f)
- 构造理想高通滤波器:
rows, cols = img.shape crow,ccol = rows//2 , cols//2 mask = np.zeros((rows,cols),np.uint8) r = 80 center=[crow,ccol] x,y = np.ogrid[:rows,:cols] mask_area = (x-center[0])**2 + (y-center[1])**2 <= r*r mask[mask_area] = 1
- 对频谱图进行滤波处理:
fshift = fshift*mask
- 进行傅里叶逆变换:
ishift = np.fft.ifftshift(fshift) iimg = np.fft.ifft2(ishift) iimg = np.abs(iimg)
- 显示原始图片和滤波后的图片:
plt.sub