python实现数字图像理性低通滤波
时间: 2024-01-04 20:04:01 浏览: 96
Python 实现中值滤波、均值滤波的方法
5星 · 资源好评率100%
以下是使用Python实现数字图像理想低通滤波的示例代码:
```python
import numpy as np
import cv2
def ideal_lowpass_filter(image, cutoff_freq):
# 获取图像的傅里叶变换
f = np.fft.fft2(image)
fshift = np.fft.fftshift(f)
# 构建理想低通滤波器
rows, cols = image.shape
crow, ccol = rows // 2, cols // 2
mask = np.zeros((rows, cols), np.uint8)
mask[crow - cutoff_freq:crow + cutoff_freq, ccol - cutoff_freq:ccol + cutoff_freq] = 1
# 将滤波器应用于频域图像
fshift_filtered = fshift * mask
# 反变换得到滤波后的图像
f_ishift = np.fft.ifftshift(fshift_filtered)
image_filtered = np.abs(np.fft.ifft2(f_ishift))
return image_filtered
# 读取图像
image = cv2.imread('image.jpg', 0) # 以灰度模式读取图像
# 调用理想低通滤波函数
cutoff_freq = 30 # 截止频率
filtered_image = ideal_lowpass_filter(image, cutoff_freq)
# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Filtered Image', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,上述代码中的`image.jpg`是待处理的图像文件名,你需要将其替换为你自己的图像文件名。此外,`cutoff_freq`是截止频率,你可以根据需要进行调整。
阅读全文