均值滤波matlab代码
时间: 2023-06-12 11:07:41 浏览: 93
下面是均值滤波的 Matlab 代码示例:
```matlab
% 读入图像
img = imread('lena.jpg');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 定义滤波器大小
filter_size = 3;
% 对图像进行均值滤波
img_filtered = zeros(size(img_gray));
for i = filter_size+1:size(img_gray,1)-filter_size
for j = filter_size+1:size(img_gray,2)-filter_size
% 取出当前像素周围的像素值
window = img_gray(i-filter_size:i+filter_size, j-filter_size:j+filter_size);
% 计算窗口内像素的均值,并将该值赋给当前像素
img_filtered(i,j) = mean(window(:));
end
end
% 显示原图和滤波后的图像
subplot(121); imshow(img_gray); title('原图');
subplot(122); imshow(img_filtered/255); title('均值滤波后');
```
在上述代码中,我们首先读入一张图像,然后将其转换为灰度图像。接着,定义了一个滤波器大小为 3 的均值滤波器。在进行滤波时,我们遍历图像中的每个像素,并取出该像素周围滤波器大小内的像素值,计算这些像素的平均值,并将该值赋给当前像素。最后,我们将原图和滤波后的图像进行显示。
阅读全文