• 图像的高斯平滑滤波


    1:高斯平滑与滤波的作用

    通过高斯平滑使整个图片过渡均匀平滑,去除细节,过滤掉噪声。

    2:高斯平滑滤波器简介

    高斯平滑滤波器被使用去模糊图像,和均值滤波器差不多,但是和均值滤波器不一样的地方就是核不同。均值滤波器的核每一个值都是相等,而高斯平滑滤波器的核内的数却是呈现高斯分布的。

    对于二维高斯分布:

     

     高斯函数具有5个重要性质:

    (1)二维高斯函数具有旋转对称性, (2)高斯函数是单值函数。这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点的权值是随着该点与中心点距离单调递减的。 (3)高斯函数的傅立叶变换频谱是单瓣的。 (4)高斯滤波器的宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。 (5)可分离性

    它的分布图如下:

     

    作为高斯平滑滤波器的核就应该呈现出上图的布局,例如:

     

    是一个5*5的模版

    对于高斯函数参数σ值越大,则模分布图越扁平,模版越大。

    上图分布凸显出了高斯该有的特点,因此,一般而言,高斯平滑滤波器要优于均值滤波器。

    3:函数实现

    3.1二维高斯函数

    1 X = -50 : 1 :50;
    2 Y = -50 : 1: 50;
    3 sigma=50;
    4 [X,Y]=meshgrid(X,Y);
    5 W=exp(-(X.^2+Y.^2)/sigma.^2);
    6 Z=W/2*pi*sigma.^2
    7 mesh(X,Y,Z);
    8 title('权重分布图');

    3.2高斯滤波

     1 im=imread('D:a2.jpg');
     2 imshow(im,[]);//1
     3 title('原图');
     4 J=imnoise(im,'gaussian');//加上高斯噪声
     5 figure
     6 imshow(J,[]);
     7 title('加高斯噪声图');
     8 f1=fspecial('gaussian',[3 3],0.5);//2生成高斯模版
     9 img_smooth1=imfilter(J,f1);//3滤波
    10 figure
    11 subplot 221
    12 imshow(img_smooth1,[]);
    13 title('0.5');
    14 
    15 f2=fspecial('gaussian',[3 3],1);
    16 img_smooth2=imfilter(J,f2);
    17 subplot 222
    18 imshow(img_smooth2,[]);
    19 title('1');
    20 
    21 f3=fspecial('gaussian',[3 3],2);
    22 img_smooth3=imfilter(J,f3);
    23 subplot 223
    24 imshow(img_smooth3,[]);
    25 title('2');
    26 
    27 f4=fspecial('gaussian',[3 3],4);
    28 img_smooth4=imfilter(J,f4);
    29 subplot 224
    30 imshow(img_smooth4,[]);
    31 title('4');
    32 
    33 f5=fspecial('gaussian',[3 3],8);
    34 img_smooth5=imfilter(J,f5);
    35 figure
    36 subplot 121
    37 imshow(img_smooth5,[]);
    38 title('8');
    39 
    40 f6=fspecial('gaussian',[3 3],10);
    41 img_smooth6=imfilter(J,f6);
    42 subplot 122
    43 imshow(img_smooth6,[]);
    44 title('10');

     运行结果如下

     

    由实验结果可知,随着σ值的增大,噪声滤除的越干净,但同时,图像也变得越模糊,轮廓不清晰。当σ增加到一定的程度时,滤波效果几乎没有变化,所以要选取合适的σ值。

      

    4:函数介绍

     注释1

    语法:imshow ( f, G) 
              imshow (f, [low high])
              imshow (f, [ ])
    说明:G是显示该图像的灰度级数;
          小于或等于low的值都显示为黑色,大于或等于high的值都显示为白色。
              [ ]自动将变量low设置为f的最小值,将high设置为f的最大值

    注释2

    Fspecial函数用于创建预定义的滤波算子,其语法格式为:
    h = fspecial(type)
    h = fspecial(type,parameters,sigma)
    参数type制定算子类型,parameters指定相应的参数,具体格式为:
    type='average',为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。
    type= 'gaussian',为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,

    注释3

    imfilter(J,f1)

    J为待处理的图像,f为高斯模版。

  • 相关阅读:
    python 代码编写环境及编辑器配置
    升级gradle:Could not find method jackOptions() for arguments
    Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: debug
    ecplice 如何智能提示(旧)
    seo 回忆录百度基本概念(一)
    正则表达针对html(九)
    读Pyqt4教程,带你入门Pyqt4 _002
    [Objective-c] 002_对象 类 变量 方法
    SD.Team字符表情集大全(持续更新中..)
    SD.Team主题形象小人偶
  • 原文地址:https://www.cnblogs.com/henuliulei/p/10559954.html
Copyright © 2020-2023  润新知