matlab实现一个矩形的滤波器(BUPT_rect)。用5乘5和7乘7的核对噪声图像Lena进行过滤。将得到的图像粘贴在下面。将这些结果与用高斯滤波器得到的结果进行比较。
时间: 2024-03-03 17:52:08 浏览: 165
基于matlab对噪声图像进行滤波仿真
好的,以下是MATLAB实现矩形滤波器的代码:
```matlab
function [output] = BUPT_rect(input, size)
% input: 输入图像
% size: 滤波器大小
% 初始化滤波器
filter = ones(size) / (size * size);
% 用imfilter函数进行滤波
output = imfilter(input, filter);
end
```
您可以将上述代码保存为.m文件并在MATLAB命令窗口中调用该函数进行使用。例如,要对图像Lena进行5x5大小的矩形滤波,可以输入以下命令:
```matlab
lena = imread('lena.png'); % 读取Lena图像
filtered = BUPT_rect(lena, 5); % 对Lena图像进行5x5大小的矩形滤波
imshow(filtered); % 显示滤波结果
```
同样的,您可以使用7x7大小的矩形滤波器对Lena图像进行滤波。
与高斯滤波器相比,矩形滤波器更加锐利,可以更好地保留图像的细节。但是,矩形滤波器会对图像进行较强的平滑,可能会导致图像失真。因此,在实际应用中,需要根据具体的需求选择合适的滤波器。
阅读全文