自编均值滤波器matlab代码
时间: 2023-10-25 22:08:07 浏览: 58
以下是一个简单的自编均值滤波器的 MATLAB 代码:
```matlab
function output = mean_filter(input, kernel_size)
% input: 输入图像
% kernel_size: 滤波器大小
% 获取输入图像的大小
[row, col] = size(input);
% 初始化输出图像
output = zeros(row, col);
% 计算边缘填充的大小
pad_size = floor(kernel_size / 2);
% 边缘填充
padded_input = padarray(input, [pad_size pad_size], 'replicate');
% 遍历每个像素
for i = 1:row
for j = 1:col
% 获取当前像素周围的像素值
neighbors = padded_input(i:i+2*pad_size, j:j+2*pad_size);
% 计算均值
mean_value = mean(neighbors(:));
% 更新输出图像
output(i, j) = mean_value;
end
end
end
```
使用方法:
```matlab
% 读入图像
input = imread('input_image.jpg');
% 转换为灰度图像
input_gray = rgb2gray(input);
% 设置滤波器大小
kernel_size = 5;
% 应用均值滤波器
output = mean_filter(input_gray, kernel_size);
% 显示结果
imshow(output);
```
阅读全文