23傅里叶变换之高通滤波和低通滤波

一.高通滤波

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt

#读取图像
img = cv2.imread('C:/Users/31035/Desktop/yifei/01.jpg')
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)

#设置高通滤波器
rows, cols = img.shape
crow,ccol = int(rows/2), int(cols/2)
fshift[crow-30:crow+30, ccol-30:ccol+30] = 0

#傅里叶逆变换
ishift = np.fft.ifftshift(fshift)
iimg = np.fft.ifft2(ishift)
iimg = np.abs(iimg)

#显示原始图像和高通滤波处理图像
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Image')
plt.axis('off')
plt.subplot(122), plt.imshow(iimg, 'gray'), plt.title('Result Image')
plt.axis('off')
plt.show()

23傅里叶变换之高通滤波和低通滤波_第1张图片

二.低通滤波

#修改这一句
fshift[crow-30:crow+30, ccol-30:ccol+30] = 1

你可能感兴趣的:(23傅里叶变换之高通滤波和低通滤波)