采用matlab编码实现均值滤波的代码,不要调用imfilter函数
时间: 2024-04-30 07:18:46 浏览: 99
下面是使用 MATLAB 编写的均值滤波器的代码:
```matlab
function output = meanFilter(input, kernelSize)
% input: 输入图像矩阵
% kernelSize: 滤波器大小,必须是奇数
% output: 输出图像矩阵
% 获取输入图像大小
[rows, cols] = size(input);
% 初始化输出图像矩阵
output = zeros(rows,cols);
% 计算滤波器半径
r = floor(kernelSize / 2);
% 对输入图像进行边界扩展
input = padarray(input, [r r], 'replicate');
% 遍历输入图像每个像素
for i = 1:rows
for j = 1:cols
% 获取当前像素所在窗口
window = input(i:i+2*r,j:j+2*r);
% 对窗口内像素求平均值
output(i,j) = mean(window(:));
end
end
% 转换输出图像数据类型为输入图像相同的数据类型
output = cast(output, class(input));
end
```
使用方法:
```matlab
% 读取图像
input = imread('input.png');
% 转换图像为灰度图像
input = rgb2gray(input);
% 应用 3x3 均值滤波器
output = meanFilter(input, 3);
% 显示输出图像
imshow(output);
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)