matlab图像去噪代码
以下是一个简单的 MATLAB 图像去噪代码示例:
% 读取图像
img = imread('lena.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0.05);
% 中值滤波去噪
denoised_img = medfilt2(noisy_img, [3 3]);
% 显示结果
subplot(1, 3, 1);
imshow(img);
title('原始图像');
subplot(1, 3, 2);
imshow(noisy_img);
title('添加高斯噪声后的图像');
subplot(1, 3, 3);
imshow(denoised_img);
title('中值滤波去噪后的图像');
该代码首先读取一张图像,然后添加高斯噪声。接下来,使用中值滤波对图像进行去噪处理。最后,将原始图像、添加噪声后的图像和去噪后的图像显示在同一窗口中。
下面我再补充一些关于 MATLAB 图像去噪的内容。
除了中值滤波,MATLAB 还提供了其他一些常用的图像去噪方法,例如均值滤波、高斯滤波、小波去噪等。这些方法的使用方式类似,只需要调用相应的函数并传入图像和参数即可。
下面是一个使用均值滤波去噪的示例代码:
% 读取图像
img = imread('lena.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0.05);
% 均值滤波去噪
denoised_img = imfilter(noisy_img, fspecial('average', [3 3]));
% 显示结果
subplot(1, 3, 1);
imshow(img);
title('原始图像');
subplot(1, 3, 2);
imshow(noisy_img);
title('添加高斯噪声后的图像');
subplot(1, 3, 3);
imshow(denoised_img);
title('均值滤波去噪后的图像');
这个代码与前面的中值滤波示例代码类似,只是将 medfilt2
函数替换为了 imfilter
函数,并使用了 fspecial
函数生成了一个 3x3 的均值滤波器。
除了这些基本的去噪方法,MATLAB 还提供了一些高级的图像去噪算法,例如基于稀疏表示的去噪算法、基于总变差的去噪算法等。这些算法需要更多的数学知识和编程技巧,如果你感兴趣可以自行学习。