您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字图像处理实验教案_实验4
实验四图像的边缘提取一、实验目的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(,)(,)0xyTgxy其他这样形成一幅边缘二值图像g(x,y)。2.边缘检测的Matlab函数MATLAB图像处理工具箱提供了edge函数利用以上算子来检测灰度图像的边缘。它支持六种不同的边缘提取方法,即Sobel、Prewitt、Robert、Laplacian、过零点方法和Canny方法。其语法格式为:BW=edge(I,’method’)BW=edge(I,’method’,thresh)BW=edge(I,’method’,thresh,direction)其中:method:sobel、prewitt、robert、log、zerocross、canny。thresh:设定阈值门限,缺省时自动选取阈值。direction:对于’sobel’和’prewitt’方法指定方向,’horizontal’(水平方向);’vertical’(垂直方向);’both’(缺省值,表示两个方向)。四、实验内容及步骤(1)编写Matlab程序,调用以上六种常用的边缘检测算子,提取一幅灰度图像(rice.tif)的边缘,并比较不同的算子的检测效果。(2)编写Matlab程序,读取图像,加高斯噪声,调用以上六种常用的边缘检测算子,提取一幅灰度图像(rice.tif)的边缘,并比较不同的算子的检测效果。五、实验报告要求1、叙述实验过程;2、提交实验的原始图像和结果图像。六、思考题1.总结实验结果,比较各种边缘检测算子的性能特点。
本文标题:数字图像处理实验教案_实验4
链接地址:https://www.777doc.com/doc-2425058 .html