matab用均值滤波和加权均值滤波 2 种方法对选图进行滤波,选用的模板大小自选 3 个;编写代码
时间: 2024-11-13 07:23:30 浏览: 5
Matlab中的均值滤波(Mean Filtering)是一种常见的图像平滑处理方法,它通过将每个像素点替换为其周围像素的平均值来减少噪声。而加权均值滤波则是给邻域内的像素赋予不同程度的重要性(通常是离中心像素越近的权重越大),再计算平均值。
以下是使用Matlab基本功能实现均值滤波和加权均值滤波的简单示例代码:
```matlab
% 加载图像
img = imread('your_image.jpg'); % 替换为你要处理的图片文件名
% 定义滤波模板(这里选择3x3大小,可以根据需求自定义)
template_size = 3;
if mod(template_size, 2) == 0
warning('模板大小应为奇数,这里假设模板大小为3x3');
end
template = ones(template_size) / template_size^2;
% 均值滤波
filtered_img_mean = imfilter(img, template, 'replicate');
% 加权均值滤波(这里使用最近邻权重,即所有像素同等重要)
filtered_img_weighted = img;
for i = 1:size(img, 1)
for j = 1:size(img, 2)
filtered_img_weighted(i,j) = sum(img(i:i+template_size-1, j:j+template_size-1) .* template);
end
end
% 显示原图和滤波后的结果
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(filtered_img_mean), title('Mean Filtered Image');
subplot(1,2,3), imshow(filtered_img_weighted), title('Weighted Mean Filtered Image');
```
阅读全文