编写一个利用中值滤波进行灰度图像去噪的matlab程序。注意要加入噪声
时间: 2024-10-10 07:13:32 浏览: 49
MATLAB的图像中值滤波?_matlab_中值滤波_
5星 · 资源好评率100%
在MATLAB中,我们可以使用`imfilter`函数结合中值滤波技术对灰度图像进行去噪。下面是一个简单的示例,展示如何编写一个添加噪声后的中值滤波去噪程序:
```Matlab
% 加载或者创建一张灰度图像
img = imread('your_image.png'); % 替换为你需要处理的图像文件名
% 添加椒盐噪声 (salt and pepper noise) 或者其他类型的噪声(如高斯噪声)
noisy_img = imnoise(img, 'salt & pepper', 0.05); % 噪声比例设为5%
% 定义中值滤波器的大小,这里假设是3x3的窗口
window_size = 3;
% 使用中值滤波去除噪声
filtered_img = medfilt2(noisy_img, [window_size window_size]);
% 显示原图、噪声图和去噪后的图像
subplot(2, 2, 1), imshow(img), title('Original Image');
subplot(2, 2, 2), imshow(noisy_img), title('Noisy Image');
subplot(2, 2, 3), imshow(filtered_img), title('Filtered Image using Median Filter');
subplot(2, 2, 4), histogram(filtered_img(:)), title('Histogram of Filtered Image');
% 记得保存结果
imwrite(filtered_img, 'filtered_image.png');
阅读全文