均值滤波matlab代码
时间: 2023-08-01 18:15:46 浏览: 49
以下是一个简单的均值滤波的 MATLAB 代码示例:
```matlab
% 读取图像
image = imread('image.jpg');
% 定义滤波器的大小
filter_size = 3;
% 获取图像的尺寸
[row, col] = size(image);
% 复制图像
filtered_image = image;
% 对每个像素进行滤波
for i = 1+filter_size/2 : row-filter_size/2
for j = 1+filter_size/2 : col-filter_size/2
% 取得滤波器内的像素值
neighborhood = image(i-filter_size/2:i+filter_size/2, j-filter_size/2:j+filter_size/2);
% 计算滤波器内所有像素的平均值
filtered_value = mean(neighborhood(:));
% 更新滤波后的图像像素值
filtered_image(i, j) = filtered_value;
end
end
% 显示原始图像和滤波后的图像
subplot(1, 2, 1);
imshow(image);
title('原始图像');
subplot(1, 2, 2);
imshow(filtered_image);
title('滤波后的图像');
```
这段代码中,我们先读取一个名为 "image.jpg" 的图像文件。然后定义了一个滤波器的大小,这里使用了3x3的滤波器。接着,我们获取了图像的尺寸,并创建了一个和原始图像相同大小的副本。然后,我们对每个像素进行滤波操作,通过取滤波器内像素的平均值来计算滤波后的像素值,并更新到副本图像中。最后,我们显示了原始图像和滤波后的图像。
请注意,这只是一个简单的示例代码,实际使用时可能需要根据具体需求进行修改和优化。