图像的边缘检测实验处理报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字视频图像处理与通信实验

实验项目:图像的边缘检测

指导老师:***

班级:

姓名:

学号:

图像的边缘检测实验报告

一;实验目的:

1.掌握图像边缘检测的基本概念以及边缘检测的基本方法;

2.通过matlab 实验的具体操作来具体掌握空间图像边缘检测的方法;

3.通过matlab 实验来验证所学知识,达到学以致用;

4.通过matlab 实验来理解roberts 、sobel 、canny 、log 几种算子的原理以及各个算法的优缺点,并加以比较。

二;实验原理:

图像的边缘是图像最基本的特征之一。所谓边缘(或边沿)是指周围像素灰度有阶跃性变化或“屋顶”变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间,因此它是图像分割依赖的重要特征。图像边缘对图像识别和计算机分析十分有用,边缘能勾划出目标物体,使观察者一目了然;边缘蕴含了丰富的内在信息(如方向、阶跃性质、形状等)。从本质上说,图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反应,它标志着一个区域的终结和另一个区域的开始。 边缘检测技术是所有基于边界分割的图像分析方法的第一步,首先检测出图像局部特性的不连续性,再将它们连成边界,这些边界把图像分成不同的区域,检测出边缘的图像就可以进行特征提取和形状分析,但各算子有自己的优缺点和适用领域。 Roberts 算子

Roberts 算子是一种利用局部差分算子寻找边缘的算子,由下式给出: g(x,y)={[y x f ,(-)1,1(++y x f ]2+[y x f ,(- )1,1(++y x f ]2}21 ,

其中f(x,y)是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。Roberts 算子边缘定位准,但是对噪声敏感。适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts 算子来提取道路。

Prewitt 边缘算子

Prewitt 边缘算子的卷积和如

图所示,图像中的每个像素都用这

两个核做卷积,取最大值作为输出,

也产生一幅边缘幅度图像。

Prewitt 算子在一个方向求微分,而在另一个方向求平均,因而对噪声相对不敏感,有抑制噪声作用。但是像素平均相当于对图像的低通滤波,所以Prewitt 算子对边缘的定位不如Roberts 算子。

Log 边缘算子

利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以在边缘增强前滤除噪声。为此,马尔(Marr )和希尔得勒斯(Hildreth )根据人类视觉特性提出了一种边缘检测的方法,该方法将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法,故称为Log (Laplacian of Gassian )算法。也称之为拉普拉斯高斯算法。

Sobel 算子:

索贝尔算子是图像处理中的算子之一,主要用作边缘检测。该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A 代表原始图像,Gx 及Gy 分别代表经横向及纵向边缘检测的图像,其公式如下:

101202*101x G A -+⎛⎫ ⎪=-+ ⎪ ⎪-+⎝⎭ 121000*121y G A +++⎛⎫ ⎪= ⎪ ⎪---⎝⎭

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

Canny 边缘算子

检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。图像边缘检测必须满足两个条件:一是必须能有效地抑制噪声;二是必须尽量精确确定边缘的位置。既要提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感。

Canny边缘检测基本原理:具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。

三:实验内容:

a = imread('football.jpg');

a=rgb2gray(a); % 灰度处理

figure

subplot(2,3,1),

imshow(a);

title('灰度图');

b=edge(a,'sobel',0.02);

subplot(2,3,2),

imshow(b), axis on;

title('sobel');

c=edge(a,'roberts',0.02);

subplot(2,3,3), imshow(c), axis on;

title('roberts');

d=edge(a,'canny',[0.05,0.1],2); subplot(2,3,4), imshow(d), axis on;

title('canny');

e=edge(a,'log');

subplot(2,3,5), imshow(e), axis on;

title('log');

f=edge(a,'prewitt', 0.05);

subplot(2,3,6), imshow(f), axis on;

title('prewitt');

四:实验结果:

五:实验讨论:

由于Roberts算子是利用图像的两个对角线的相邻像素之差进行梯度幅值的检测,所以求得的是在差分点处梯度幅值的近似值,并且检测水平和垂直方向边缘的性能好于斜线方向的边缘,检测精度比较高,但容易丢失一部分边缘,同时由于没经过图像平滑计算,因此不能抑制噪声,但该算子对具有陡峭的低噪声图像响应最好。

Prewitt算子和Sobel算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异,因此两者均对噪声具有一定的抑制能力,但这种抗噪能力是通过像素平均来实现的,所以图像产生了一定的模糊,而且还会检测出一些伪边缘,所以检测精度比较低,该算子比较适合用于图像边缘灰度值比较尖锐且图像噪声比较小的情况。

Canny算子也采用高斯函数对图像进行平滑处理,因此具有较强的去噪能力,边缘定位精度较高。该算子与其它边缘检测算子的不同之处在于,它使用2种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘相连时才将弱边缘包含在输出图像中,因此这种方法较其它方法而言不容易被噪声“填充”更容易检测出真正的弱边缘。

相关文档
最新文档