matlab代码,类似中值滤波,设计一个5x5的十字型平滑滤波器, 查找并利用函数ordfilt2()对噪声图像进行滤波,显示处理后的图像;
时间: 2024-03-22 20:38:28 浏览: 209
基于matlab编程的平滑和中值滤波
5星 · 资源好评率100%
下面是使用ordfilt2()函数实现5x5十字型平滑滤波器的Matlab代码:
```matlab
% 读取噪声图像
I = imread('noisy_image.png');
% 定义滤波器
H = [0, 0, 1, 0, 0;
0, 0, 1, 0, 0;
1, 1, 1, 1, 1;
0, 0, 1, 0, 0;
0, 0, 1, 0, 0];
% 对噪声图像进行滤波
J = ordfilt2(I, 13, H);
% 显示原始图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(I);
title('原始图像');
subplot(1, 2, 2);
imshow(J);
title('处理后的图像');
```
在上面的代码中,我们先使用imread()函数读取了一个噪声图像,然后定义了一个5x5的十字型平滑滤波器H。接着使用ordfilt2()函数对噪声图像进行滤波,其中第二个参数13表示使用中位数滤波器,即用滤波器H中所有元素的中位数替换每个像素的值。最后使用subplot()和imshow()函数显示原始图像和处理后的图像。
阅读全文