图像的均值滤波与中值滤波处理(Matlab)

目的

  • 使用均值滤波与中值滤波对图像进行处理

思路

  • 用矩阵表示均值滤波计算公式。
  • 遍历图像,以每个像素点为中心的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);

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注