GithubHelp home page GithubHelp logo

digital-image-processing_filter's Introduction

数字图像处理作业


姓名:郑纯然 班级:自动化65 学号:2160504135 提交日期:2019年3月12日

1.空域低通滤波器:分别用高斯滤波器和中值滤波器去平滑测试图像test1和test2,模板大小分别是3x3,5x5,7x7;
2.利用固定方差sigma=1.5产生高斯滤波器. 附件有产生高斯滤波器的方法;分析各自优缺点;

(1)问题分析:
  空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,其机理 就是在待处理的图像中逐点地移动模板,滤波器在该点地响应通过事先定义的滤波器系数与滤波模板扫过区域的相应像素值的关系来计算。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。
  空域滤波器从处理效果上可以平滑空间滤波器和锐化空间滤波器:平滑空间滤波器用于模糊处理和减小噪声,经常在图像的预处理中使用;锐化空间滤波器主要用于突出图像中的细节或者增强被模糊了的细节。    模板在源图像中移动的过程中,当模板的一条边与图像轮廓重合后,模板中心继续向图像边缘靠近,那么模板的某一行或列就会处于图像平面之外,此时最简单的方法就是将模板中心点的移动范围限制在距离图像边缘不小于(n-1)/2个像素处,单处理后的图像比原始图像稍小。如果要处理整幅图像,可以在图像轮廓边缘时用全部包含于图像中的模板部分来滤波所有图像,或者在图像边缘以外再补上一行和一列灰度为零的像素点(或者将边缘复制补在图像之外)。
中值滤波器的设计:
  中值滤波器是一种非线性统计滤波器,它的响应基于图像滤波器包围的图像区域中像素的排序,然后由统计排序的中间值代替中心像素的值。它比小尺寸的线性平滑滤波器的模糊程度明显要低,对处理脉冲噪声(椒盐噪声)非常有效。中值滤波器的主要功能是使拥有不同灰度的点看起来更接近于它的邻近值,去除那些相对于其邻域像素更亮或更暗,并且其区域小于滤波器区域一半的孤立像素集。
  在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。在处理之后,位于窗口正中的像素的灰度值,用窗口内各像素灰度值的中值代替。但如果中值像素是一个信号,则滤波后就被消除,降低了分辨率。因此中值滤波在某些情况下抑制噪声,而在另一些情况下却会抑制信号。
  将中值滤波推广到二维的情况。二维窗口的形式可以是正方形、近似圆形的或十字形等。正方形掩膜进行滤波,它的中心一般位于被处理点上。窗口的大小对滤波效果影响较大。
高斯滤波器的设计:
  高斯滤波是一种根据高斯函数的形状来选择模板权值的线性平滑滤波方法。高斯平滑滤波器对去除服从正态分布的噪声是很有效果的。在一维零均值高斯函中,高斯分布参数决定了高斯滤波器的宽度。对图像来说,常用二维零均值离散高斯函数作平滑滤波器。
  高斯函数具有5个重要性质:
二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的。一般来说一幅图像的边缘方向是不知道的。因此,在滤波之前是无法确定一个方向比另一个方向上要更多的平滑的。旋转对称性意味着高斯滤波器在后续的图像处理中不会偏向任一方向。
高斯函数是单值函数。高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点的权值是随着该点与中心点距离单调递减的。这一性质是很重要的,因为边缘是一种图像局部特征。如果平滑运算对离算子中心很远的像素点仍然有很大的作用,则平滑运算会使图像失真。
高斯函数的傅立叶变换频谱是单瓣的。也就是说高斯函数傅立叶变换等于高斯函数本身。图像常被不希望的高频信号所污染,而所希望的图像特征,既含有低频分量,又含有高频分量。高斯函数傅立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需要的信号。
高斯滤波器的宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。通过调节平滑程度参数σ,可在图像特征分量模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得平衡。
由于高斯函数的可分离性,大高斯滤波器可以有效实现。通过二维高斯函数的卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积的结果与方向垂直的相同一维高斯函数进行卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。这些性质使得它在早期的图像处理中特别有用,表明高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器。

(2)处理结果

  • 中值滤波函数
    zcr
    zcr

  • 高斯滤波函数
    zcr
    zcr
    利用sigma=1.5产生高斯滤波器:

clear;clc;
sigma1=1.5;sigma2=1.5;
theta=0;  
[I,map]=imread('test1.pgm','pgm');     
r=[1,0;0,1]; 
for i=1:3     
    for j=1:3       
        u=r*[j-(n1+1)/2,i-(n2+1)/2]'; 
        h(i,j)=exp(-u(1)^2/(2*sigma1^2))/(sigma1*sqrt(2*pi))*exp(-u(2)^2/(2 *sigma2^2))/(sigma2*sqrt(2*pi));           
    end
end
h=h/sqrt(sum(sum(h.*h)));
f1=conv2(double(I),double(h),'same'); %二维卷积
figure(1);  
imshow(I);
title('原图像:test1.pgm'); 
figure(2); 
imshow(f1,map);
title('高斯滤波平滑后的test1.pgm(3x3)'); 

(3)结果分析
  中值滤波器的主要功能是使拥有不同灰度的点更接近于它的相邻点。事实上,使用m×m中值滤波器来去除那些相对于其邻域像素更亮或更暗并且其区域小于滤波器区域的一半的孤立像素族。中值滤波过程中较大的族所受到的影响明显较小。从处理后的图像看,图像的平滑效果较为明显,且受窗口的影响,窗口越大,平滑效果越明显,图像细节损失越严重,尤其是test2、的眼睛部分,随着滤波器模板的增大,可以明显的感受到图像模糊的效果。经过比较自己编写的程序(在上面)的处理结果和matlab自带medfilt2函数的处理结果,效果基本一致。
  高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个掩模扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。从处理后的图像看,图像的平滑效果较为明显,且受窗口的影响,窗口越大,平滑效果越明显,图像细节越模糊。
  相比而言,中值滤波更适合用于椒盐噪声等污染不是很严重的图片,即孤立像素族。而高斯滤波更适用于呈正态分布的噪声,高斯噪声。由于是加权平均的过程,比直接平均保留了更多图像自己的细节,减少了模糊的程度。
3.利用高通滤波器滤波测试图像test3,4:包括unsharp masking, Sobel edge detector, and Laplace edge detection;Canny algorithm.分析各自优缺点;
(1)问题分析:
  锐化滤波能减弱或消除图像中的低频率分量,但不影响高频率分量。因为低频分量对应图像中灰度值缓慢变化的区域,因而与图像的整体特性,如整体对比度和平均灰度值等有关。锐化滤波将这些分量滤去可使图像反差增加,边缘明显。在实际应用中,锐化滤波可用于增强被模糊的细节或者低对比度图像的目标边缘。
  图像锐化的主要目的有两个:一是增强图像边缘,使模糊的图像变得更加清晰,颜色变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像;二是希望经过锐化处理后,目标物体的边缘鲜明,以便于提取目标的边缘、对图像进行分割、目标区域识别、区域形状提取等,为进一步的图像理解与分析奠定基础。
  由于锐化使噪声受到比信号还要强的增强,所以要求锐化处理的图像有较高的信噪比;否则,锐化后图像的信噪比更低。
(2)处理结果
①反锐化掩膜图像增强(unsharp masking)
zcr
②索贝尔边缘检测(Sobel edge detector)
zcr
③Laplacian边缘检测(Laplacian edge detector)
zcr
④Canny算子边缘检测(Canny algorithm)
zcr
(3)结果分析
反锐化掩膜处理结果得到了边缘更加清晰的图像,但同时看到也会引进一些不希望看到的噪声。
索贝尔算子是常用算子之一,主要用作边缘检测。在在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。但Sobel算子并没有将图像的主体与背景严格地区分开来, Sobel算子没有基于图像灰度进行处理,所以提取的图像轮廓有时并不能令人满意。从图像可以看出索贝尔算子并没有将图像边缘完全分离出来。
拉普拉斯是一种微分算子,其应用强调的是图像中灰度的突变,并不强调灰度级缓慢变化的区域。这将产生把突变点叠加到暗色背景中的图像。观察图像可得,拉普拉斯算子对于test3_corrupt.pgm的边缘检测较为理想,而对于test4 copy.bmp的边缘检测很不灵敏,但是经过滤波后在检测可以得到一定的改善。
由输出图片效果来看,Canny算子可以较好的将图像的边缘提取出来。

附录 【参考文献】 [1] 冈萨雷斯.数字图像处理(第三版)北京:电子工业出版社,2011.
[2]郭海霞,解凯.一种改进的自适应中值滤波算法[J].哈尔滨师范大学数学与计算机学院计算机系,2007.
[3]张明源,王宏力.改进型中值滤波器在图像去噪中的应用[J].第二炮兵工程学院,2007.
[4]张丽,陈志强.均值加速的快速中值滤波算法[J].清华大学工程物理系,2004.

digital-image-processing_filter's People

Contributors

aifu-0624 avatar xuankuzcr avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.