理想低通滤波python
时间: 2023-11-20 09:56:40 浏览: 184
以下是Python中实现理想低通滤波的示例代码:
```python
import numpy as np
import cv2
# 读取图像
img = cv2.imread('image.jpg', 0)
# 傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
# 构建理想低通滤波器
rows, cols = img.shape
crow, ccol = int(rows/2), int(cols/2)
mask = np.zeros((rows, cols), np.uint8)
r = 80 # 设置半径
cv2.circle(mask, (crow, ccol), r, 1, -1)
# 进行滤波操作
fshift = fshift * mask
f_ishift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Ideal Low Pass Filter', img_back)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取了一张灰度图像,然后对其进行傅里叶变换,并将变换后的结果进行了中心化处理。接着,我们构建了一个理想低通滤波器,通过设置半径来控制滤波器的截止频率。然后,我们将滤波器应用于傅里叶变换后的图像,并进行反变换得到滤波后的图像。最后,我们将原图和滤波后的图像显示出来。
阅读全文