使用matlab代码 设计的自适应中值滤波器对输入图像进行去噪, 输出并保存不同类型噪声图片去噪后的结果图。并只用一个程序实现
时间: 2024-03-26 09:34:13 浏览: 91
以下是使用MATLAB实现自适应中值滤波器对输入图像进行去噪并保存结果图的示例代码:
```matlab
% 读取原始图像
I = imread('lena.jpg');
% 添加不同类型的噪声
I_salt = imnoise(I, 'salt & pepper', 0.02);
I_gauss = imnoise(I, 'gaussian', 0.02);
% 自适应中值滤波器去噪
I_salt_denoised = adapmedian(I_salt, 5);
I_gauss_denoised = adapmedian(I_gauss, 5);
% 显示和保存去噪后的图像
imwrite(I_salt_denoised, 'lena_salt_denoised.jpg');
imwrite(I_gauss_denoised, 'lena_gauss_denoised.jpg');
figure;
subplot(2, 2, 1); imshow(I); title('Original');
subplot(2, 2, 2); imshow(I_salt); title('Salt & Pepper Noise');
subplot(2, 2, 3); imshow(I_salt_denoised); title('Adaptive Median Filter (Salt & Pepper)');
subplot(2, 2, 4); imshow(I_gauss_denoised); title('Adaptive Median Filter (Gaussian)');
```
上述代码中,首先读取了原始图像,然后使用`imnoise`函数添加了不同类型的噪声。接着,使用`adapmedian`函数对带噪声图像进行自适应中值滤波器去噪。最后,使用`imshow`函数显示原始图像和去噪后的图像,使用`imwrite`函数保存去噪后的图像。请注意,在保存图像时需要为每张图像指定一个不同的文件名。
需要注意的是,该程序会先保存去噪后的结果图,再在窗口中显示原始图像和去噪后的图像。如果您只需要保存图片而不需要在窗口中显示,请注释掉最后四行代码,并在程序中添加对应的保存语句。
阅读全文