利用图像的傅里叶变换实现图像的滤波的python代码
时间: 2024-05-03 10:20:43 浏览: 29
以下是Python中利用图像的傅里叶变换实现图像的滤波的代码示例:
```python
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
# 高斯滤波器
d = 30
h = np.zeros((rows,cols))
for i in range(rows):
for j in range(cols):
h[i][j] = np.exp(-((i-crow)**2 + (j-ccol)**2)/(2*d**2))
# 滤波过程
fil = h*fshift
fil_shift = np.fft.ifftshift(fil)
img_back = np.fft.ifft2(fil_shift)
img_back = np.abs(img_back)
# 显示图像
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(img_back, cmap = 'gray')
plt.title('Filtered Image'), plt.xticks([]), plt.yticks([])
plt.show()
```
如果你想了解更多有关傅里叶变换的知识,可以尝试参考一些经典的数学教材或者相关的论文。
阅读全文