生成一个matlab的中值滤波代码
时间: 2023-08-14 10:03:14 浏览: 79
以下是一个基本的 MATLAB 中值滤波代码示例:
```matlab
function output_image = median_filter(input_image, filter_size)
% 计算中值滤波器的半径
radius = (filter_size - 1) / 2;
% 获取输入图像的尺寸
[row, col] = size(input_image);
% 创建一个与输入图像相同大小的输出图像
output_image = zeros(row, col);
% 遍历每个像素
for i = 1:row
for j = 1:col
% 获取当前像素周围的像素
start_row = max(i - radius, 1);
end_row = min(i + radius, row);
start_col = max(j - radius, 1);
end_col = min(j + radius, col);
neighbors = input_image(start_row:end_row, start_col:end_col);
% 计算中值并将其赋值给输出图像
output_image(i, j) = median(neighbors(:));
end
end
end
```
在上面的代码中,`input_image` 是输入图像,`filter_size` 是滤波器的大小。该函数首先计算出滤波器的半径,然后遍历输入图像中的每个像素,并计算该像素周围的像素的中值。最后,将中值赋值给输出图像。
阅读全文