数字图像处理实验教案_实验4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四图像的边缘提取
一、实验目的
1.掌握边缘提取的原理;
2.了解各种边缘提取算子定义及其性质;
3.掌握几种常用边缘算子的提取方法;
4.掌握边缘检测Matlab函数的使用方法。
二、实验仪器设备
1.计算机
2.Matlab软件环境
三、实验原理
1.边缘检测算子
边缘大致可分为阶跃状和屋顶状两种。阶跃状边缘位于其两边的像素灰度值有明显不同的地方;屋顶状边缘位于灰度值从增加到减少的转折处。还有一种脉冲状边缘,是屋顶状边缘的特殊情况。
边缘是灰度值不连续的结果,这种不连续常可利用求导数方便地检测到,一般常用一阶和二阶导数来检测边缘。如下图所示,第1排是一些具有边缘的图像示例,第2排是沿图像水平方向的1个剖面图,第3排和第4排分别为剖面的一阶和二阶导数。第1列和第2列是阶梯状边缘,第3列是屋顶状边缘,第4列是脉冲状边缘。
可用一阶导数的幅度值来检测边缘的存在,幅度峰值一般对应边缘位置。可用二阶导数的过零点检测边缘位置,而用二阶导数在过零点附近的符号确定边缘像素在图像边缘的暗区或明区。
利用边缘灰度变化的一阶或二阶导数特点,可以将边缘点检测出来。对于数字图像导数可以用差分近似。
常用的一阶导数类算子有Roberts梯度算子、Prewitt算子和Sobel算子,常用二阶导数类算子有Laplacian算子和LoG算子,最优边缘检测算子有Canny算子。
常用的一阶导数类算子的模板见下图。
以梯度算子为例,为检测边缘点,选取适当的阈值T ,对梯度图像进行二值化,则有:
1grad(,)(,)0x y T g x y ≥⎧=⎨⎩其他
这样形成一幅边缘二值图像g (x ,y )。
2.边缘检测的
M atla b 函数 MATLAB 图像处理工具箱提供了 edge 函数利用以上算子来检测灰度图像的边缘。它支 持六种不同的边缘提取方法,即 Sobel 、Prewitt 、Robert 、Laplacian 、过零点方法和 Canny 方法。其语法格式为:
BW=edge(I,’method’)
BW=edg e(I,’m ethod’,thresh)
BW=edg e(I,’m ethod’,thresh,direction)
其中:
method :sobel 、prewitt 、robert 、log 、zerocross 、canny 。
thresh :设定阈值门限,缺省时自动选取阈值。
direction :对于’sobel ’和’p rewitt’方法指定方向,’horiz ontal ’(水平方向);’vertic al ’(垂直方向);’bo th ’(缺省值,表示两个方向)。
四、实验内容及步骤
(1)编写Matlab 程序,调用以上六种常用的边缘检测算子,提取一幅灰度图像(rice.tif )的边缘,并比较不同的算子的检测效果。
(2)编写Matlab 程序,读取图像,加高斯噪声,调用以上六种常用的边缘检测算子,提取一幅灰度图像(rice.tif )的边缘,并比较不同的算子的检测效果。
五、实验报告要求
1、叙述实验过程;
2、提交实验的原始图像和结果图像。
六、思考题
1.总结实验结果,比较各种边缘检测算子的性能特点。