文章首发及后续更新:https://mwhls.top/2267.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。
目的
- 使用均值滤波与中值滤波对图像进行处理
思路
- 用矩阵表示均值滤波计算公式。
- 遍历图像,以每个像素点为中心的3*3矩阵为待处理数据,
- 均值滤波:将算子矩阵与待处理矩阵点乘,求和结果矩阵,以其作为矩阵中心点的新值。
- 中值滤波:将待处理矩阵排序,取中值为矩阵中心点新值。
实验结果
- 从左到右,分别为:原图、均值滤波、中值滤波
- 注:这是放大后的图像,全图太小,不明显。
代码
clear;
ima = imread('4.jpg');
grayIma = rgb2gray(ima);
[height, width] = size(grayIma);
filter8 = [0.125 0.125 0.125; 0.125 0 0.125; 0.125 0.125 0.125];
imaFilter8 = grayIma;
imaFilterMid = grayIma;
for row = 2:height-1
for col = 2:width-1
temp = double(grayIma(row-1:row+1, col-1:col+1));
%均值滤波
template = sum(sum(filter8 .* temp));
imaFilter8(row, col) = template;
%中值滤波
template2 = sort(temp(:));
imaFilterMid(row, col) = template2(5);
end
end
subplot(1,3,1);
imshow(grayIma);
subplot(1,3,2);
imshow(imaFilter8);
subplot(1,3,3);
imshow(imaFilterMid);