实验三 图像的边缘检测

合集下载

数字图像处理实验报告(图像边缘检测)

数字图像处理实验报告(图像边缘检测)

实验报告实验名称实验三图像边缘检测课程名称数字图像处理某成绩班级学号日期地点备注:1、实验目的(1)了解并掌握使用微分算子进行图像边缘检测的基本原理;(2)编写程序使用Laplacian 算子(二阶导数算子)实现图像锐化,进一步理解图像锐化的实质;(3)掌握使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、方法,根据实验结果分析各种算子的工作效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。

2、实验环境(1)Windows XP/7(2)Matlab 7.1/7.143、实验方法本次实验要求对256×256大小,256级灰度的数字图像lena.img进行处理。

(1)对该图像进行锐化处理,要求采用Laplacian算子进行锐化,分α=1和α=2两种情况,按如下不同情况进行处理:①g1(m,n)=f(m,n)-α∇f②g2(m,n)=4αf(m,n)-α[f(m-1,n)+f(m+1,n)+f(m,n-1)+f(m,n+1)]I、要对图像进行处理,要先读取该图像,实验代码如下:close all;clear all;fid=fopen('lena.img','r');image=fread(fid,[256,256],'uint8');fclose(fid);II、读取图像后,对该图像的每一像素(不考虑图像的边界部分)进行遍历,根据公式①(公式①相当于做差分)对每一灰度进行计算,将所得的结果存入一矩阵g1中(矩阵g1初始化为该图像的矩阵),代码如下(仅以ɑ=1为例):g1=image;a=1;[x,y]=size(image);for i=2:(x-1)for j=2:(y-1) g1(i,j)=(1+4*a)*image(i,j)-a*(image(i+1,j)+image(i-1,j)+image(i,j+1)+image(i,j-1));endendIII、根据公式②对图像的每一个像素(不考虑图像的边界部分)进行计算,将所得之存入矩阵g2中(g2初始化值为该图像的矩阵值),具体方法与上一步类似,代码如下(仅以ɑ=1为例):g2=image;a=1;[x,y]=size(image);for i=2:(x-1)for j=2:(y-1)g2(i,j)=4*a*image(i,j)-a*(image(i+1,j)+image(i-1,j)+image(i,j+1)+image(i,j-1));endend(2)分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对原图像进行边缘检测,显示处理前、后图像。

图像边缘检测

图像边缘检测

图像边缘检测边缘是图像最基本的特征,其在计算机视觉、图像分析等应用中起着重要的作用,这是因为图像的边缘包含了用于识别的有用信息,是图像分析和模式识别的主要特征提取手段。

1.何为“图像边缘”?在图像中,“边缘”指的是临界的意思。

一幅图像的“临界”表示为图像上亮度显著变化的地方,边缘指的是一个区域的结束,也是另一个区域的开始。

“边缘点”指的是图像中具有坐标[x,y],且处在强度显著变化的位置上的点。

2.如何表示边缘检测?在数学上,用导数来表示改变的快慢。

基于此,有许多方法用于边缘检测,他们绝大部分可以划分为两类:基于查找的一类和基于零穿越的一类。

基于查找的方法通过寻找图像一阶导数中的最大值和最小值来检测边界,通常将边界定位在梯度最大的方向(想想一阶导数的含义是图像变化的速度,最大的自然就是变化最显著的)。

基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。

图像在数学上可看做是二维离散函数,图像梯度就是这个二维离散函数的求导。

函数f(x,y)在(x,y)处的梯度为一个向量:计算这个向量的大小为:通常为了提高效率,常近似表示为:梯度的方向角为:差分通常是微分在离散的函数中的等效运算,所以计算图像的梯度常使用差分。

3.Sobel算子索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用于边缘检测。

在技术上,它是一离散型差分算子,用来运算图像亮度函数的梯度之近似值。

在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。

公式该算子包含两组3X3的矩阵,分别为横向和纵向,将其与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。

如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:具体计算如下:Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]其中f(a,b)表示图像(a,b)点的灰度值。

实验三图像边缘检测

实验三图像边缘检测

实验四图像边缘检测一.实验目的1.熟悉matlab图像处理工具箱及图像边缘检测函数的使用;2.理解和掌握图像边缘检测(Sobel、Prewitt、Log边缘算子)的方法和应用;二、实验环境本实验在386以上的微机上进行,运行环境为Matlab 6.5。

三.实验内容与完成情况在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log 边缘算子)函数,设置相关参数,再输出处理后的图像。

I = imread('cameraman.tif');J1=edge(I,'sobel');J2=edge(I,'prewitt');J3=edge(I,'log');subplot(1,4,1),imshow(I);subplot(1,4,2),imshow(J1);subplot(1,4,3),imshow(J2);subplot(1,4,4),imshow(J3);观察经过图像边缘检测(Sobel、Prewitt、Log边缘算子)处理后的结果。

(a)原始图像 (b)Sobel边缘算子(c)Prewitt边缘算子 (d)Log边缘算子四、出现的问题及对问题的解决方案问题:不知道怎么调用各种算子。

解决:用函数edge(I,'sobel');即可实现。

五、思考题1、比较上述算子的优缺点。

sobel算子对灰度渐变和噪声较多的图像处理效果比较好,sobel算子对边缘定位比较准确。

Prewitt算子对灰度渐变和噪声较多的图像处理效果较好。

Log算子经常出现双边缘像素边界,而且该检测方法对噪声比较敏感,所以很少使用log算子检测边缘,而是用来判断边缘像素是位于图像的明区还是暗区。

六、实验总结通过本次实验,我学会了边缘检测的Matlab实现方法,掌握了Matlab 区域操作函数的使用和图像分析和理解的基本方法并对用'sobel','prewitt','log'算子对图像进行边缘检测的不同效果有了更直观的认识。

详细的图像分割之边缘检测实验报告

详细的图像分割之边缘检测实验报告

边缘检测实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。

二、实验原理:图像处理有两大类目的:1.改善像质(增强、恢复);2.图像分析:对图像内容作出描述;其一般的图像处理过程如下:图像分割的算法有:(1)阈值分割原理:(,)(,)(,)EBLf x y Tg x y L f x y T≥⎧=⎨<⎩(2)边缘检测:梯度对应一阶导数,对于一个连续图像函数f(x,y):梯度矢量定义:梯度的幅度:梯度的方向:a) Roberts 算子b) Sobel 算子Roberts 算子[]TTyxy f x f G G y x f ⎦⎤⎢⎣⎡∂∂∂∂==∇),(122)()),((),(y x G G y x f mag y x f +=∇=∇)arctan(),(x y G y x =φ()()()[]()()[]{}21221,,11,1,,+-++++-=j i f j i f j i f j i f j i gc) Prewitt 算子d) Kirsch 算子由K 0~K 7八个方向模板组成,将K0~K7的模板算法分别与图像中的3×3区域乘,选最大一个值,作为中央像素的边缘强度(3)区域分割1 区域生长法 算法描述先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相似性质的像素合并到种子像素所在的区域中。

将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。

2 分裂合并法实际中常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求,即分裂合并法.一致性测度可以选择基于灰度统计特征(如同质区域中的方差),假设阈值为T ,则算法步骤为:① 对于任一Ri ,如果 ,则将其分裂成互不重叠的四等分; ② 对相邻区域Ri 和Rj ,如果 ,则将二者合并; ③ 如果进一步的分裂或合并都不可能了,则终止算法。

图像处理中的边缘检测方法

图像处理中的边缘检测方法

图像处理中的边缘检测方法边缘检测是图像处理中一项重要任务,它可以通过识别图像中的边缘来揭示物体的轮廓和边界。

在计算机视觉、模式识别和图像分析等领域,边缘检测被广泛应用于目标检测、图像分割、特征提取等方面。

本文将介绍几种常见的图像处理中的边缘检测方法,包括Sobel算子、Canny算子和Laplacian算子。

1. Sobel算子Sobel算子是一种基于差分运算的边缘检测算法,它通过计算图像中像素值的梯度来确定边缘。

Sobel算子采用了一种基于离散卷积的方法,通过在水平和垂直方向上应用两个3×3的卷积核,分别计算出水平和垂直方向的梯度值,最后将两个梯度值进行合并,得到最终的梯度幅值。

Sobel算子在图像边缘检测中表现出色,但它对噪声敏感,需要进行预处理或者使用其他滤波方法。

2. Canny算子Canny算子是一种经典的边缘检测算法,它综合了图像平滑、梯度计算、非极大值抑制和双阈值处理等步骤。

首先,Canny算子使用高斯滤波器对图像进行平滑处理,以减少噪声的影响。

然后,它计算图像中每个像素的梯度幅值和方向,并进行非极大值抑制,保留局部最大值点。

最后,通过设置低阈值和高阈值,将梯度幅值分为强边缘和弱边缘两部分,并通过迭代连接强边缘像素点来得到最终的边缘图像。

3. Laplacian算子Laplacian算子是一种基于二阶微分的边缘检测算法,它通过计算图像中像素值的二阶导数来确定边缘。

Laplacian算子可以通过二阶离散卷积来实现,它对图像中的边缘部分具有一定的抑制作用,并提供了更加精细的边缘信息。

在应用Laplacian算子之前,通常需要对图像进行灰度化处理,以减少计算量和提高边缘检测效果。

与Sobel和Canny 算子相比,Laplacian算子对噪声的影响较小,但容易产生边缘断裂和边缘响应不稳定的问题,因此在实际应用中需要进行适当的后处理。

综上所述,Sobel算子、Canny算子和Laplacian算子是图像处理中常用的边缘检测方法。

图像的边缘检测实验报告

图像的边缘检测实验报告

图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。


本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。

首先,我们使用了Sobel算子进行边缘检测。

Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。

实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。

接着,我们尝试了Canny边缘检测算法。

Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。

实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。

最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。

实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。

总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。

希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。

边缘检测实验报告

一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。

二、实验原理检测图像边缘信息,可以把图像看做曲面,边缘就是图像的变化最剧烈的位置。

这里所讲的边缘信息包含两个方面:一是边缘的具体位置,即像素的坐标;而是边缘的方向。

微分算子有两个重要性质:定域性(或局部性)、敏感性(或无界性)。

敏感性就是说,它对局部的函数值变化很敏感,但是因其对变化过于敏感又有了天然的缺陷——不能抵抗噪声。

局部性意思是指,每一点的导数只与函数在该点邻近的信息有关。

主要有两大类基于微分算子的边缘检测技术:一阶微分算子边缘检测与二阶微分算子边缘检测。

这些检测技术采用以下的基本步骤:(1) 将相应的微分算子简化为离散的差分格式,进而简化为模板(记为T)。

(2)利用模板对图像f(m,n)进行运算,获得模板作用后的结果Tf(m,n)。

(3) 提出阈值h,在采用一阶微分算子情形记录下高于某个阈值h 的位置坐标}),(|),{(h n m Tf n m S h ≥=(而采用二阶微分算子情形,一般是对某个阈值0>ε确立}),(|),{(ε≥=n m Tf n m S h )(4) 对集合h S 进行整理,同时调整阈值h 。

Roberts 算子Roberts 算子是一种利用局部差分算子寻找边缘的算子,两个模板分别为⎥⎦⎤⎢⎣⎡-=1001x R ⎥⎦⎤⎢⎣⎡-=0110y R 则,),(j i f R x =)1,1(),(++-j i f j i f),(j i f R y =)1,(),1(+-+j i f j i f算法的步骤为:(1) 首先用两个模板分别对图像作用得到f R x 和f R y ;(2) 对22),(y x R R j i Tf +=,进行阈值判决,若),(j i Tf 大于阈值则相应的点 位于便于边缘处。

图像处理中边缘检测的使用教程

图像处理中边缘检测的使用教程边缘检测在图像处理中扮演着重要的角色,它能够帮助我们识别出图像中的边界,从而进一步处理或分析图像。

本文将为您讲解边缘检测的基本原理、常用算法以及实际应用。

一、边缘检测的基本原理图像的边缘指的是图像中灰度值发生突变的地方,通常是颜色、亮度或纹理的变化。

在图像处理中,边缘检测是通过计算图像中像素点的梯度来实现的。

常用的边缘检测算法有Sobel算子、Prewitt算子和Canny算子。

1. Sobel算子Sobel算子是一种计算图像梯度的算法,它通过计算图像中每个像素点的水平和垂直梯度来实现边缘检测。

Sobel算子对图像噪声有较好的抑制效果,同时能够检测到图像中的边界。

2. Prewitt算子Prewitt算子也是一种常用的边缘检测算法,它与Sobel算子原理相似,同样通过计算图像中每个像素点的水平和垂直梯度来实现边缘检测。

Prewitt算子在计算上比Sobel算子更简单,但噪声抑制能力略低于Sobel算子。

3. Canny算子Canny算子是一种经典的边缘检测算法,它通过多阶段的处理来实现边缘检测。

首先,Canny算子使用高斯滤波器平滑图像,然后计算图像中每个像素点的梯度和方向,接着使用非极大值抑制方法提取边缘,最后应用双阈值处理来确定最终的边缘。

二、边缘检测的常用算法除了上述提到的Sobel算子、Prewitt算子和Canny算子,还有其他一些常用于边缘检测的算法,如拉普拉斯算子、Robert算子和Scharr算子。

1. 拉普拉斯算子拉普拉斯算子是一种二阶微分算子,它能够检测出图像中的局部极值点,从而实现边缘检测。

拉普拉斯算子对图像中的噪声比较敏感,因此常常需要进行噪声抑制处理。

2. Robert算子Robert算子是一种计算图像边缘的简单算法,它通过计算图像中相邻像素点的差异来实现边缘检测。

相比于其他算子,Robert算子计算量较小,但对于噪声比较敏感。

3. Scharr算子Scharr算子是一种类似于Sobel算子的边缘检测算法,它通过计算图像中每个像素点的水平和垂直梯度来实现边缘检测。

《图像边缘检测》课件

1 Sobel算子
一种基于图像的梯度计算方法,可用于检测图像中的边缘。
2 Prewitt算子
另一种基于图像梯度的边缘检测算法,与Sbel算子类似。3 Canny算子
一种更复杂的边缘检测算法,能够检测到更细微的边缘。
边缘检测的应用
物体识别
边缘检测可以帮助识别图像中的物体,从而实现自动目标识别和分类。
图像增强
通过突出边缘,可以增强图像的清晰度和对比度,使图像更加生动。
计算机视觉
边缘检测是计算机视觉中基础且关键的技术,用于解决人机交互、图像分析等问题。
图像处理中的挑战
在图像处理中,边缘检测面临一些挑战,如噪声干扰、光照变化和边缘连接性等问题。需要采用合适的算法和 技术来克服这些挑战。
结论和要点
《图像边缘检测》PPT课 件
图像边缘检测是一种通过识别图像中物体边缘的技术。本课件将介绍边缘检 测的定义、常用的边缘检测算法以及边缘检测的应用。
图像边缘检测的定义
图像边缘检测是一种分析图像中不同区域之间的边界或过渡区域的技术。它对于物体检测、图像分割和目标识 别等任务非常重要。
常用的边缘检测算法
通过本课件的学习,你应该对图像边缘检测有了更深入的了解。边缘检测是图像处理中的重要步骤,它可以帮 助我们更好地理解和分析图像。

数字图像实验报告三图像的边缘检测

实验三图像的边缘检测一、实验目的1.理解图像边缘检测的概念;2.掌握图像边缘检测的目的及意义;3.学会利用matlab编程实现图像的边缘检测。

二、实验内容1. 利用matlab语言直接编程实现sobel算子检测图像边缘;2. 利用matlab语言直接编程实现prewitt算子检测图像边缘3. 利用matlab语言直接编程实现laplace算子检测图像边缘。

三、实验步骤(一)利用matlab语言直接编程实现sobel算子检测图像边缘实验代码如下:u=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告三通信五班韩奇20110803520\fangzi.jpg');u=rgb2gray(u);imwrite(u,'fangzi灰度图.bmp');f=u;F=double(f);U=double(u);[H,W]=size(u);uSobel=u;for i=2:H-1for j=2:W-1Gx=(U(i+1,j-1)+ U(i+1,j)+F(i+1,j+1))-(U(i-1,j-1)+U(i-1,j)+F(i-1,j+1));Gy=(U(i-1,j+1)+U(i,j+1)+F(i+1,j+1))-(U(i-1,j-1)+U(i,j-1)+F(i+1,j-1));uSobel(i,j)=sqrt(Gx^2+Gy^2);endendfigure(1);imshow(f);title('原图');figure(2);imshow(im2uint8(uSobel)); title('Sobel边缘检测');生成图像如下:从图中可以看出,利用sobel算子能够提取出原图的边缘,且效果较好。

sobel算子能检测边缘点,且能进一步抑制噪声的影响,但检测的边缘较宽。

(二)利用matlab语言直接编程实现laplace算子检测图像边缘实验代码如下:[I,map]=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告三通信五班韩奇20110803520\fangzi.jpg');I=rgb2gray(I);[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+M(i,j+1)-M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i+1,j-1)-M(i-1 ,j-1)+M(i+1,j)-M(i-1,j)+M(i+1,j+1)-M(i-1,j+1));end;end;figure(1);imshow(I);title('原图');figure(2);imshow(uint8(J));title('Prewitt处理后'); 生成图像如下:prewitt算子为在检测边缘的同时减少噪声的影响,从加大边缘检测算子的模板大小出发,由2*2扩大到3*3来计算差分算子,采用prewitt算子能检测到边缘点,还可以抑制噪声。

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

实验三图像的边缘检测
一、实验目的与要求
1、了解图像边缘提取的基本概念;
2、了解进行边缘提取的基本方法;
3、编程实现对所给图像的边缘进行提取。

二、知识点
1、边缘检测的思想和原理
图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。

边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。

在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。

边缘检测实际上就是检测图像特征发生变化的位置。

由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。

边缘检测的方法大多数是基于方向导数掩模求卷积的方法。

导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。

一阶导数是最简单的导数算子,它们分别求出了灰度在x和y方向上的变化率,而方向上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导,差分公式参考相关教材。

2、常用的梯度算子
(1)Roberts Cross算子,它的2个2 X2模板如图3所示。

图3 Robert Cross算子模板
(2)Prewitt 算子,它的2个3×3模板如图4所示。

图4 Prewitt算子模板
(3)Sobel 算子,它的2个3×3模板如图5所示。

图3 Sobel算子模板
3、高斯拉普拉斯(LoG)算法
高斯拉普拉斯(LoG)算法是一种二阶边缘检测方法。

它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。

其原理为,灰度
级变形成的边缘经过微分算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对英语二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。

在数字图像中,对拉普拉斯的计算也可以借助各种模板实现。

这里对模板的基本要求是对应中心像素的系数是正的,而对应中心像素邻近的系数应是负的,且它们的和应为零。

4.实验中主要用的matLab函数是edge() 函数,该函数的基本语法是:
[g, t]=edge(f,’method’,parameters)
其中,f是输入图像,method是Sobel\Prewitt\Roberts\Laplacian of a Gaussian(LOG)\Canny等方法中的一种,parameters是一个需要指定输出阈值及边缘检测方向的参数。

输出中g 是一个逻辑数组,其值如下决定:在f 中检测到边缘的位置为1,在其他位置为0。

参数t是可选的;它给出edge 使用的阈值,以确定哪个梯度值足够大到可以成为边缘点。

例如:Sobel、Prewitt、Roberts边缘检测器的调用语法为:
[g, t]=edge(f,’sobel’,T,dir)
[g, t]=edge(f,’prewitt’,T,dir)
[g, t]=edge(f,’roberts’,T,dir)
其中:f是输入图像,T是一个指定的阈值,dir是指定检测边缘的首选方向:‘horizontal’、‘vertical’、‘both’(默认值),g 是在被检测到边缘的的位置为1,在其他位置为0的逻辑类图象。

参数t是可选的,给出edge使用的阈值,,若指定了T的值,则t=T,否则若T未被赋值(或为空,[]),则函
数edge会令t的功能于他自动确定的一个阈值,然后用于边缘检测。

LoG检测的基本语法:
[g, t]=edge(f,’log’,T,sigma)
其中,sigma是标准偏差,其他参数如前所述。

Sigma的默认值是2,若另T为0则会产生闭合轮廓的边缘,这是LoG方法的一个常见特征。

三、实验内容
1、利用上述3个梯度算子对给定的位图文件进行边缘检测。

对edge函数中的T和dir给出不同的值,观察结果的不同。

以某一个剃度算子为例,得到T 的默认值,并将T的值分别给出大于和小于默认值,并给出实验结果。

进行分析。

(记录图形并打印,分析结果)
2、利用上述3个梯度算子对所检测边缘的宽度进行对比分析。

(记录结果,分析结果)
3、利用LOG算子对给定的位图文件进行边缘检测。

(记录图形并打印,分析结果)
4、对梯度算子与LOG算子的图像边缘检测效果进行分析。

(记录结果,分析结果)
四、考核要点
1、3个梯度算子和LOG算子对图像边缘检测的效果图像;
2、3个梯度算子和LOG算子对图像边缘检测的效果对比分析。

五、实验报告要求
1、报告中必须有合理的实验方案;
2、给出相应的实验步骤和程序;
3、根据不同的边缘提取方法,要有相应的实验效果图;
4、对实验结果进行分析,对比。

相关文档
最新文档