python实现巴特沃斯滤波图像去噪
时间: 2023-10-26 13:02:51 浏览: 112
巴特沃斯滤波是一种常用的频域滤波方法,用于图像去噪。在Python中,我们可以使用SciPy库来实现巴特沃斯滤波。
首先,我们需要导入所需的库:
import numpy as np
from scipy import fftpack, ndimage
import matplotlib.pyplot as plt
接下来,我们需要加载图像并进行傅里叶变换:
# 加载图像并进行灰度化处理
image = plt.imread('image.jpg')
gray_image = np.mean(image, axis=2)
# 对图像进行傅里叶变换
image_fft = fftpack.fft2(gray_image)
然后,我们可以定义巴特沃斯滤波器的参数,并将其应用于傅里叶变换图像:
# 定义巴特沃斯滤波器的参数
cutoff_freq = 0.1 # 截止频率
order = 2 # 阶数
# 生成巴特沃斯滤波器
b, a = fftpack.butter(order, cutoff_freq, output='ba')
# 将滤波器应用于傅里叶变换图像
filtered_image_fft = image_fft * b[:, np.newaxis]
filtered_image = fftpack.ifft2(filtered_image_fft).real
最后,我们可以绘制原始图像和去噪后的图像进行对比:
# 绘制原始图像和去噪后的图像
fig, axs = plt.subplots(1, 2, figsize=(10, 5))
axs[0].imshow(gray_image, cmap='gray')
axs[0].set_title('Original Image')
axs[1].imshow(filtered_image, cmap='gray')
axs[1].set_title('Filtered Image')
plt.show()
通过以上步骤,我们就成功地使用Python实现了巴特沃斯滤波图像去噪。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)