数字图像处理实验教案实验.pdf
学习必备欢迎下载实验四图像的边缘提取一、实验目的1掌握边缘提取的原理;2了解各种边缘提取算子定义及其性质;3掌握几种常用边缘算子的提取方法;4掌握边缘检测Matlab 函数的使用方法。二、实验仪器设备1计算机2Matlab 软件环境三、实验原理1边缘检测算子边缘大致可分为阶跃状和屋顶状两种。阶跃状边缘位于其两边的像素灰度值有明显不同的地方; 屋顶状边缘位于灰度值从增加到减少的转折处。还有一种脉冲状边缘,是屋顶状边缘的特殊情况。边缘是灰度值不连续的结果,这种不连续常可利用求导数方便地检测到,一般常用一阶和二阶导数来检测边缘。如下图所示, 第 1 排是一些具有边缘的图像示例,第 2 排是沿图像水平方向的1 个剖面图, 第 3 排和第 4 排分别为剖面的一阶和二阶导数。第 1 列和第 2列是阶梯状边缘,第3 列是屋顶状边缘,第4 列是脉冲状边缘。可用一阶导数的幅度值来检测边缘的存在,幅度峰值一般对应边缘位置。可用二阶导数的过零点检测边缘位置,而用二阶导数在过零点附近的符号确定边缘像素在图像边缘的暗区或明区。利用边缘灰度变化的一阶或二阶导数特点,可以将边缘点检测出来。对于数字图像导数可以用差分近似。常用的一阶导数类算子有Roberts梯度算子、 Prewitt 算子和 Sobel算子,常用二阶导数类算子有 Laplacian算子和 LoG 算子,最优边缘检测算子有Canny算子。学习必备欢迎下载常用的一阶导数类算子的模板见下图。以梯度算子为例,为检测边缘点,选取适当的阈值T,对梯度图像进行二值化,则有:1grad( , )( , )0 x yTg x y其他这样形成一幅边缘二值图像g(x, y)。2 边缘检测的 M atla b函数MATLAB 图像处理工具箱提供了edge 函数利用以上算子来检测灰度图像的边缘。它支 持六种不同的边缘提取方法,即 Sobel、 Prewitt 、 Robert、 Laplacian、 过零点方法和Canny 方法。其语法格式为:BW=edge(I, method ) BW=edg e(I,method ,thresh) BW=edg e(I,method ,thresh,direction) 其中:method:sobel、prewitt 、robert、 log、zerocross、canny。thresh:设定阈值门限,缺省时自动选取阈值。direction :对于 sobel 和 prewitt方法指定方向, horiz ontal (水平方向); vertic al(垂直方向);bo th (缺省值,表示两个方向)。四、实验内容及步骤(1) 编写 Matlab 程序,调用以上六种常用的边缘检测算子,提取一幅灰度图像 (rice.tif)的边缘, 并比较不同的算子的检测效果。( 2)编写 Matlab 程序,读取图像,加高斯噪声,调用以上六种常用的边缘检测算子,提取一幅灰度图像(rice.tif)的边缘, 并比较不同的算子的检测效果。五、实验报告要求1、叙述实验过程;2、提交实验的原始图像和结果图像。六、思考题1总结实验结果,比较各种边缘检测算子的性能特点 。