精华内容
下载资源
问答
  • 均值滤波和中值滤波

    万次阅读 多人点赞 2018-02-05 16:48:24
    均值滤波中值滤波的区别 均值滤波和和中值滤波都可以起到平滑图像,虑去噪声的功能。均值滤波采用线性的方法,平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在...

    均值滤波及中值滤波的区别


    均值滤波和和中值滤波都可以起到平滑图像,虑去噪声的功能。均值滤波采用线性的方法,平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好,对高斯噪声表现较差。


    填充问题


    在对图像应用滤波器进行过滤时,边界问题是一个需要处理的问题。一般来说,有3种处理的方法。

    1. 不做边界处理

    不对图像的边界作任何处理,在对图像进行滤波时,滤波器没有作用到图像的四周,因此图像的四周没有发生改变。


    2. 填充0

    对图像的边界做扩展,在扩展边界中填充0,对于边长为2k+1的方形滤波器,扩展的边界大小为k,若原来的图像为[m, n],则扩展后图像变为[m+2k, n+2k]。进行滤波之后,图像会出现一条黑色的边框。


    3. 填充最近像素值

    扩展与 填充0 的扩展类似,只不过填充0的扩展是在扩展部分填充0,而这个方法是填充距离最近的像素的值。




    matlab代码实现


    1.  均值滤波函数如下

    该函数为spacelFilter,输入为需要进行滤波的图像(L = 256,像素值为0-255的灰度图像),方形滤波器(大小为2k+1,值类型为uint8),输出为经过滤波器滤波之后的图像。该函数滤波采用填充最近像素值的方法,结果图像不会出现黑边。

    function [image_out] = spacelFilter(image_in, filter)
    % (线性)均值滤波函数
    % 输入为需要进行空间滤波的灰度图像,线性方形滤波器
    % 输出为经过滤波之后的图像
    % 图像边缘的填充为最近的像素值,目的是消除填充0时会出现的黑框
    % 滤波器的大小为 n * n, n = 2 * k + 1, k为整数
    % 输入图像大小为 m * n, 灰度图像,像素值范围为0-255,L = 256
    [m, n] = size(image_in);
    [mf, nf] = size(filter);
    k = (mf - 1) / 2;
    image2 = zeros(m+2*k, n+2*k, 'double');
    image_out = zeros(m, n, 'uint8');
    coeff = sum(filter(:));
    % 填充部分
    % 内部直接复制
    for i = 1+k : m+k
        for j = 1+k : n+k
            image2(i, j) = image_in(i-k, j-k);
        end
    end
    % 填充上下边缘
    for i = 1 : k
        for j = 1 : n
            image2(i, j+k) = image_in(1, j);
            image2(m+k+i, j+k) = image_in(m, j);
        end
    end
    % 填充左右边缘
    for i = 1 : m
        for j = 1 : k
            image2(i+k, j) = image_in(i, 1);
            image2(i+k, n+k+j) = image_in(i, n);
        end
    end
    % 填充四个角
    for i = 1 : k
        for j = 1 : k
            image2(i, j) = image_in(1, 1); %填充左上角
            image2(i, j+n+k) = image_in(1, n); %填充右上角
            image2(i+n+k, j) = image_in(m, 1); %填充左下角
            image2(i+n+k, j+n+k) = image_in(m, n); %填充右下角
        end
    end
    
    % 滤波部分
    for i = 1+k : m+k
        for j = 1+k : n+k
            sub_image = image2(i-k:i+k, j-k:j+k);
            temp1 = double(filter') .* double(sub_image);
            temp2 = sum(temp1(:)) / coeff;
            image_out(i-k, j-k) = uint8(temp2);
        end
    end
    
    end

    2. 中值滤波器

    实现与均值滤波器类似,只不过在滤波部分的实现有所不同。

    % 滤波部分
    for i = 1+k : m+k
        for j = 1+k : n+k
            sub_image = image2(i-k:i+k, j-k:j+k);
            temp = median(sub_image(:));
            image_out(i-k, j-k) = uint8(temp);
        end
    end

    3.  测试代码如下

    为了方便,我在spacelFilter函数中增加了中值滤波部分,增加了一个返回值,这样spacelFilter函数的返回值为[image1,image2],image1为均值滤波图像,image2为中值滤波图像。

    close all;
    clear all;
    clc;
    
    image = imread('2.tif');
    [m, n] = size(image);
    %模板大小
    k = 3;
    myFilter = zeros(k, k, 'uint8');
    
    for i = 1 : k
        for j = 1 : k
            myFilter(i, j) = 1;
        end
    end
    [image2, image3] = spacelFilter(image, myFilter);
    image4 = medfilt2(image, [3 3]);
    figure;
    subplot(2, 2, 1), imshow(image), title('原图像');
    subplot(2, 2, 2), imshow(image2), title('3*3均值滤波图像');
    subplot(2, 2, 3), imshow(image3), title('3*3中值滤波图像');
    subplot(2, 2, 4), imshow(image4), title('matlab自带的中值滤波图像');

    4. 代码运行结果如下(测试图像为被椒盐噪声污染的图像):



    展开全文
  • 均值滤波和中值滤波的内容非常基础,均值滤波相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。中值滤波的优点是可以很好的过滤掉椒盐噪声,缺点是易造成图像的不连续性。
  • 文件中包含test.m文件和两个函数以及一张测试图片。利用学习机会自己编写了均值滤波和中值滤波函数,并在test.m文件中运行,有详细代码注释,希望一起学习。
  • 对图片进行均值滤波和中值滤波,VC下可以运行的哦
  • MATLAB常用的滤波函数比较:均值滤波和中值滤波 均值滤波中值滤波运行结果程序代码 均值滤波 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,...

    MATLAB常用的滤波函数比较:均值滤波和中值滤波

    均值滤波

    均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。

    中值滤波

    中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。

    运行结果

    Alt

    程序代码

    I = imread('G:\matlabEXCISIZE\execise\img\lena.png');
    J1=imnoise(I,'salt & pepper',0.02); %加均值为0,方差为0.02的椒盐噪声
    J2=imnoise(I,'gaussian',0.02); %加均值为0,方差为0.02的高斯噪声。
    g1=rgb2gray(J1);
    g2=rgb2gray(J2);
    figure('units','normalized','position',[0 0 1 1]);
    subplot(2,4,1),imshow(J1),xlabel('椒盐噪声'); %显示有椒盐噪声图像
    subplot(2,4,2),imshow(J2),xlabel('高斯噪声'); %显示有高斯噪声图像
    
    % %  邻域平均法  neighborhood averaging
    
    % imfilter 可进行多维图像(RGB等)进行空间滤波,且可选参数较多
    % filter2 / medfilt2 只能对二维图像(灰度图)进行空间滤波,
    % 两个函数结果类型不一样,只需要在I1=filter2(h,I)后面加上I1=uint8(I1)进行类型转换,结果就是一样的。
    
    K1 = filter2(fspecial('average',3),g1); % 对椒盐噪声进行 3*3 模板平滑滤波
    K2 = filter2(fspecial('average',11),g1);
    k3 = imfilter(I,fspecial('average',3),'replicate');
    K4 = filter2(fspecial('average',3),g2); % 对高斯噪声进行 3*3 模板平滑滤波
    
    subplot(2,4,3),imshow(uint8(K1)),xlabel({'对椒盐噪声进行';'3*3 模板平滑滤波'});
    subplot(2,4,4),imshow(uint8(K1)),xlabel({'对椒盐噪声进行';'11*11 模板平滑滤波'});
    subplot(2,4,5),imshow(k3),xlabel('3*3 imfilter空间滤波');
    subplot(2,4,6),imshow(uint8(K4)),xlabel('对高斯噪声进行 3*3 模板平滑滤波');
    
    % 中值滤波
    I1= medfilt2(g1,[3,3]); % 对有椒盐噪声图像进行5×5方形窗口中值滤波
    I2= medfilt2(g2,[3,3]); % 对有高斯噪声图像进行5×5方形窗口中值滤波
    
    subplot(2,4,7),imshow(I1),xlabel({'椒盐噪声进行';'3*3 中值滤波'}); 
    subplot(2,4,8),imshow(I2),xlabel({'高斯噪声进行';'3*3 中值滤波'}); 
    
    
    
    展开全文
  • 线性均值滤波和中值滤波对信号处理的比较结果如下: from:http://blog.csdn.net/abcjennifer/article/details/7410314 转载于:https://www.cnblogs.com/GarfieldEr007/p/5374013.html...

    线性均值滤波和中值滤波对信号处理的比较结果如下:

     

    from: http://blog.csdn.net/abcjennifer/article/details/7410314

    转载于:https://www.cnblogs.com/GarfieldEr007/p/5374013.html

    展开全文
  • 文件包含了数字图像处理这门课程中的中值滤波和均值滤波的基本实现代码
  • 图像在获取、传输过程中,受干扰的影响,会产生噪声,对噪声进行消除的过程就叫做图像的平滑处理,它是一种...下面是均值滤波和中值滤波原理网址:https://blog.csdn.net/baidu_34971492/article/details/78970299 h...

    图像在获取、传输过程中,受干扰的影响,会产生噪声,对噪声进行消除的过程就叫做图像的平滑处理,它是一种信号滤波的方法。
    既然提到噪声,那什么是图像的噪声呢?像素与邻近像素显著不同的就叫图像的噪声,例如下面这幅图,图片上的星星白点就是噪声。
    在这里插入图片描述
    下面是均值滤波和中值滤波原理网址:https://blog.csdn.net/baidu_34971492/article/details/78970299
    http://www.voidcn.com/article/p-szxnlgkm-gh.html
    https://cloud.tencent.com/developer/news/222855
    高斯滤波原理:https://blog.csdn.net/shanchuan2012/article/details/51024550
    https://blog.csdn.net/qq_37568748/article/details/80344709

    展开全文
  • 均值滤波和中值滤波的java代码

    千次阅读 2014-10-19 10:28:51
    均值滤波和中值滤波的内容非常基础,均值滤波相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。中值滤波的优点是可以很好的过滤掉椒盐噪声,缺点是易造成图像的不连续性。在下面的代码中,中值滤波...
  • 在空域法中,图像平滑常用的方法是采用均值滤波中值滤波。   均值滤波 对于均值滤波,它是采用一个有奇数点的滑动窗口在图像上滑动,将窗口中心点对应的图像像素点的灰度值用窗口内的各个点的灰度值的平均值
  • 椒盐噪声是椒噪声和盐噪声的合称,它是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,去除椒盐噪声的最常用算法是中值滤波,在去除椒盐噪声的效果上均值滤波不如中值滤波,本文所给的代码会证明这...
  • 1. 均值滤波先创建一个 medfilter.m 文件,代码如下:function [output] = meansfilter(input, radius)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input: 噪声图像% r: 图像块半径%% Auther: Gao Zheng jie% Email: ...
  • 均值滤波和中值滤波matlab实现

    万次阅读 2018-12-18 21:04:42
    clc; close all; %原始图片 283*289*3 data=imread('图片1.png');%读入图片,图片复制到当前文件夹 subplot(221); imshow(data); title('原始图片'); %二值化 283*289 gdata=rgb2gray(data);...%中值滤波...
  • CUDA均值滤波和中值滤波编程

    千次阅读 2017-08-18 13:18:34
    1、均值滤波代码主要包括两部分:主机端(CPU)的调用函数设备端(GPU)的滤波执行函数。 主机端调用函数:分配线程、分配内存还可以对设备端执行进行计时; 设备端滤波执行函数:是图像进行滤波的执行函数,是...
  • } //按钮动作的实现 均值滤波 public void jMean_ActionPerformed(ActionEvent e) { if(flag_load){ try{ PixelGrabber pg = new PixelGrabber(im,0,0,iw,ih,pixels,0,iw); pg.grabPixels(); }catch...
  • 题目均值滤波和中值滤波 在自己的证件照中加入椒盐噪声高斯白噪声 分别用3*35*57*7 的均值滤波器和中值滤波器进行滤波 处理过程 1. 用imnoise函数在图像中分别加入椒盐噪声和高斯白噪声 2. 均值滤波用fspecial函数...
  • % (线性)均值滤波函数 % 输入为需要进行空间滤波的灰度图像,线性方形滤波器 % 输出为经过滤波之后的图像 % 图像边缘的填充为最近的像素值,目的是消除填充0时会出现的黑框 % 滤波器的大小为 n * n, n = 2 * k + 1...
  • 1,c语言实现中值滤波以及算法实现描述 我们在一个矩阵中去除边缘,在剩余数中求取所有像素点的均值来取代中间的值,我们来举例说明: 公式: a[i][j]是下面数据除去边缘值的平均值。 1 2 3 3 1 ...
  • 受高斯噪声和椒盐噪声污染的二维图像的去噪方法。 空域滤波降噪以均值滤波和中值滤波为例,频域滤波以傅里叶低通滤波和小波变换去噪为例,分析以上四种方法的滤波降噪特点。
  • 2 均值滤波 3 中值滤波 4 高斯滤波 参考资料 1 图像增强——图像平滑 1.1 图像增强简介 图像增强是对图像进行处理,使其比原始图像更适合于特定的应用,它需要与实际应用相结合。对于图像的某些特征如边缘、...
  • I=imread('D:\TuPian\lion.png'); subplot(3,3,1);imshow(I);title('原始图像');... %添加高斯噪声,均值为0,方差为0.02 subplot(3,3,4);imshow(G);title('高斯噪声图像'); j1 = fspecial('avera
  • 中值滤波 中值滤波和均值滤波不同的地方是,中值滤波是对图像的像素值进行排序,取中间的像素值赋给新的图像。 主要功能:使拥有不同灰度的点看起来更接近于它的邻近值。 主要用途:去除“椒盐”噪声 示例代码: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 845
精华内容 338
关键字:

均值滤波和中值滤波