matlab中值滤波代码
时间: 2023-07-09 10:49:01 浏览: 41
以下是MATLAB中的一个简单的中值滤波器实现代码:
```matlab
function img_filtered = median_filter(img, kernel_size)
% img: 输入图像
% kernel_size: 滤波器的大小
% img_filtered: 滤波后的图像
[m, n] = size(img);
img_filtered = zeros(m, n);
% 补0操作,使得滤波器能够作用于图像边缘
img_padded = padarray(img, [floor(kernel_size/2), floor(kernel_size/2)], 'symmetric');
for i = 1:m
for j = 1:n
% 取出 kernel_size x kernel_size 的邻域
neighborhood = img_padded(i:i+kernel_size-1, j:j+kernel_size-1);
% 计算邻域中像素的中值
img_filtered(i, j) = median(neighborhood(:));
end
end
end
```
这个函数实现了一个基本的中值滤波器,输入图像img和滤波器的大小kernel_size,输出滤波后的图像img_filtered。这个代码使用了一个嵌套的for循环来遍历整个图像并计算每个像素的中值。为了能够在图像边缘正确地进行滤波操作,图像被用symmetric方式进行填充。