基于Matlab的图像边缘检测算法的实现及应用汇总

合集下载

图像边缘检测各种算子MATLAB实现以及实际应用

图像边缘检测各种算子MATLAB实现以及实际应用

《图像处理中的数学方法》实验报告学生姓名:赵芳舟教师姓名:曾理学院:数学与统计学院专业:信息与计算科学学号:联系方式:梯度和拉普拉斯算子在图像边缘检测中的应用一、数学方法边缘检测最通用的方法是检测灰度值的不连续性,这种不连续性用一阶和二阶导数来检测。

1.(1)一阶导数:一阶导数即为梯度,对于平面上的图像来说,我们只需用到二维函数的梯度,即:,该向量的幅值:,为简化计算,省略上式平方根,得到近似值;或通过取绝对值来近似,得到:。

(2)二阶导数:二阶导数通常用拉普拉斯算子来计算,由二阶微分构成:2.边缘检测的基本思想:(1)寻找灰度的一阶导数的幅度大于某个指定阈值的位置;(2)寻找灰度的二阶导数有零交叉的位置。

3.几种方法简介(1)Sobel边缘检测器:以差分来代替一阶导数。

Sobel边缘检测器使用一个3×3邻域的行和列之间的离散差来计算梯度,其中,每行或每列的中心像素用2来加权,以提供平滑效果。

-1-21000121-101-202-101(2)Prewitt边缘检测器:使用下图所示模板来数字化地近似一阶导数。

与Sobel检测器相比,计算上简单一些,但产生的结果中噪声可能会稍微大一些。

-1-1-1000111-101-101-101(3)Roberts边缘检测器:使用下图所示模板来数字化地将一阶导数近似为相邻像素之间的差,它与前述检测器相比功能有限(非对称,且不能检测多种45°倍数的边缘)。

-10010-110(4)Laplace边缘检测器:二维函数的拉普拉斯是一个二阶的微分定义:0101-41010(八邻域)(5)LoG边缘检测器由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的是LoG算子,即Laplacian-Guass算子。

引入高斯函数来平滑噪声:该函数的Laplace算子:它把Guass平滑滤波器和Laplace锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测,所以效果比单用Laplace算子要更为平滑,效果更好。

8.matlab图像处理基础——边缘检测+形态学变换+图像增强

8.matlab图像处理基础——边缘检测+形态学变换+图像增强

8.matlab图像处理基础——边缘检测+形态学变换+图像增强1、边缘检测①处理结果 = edge(原始图像,算⼦) 算⼦: Sobel log Roberts Canny Prewitt zerocross%% 边缘检测I = imread('cameraman.tif');J1 = edge(I,'Sobel');subplot(3,3,1),imshow(I);title('原始图像');subplot(3,3,2),imshow(J1);title('Sobel检测图像');J2 = edge(I,'Roberts');subplot(3,3,3),imshow(J2);title('Roberts检测图像');J3 = edge(I,'Prewitt');subplot(3,3,4),imshow(J3);title('Prewitt检测图像');J4 = edge(I,'log');subplot(3,3,5),imshow(J4);title('log检测图像');J5 = edge(I,'Canny');subplot(3,3,6),imshow(J5);title('Canny检测图像');J6 = edge(I,'zerocross');subplot(3,3,7),imshow(J6);title('zerocross检测图像');2、形态学变换(1)图像腐蚀 se = strel('disk' ,3); resultImage=imerode(originalImage, se);%% 图像腐蚀I = imread('cameraman.tif');se = strel('disk',3);J = imerode(I,se);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);(2)膨胀 se = strel('disk' ,3); resultImage=imdilate(originalImage, se);%% 膨胀I = imread('cameraman.tif');se = strel('disk',3);J = imdilate(I,se);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);(3)开运算 先腐蚀,后膨胀。

基于Matlab的图像边缘检测算法的实现及应用汇总

基于Matlab的图像边缘检测算法的实现及应用汇总

目录摘要 (1)引言 (2)第一章绪论 (3)1.1 课程设计选题的背景及意义 (3)1.2 图像边缘检测的发展现状 (4)第二章边缘检测的基本原理 (5)2.1 基于一阶导数的边缘检测 (8)2.2 基于二阶导的边缘检测 (9)第三章边缘检测算子 (10)3.1 Canny算子 (10)3.2 Roberts梯度算子 (11)3.3 Prewitt算子 (12)3.4 Sobel算子 (13)3.5 Log算子 (14)第四章MATLAB简介 (15)4.1 基本功能 (15)4.2 应用领域 (16)第五章编程和调试 (17)5.1 edge函数 (17)5.2 边缘检测的编程实现 (17)第六章总结与体会 (20)参考文献 (21)摘要边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而又重要的内容。

该课程设计具体考察了5种经典常用的边缘检测算子,并运用Matlab进行图像处理结果比较。

梯度算子简单有效,LOG 算法和Canny 边缘检测器能产生较细的边缘。

边缘检测的目的是标识数字图像中灰度变化明显的点,而导函数正好能反映图像灰度变化的显著程度,因而许多方法利用导数来检测边缘。

在分析其算法思想和流程的基础上,利用MATLAB对这5种算法进行了仿真实验,分析了各自的性能和算法特点,比较边缘检测效果并给出了各自的适用范围。

关键词:边缘检测;图像处理;MATLAB仿真引言边缘检测在图像处理系统中占有重要的作用,其效果直接影响着后续图像处理效果的好坏。

许多数字图像处理直接或间接地依靠边缘检测算法的性能,并且在模式识别、机器人视觉、图像分割、特征提取、图像压缩等方面都把边缘检测作为最基本的工具。

但实际图像中的边缘往往是各种类型的边缘以及它们模糊化后结果的组合,并且在实际图像中存在着不同程度的噪声,各种类型的图像边缘检测算法不断涌现。

早在1965 年就有人提出边缘检测算子,边缘检测的传统方法包括Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-Hildreth 边缘检测方法以及Laplacian-Gaussian(LOG)算子方法和Canny 最优算子方法等。

Matlab在边缘检测与边界提取中的应用

Matlab在边缘检测与边界提取中的应用

Matlab在边缘检测与边界提取中的应用在计算机视觉领域中,边缘检测与边界提取是非常重要的任务。

边缘是图像中物体不同区域之间的分界线,边界提取则是通过检测图像中的边缘,从而凸显物体的轮廓。

边缘检测与边界提取在许多应用中都发挥着重要作用,如图像分割、目标识别和机器视觉等。

Matlab是一种功能强大且流行的科学计算软件,它提供了许多用于边缘检测和边界提取的工具和函数。

下面将介绍一些常用的Matlab函数和技术,它们在边缘检测与边界提取中的应用。

一、基于梯度的边缘检测梯度是表示图像中变化的指标,边缘通常是图像灰度值变化剧烈的区域。

Matlab中的Sobel、Prewitt和Roberts等函数可以方便地计算图像的梯度,从而实现边缘检测。

例如,使用Sobel算子可以对图像进行边缘检测:```I = imread('image.jpg');gray = rgb2gray(I);sobel_x = edge(gray, 'sobel', 'horizontal');sobel_y = edge(gray, 'sobel', 'vertical');imshowpair(sobel_x, sobel_y, 'montage');```上述代码首先加载并灰度化图像,然后使用Sobel算子分别计算水平和垂直方向上的梯度。

最后,使用imshowpair函数将水平和垂直边缘结果以并排的方式展示出来。

二、基于Canny算法的边缘检测Canny算法是一种广泛应用于边缘检测的算法,它通过多步骤的处理来准确地检测边缘。

在Matlab中,可以使用edge函数以及一些参数来实现Canny算法。

下面是一个使用Canny算法进行边缘检测的示例:```I = imread('image.jpg');gray = rgb2gray(I);canny = edge(gray, 'canny');imshow(canny);```上述代码中,首先加载并灰度化图像,然后使用edge函数采用Canny算法进行边缘检测。

基于matlab的图像边缘检测算法研究和仿真设计

基于matlab的图像边缘检测算法研究和仿真设计

基于matlab的图像边缘检测算法研究和仿真目录第1章绪论 11.1 序言 11.2 数字图像边缘检测算法的意义 1第2章传统边缘检测方法及理论基础 2 2.1 数字图像边缘检测的现状与发展 22.2 MATLAB和图像处理工具箱的背景知识 32.3 数字图像边缘检测关于边缘的定义 42.4 基于一阶微分的边缘检测算子 42.5 基于二阶微分的边缘检测算子 7第3章编程和调试 103.1 edge函数 103.2 边缘检测的编程实现 11第4章总结 13第5章图像边缘检测应用领域 13附录参考文献 15第1章绪论§1.1 序言理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。

图像边缘是分析理解图像的基础,它是图像中最基本的特征。

在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。

图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。

图像边缘主要划分为阶跃状和屋脊状两种类型。

阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。

传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。

由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。

近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。

Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。

其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。

另外其相对简单的算法使得整个过程可以在较短的时间实现。

实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。

数字图像处理基于MATLAB的图像边缘检测

数字图像处理基于MATLAB的图像边缘检测
在图像中跟踪边缘较高的亮度梯度比较有可能是边缘,但是没有一个确切的值来限定多大 的亮度梯度是边缘多大又不是,所以 Canny 使用了滞后阈值。
滞后阈值需要两个阈值——高阈值与低阈值。假设图像中的重要边缘都是连续的曲线, 这样就可以跟踪给定曲线中模糊的部分,并且避免将没有组成曲线的噪声像素当成边缘。所以 从一个较大的阈值开始,这将标识出比较确信的真实边缘,使用前面导出的方向信息,从这些 真正的边缘开始在图像中跟踪整个的边缘。在跟踪的时候,使用一个较小的阈值,这样就可以 跟踪曲线的模糊部分直到回到起点。
中的 candy 技术来进行边缘处理,最后将处理后的图像从 YCC 色彩模式转换回 RGB 色图。 在对图像进行边缘检测功能的实现时,需要注意到所使用的 Edge 函数只能对灰度图或二
值化图像进行处理,因此,在进行边缘检测之前,首先要对图像进行灰度处理。为了更方便的 实现灰度处理,采取了转换 RGB 色域到 YCC 色域后进行。 二、程序流程图及算法说明
《数字图像处理》课程考核报告
rk
理学院
《数字图象处理》课程考核报告
基于 MATLAB 的图像边缘检测
电子信息科学与技术 x 班 x
0
《数字图像处理》课程考核报告
rk
《数字图像处理》课程考核报告
一、程序的主要功能和原理方法 1.功能 本程序使用 Matlab 结合图像处理工具箱的相关功能实现了对彩色图像的边缘检测。 2.原理方法 程序通过将 RGB 色彩模式的图像转换为 YCC 色彩模式(色域),并使用 Edge detection
Eg.png 对比效果图:
Henan Agricultural University College of Science Ren Kai

MATLAB在图像边缘检测中的应用

MATLAB在图像边缘检测中的应用

率进行量化, 也包括方向 的确定, 大多 数使用 基于方 向导数 掩
模求 卷 积 的 方 法 。 下 面 介绍 几 种 常 用 的 边 缘 检 测 算 子:
( 1) Robert 算子。它是 2 ×2 算子, 利用局部差分算子寻找
边缘, 计算沿 45°方向的 一阶 差分。图 像的 梯度 为两 个 45°方
1 边缘检测概述
利用计算机进行图像处理有两个目的: 产生更适合人类观 察和识别的图像; 希望能由计算机自动识别和理解图像。无论
收稿日期: 2003- 07- 01; 修返日期: 2003- 08- 15
为了哪种目的, 图像处理中关键的一步就是对包含有大量各式 各样景物信息的图像进行 分解。分解 的最终 结果是 被分解 成 一些具有某种特征的最小成分, 称为图像的基元。相对于整幅 图像来说, 这种基元更容易被快速处理。
其零交叉点也可作为图像的阶跃型边缘点而其极小值点可作为图像的屋顶型边缘不同尺度滤波器输出的边缘图为单一的正确的边缘图的具体方法边缘检测的matlab实现211函数edgematlab图像处理工具包定义了edge函数用于检测灰度图像的边缘method返回与method为下列字符串之一soble缺省值用导数的sobel近似值检测边缘梯度最prewitt用导数的prewitt近似值检测边缘梯度最大点用导数的robert近似值检测边缘梯度最大点log使用高斯滤波器的拉普拉斯运算对zerocross使用指定的滤波器对滤波后寻找methodthresh中用hresh指定灵敏度阈hresh的边缘都被忽略laplacian算子极小值算法用于检测屋顶型边缘的效果不错direction对于soble对噪声敏感性较大
x2
+ y2 δ2
-
2

最新图像增强、图像滤波、边缘检测的MATLAB实现

最新图像增强、图像滤波、边缘检测的MATLAB实现

最新图像增强、图像滤波、边缘检测的MATLAB实现图像增强、图像滤波、边缘检测的M A T L A B实现图像增强、图像滤波及图像边缘检测MATLAB实现程序图像增强图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

其主要目的是使处理后的图像对某些特定的应用比原来的图像更加有效。

图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术等。

图像增强有图像对比度增强、亮度增强,轮廓增强等等。

下面利用直方图统计算法对灰度图像进行增强:程序代码:I=imread('cameraman.tif');subplot(121)imshow(I);title('原始图像');subplot(122)imhist(I,64)%绘制图像的直方图,n=64为灰度图像灰度级,若I为灰度图像,默认n=256;若I为二值图像,默认n=2。

title('图像的直方图');(请自己运行查看)n=256时:(请自己运行查看)下面利用直方图均衡化增强图像的对比度:I=imread('cameraman.tif');J=histeq(I);%将灰度图像转换成具有64(默认)个离散灰度级的灰度图像imshow(I)title('原始图像')figure,imshow(J)title('直方图均衡化后的图像')figure(1)subplot(121);imhist(I,64)title('原始图像的直方图')subplot(122);imhist(J,64)title('均衡化的直方图')(请自己运行查看)分析:从上图中可以看出,用直方图均衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。

直方图均衡化就是通过变换函数histeq将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。

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

目录摘要 (1)引言 (2)第一章绪论 (3)1.1 课程设计选题的背景及意义 (3)1.2 图像边缘检测的发展现状 (4)第二章边缘检测的基本原理 (5)2.1 基于一阶导数的边缘检测 (8)2.2 基于二阶导的边缘检测 (9)第三章边缘检测算子 (10)3.1 Canny算子 (10)3.2 Roberts梯度算子 (11)3.3 Prewitt算子 (12)3.4 Sobel算子 (13)3.5 Log算子 (14)第四章MATLAB简介 (15)4.1 基本功能 (15)4.2 应用领域 (16)第五章编程和调试 (17)5.1 edge函数 (17)5.2 边缘检测的编程实现 (17)第六章总结与体会 (20)参考文献 (21)摘要边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而又重要的内容。

该课程设计具体考察了5种经典常用的边缘检测算子,并运用Matlab进行图像处理结果比较。

梯度算子简单有效,LOG 算法和Canny 边缘检测器能产生较细的边缘。

边缘检测的目的是标识数字图像中灰度变化明显的点,而导函数正好能反映图像灰度变化的显著程度,因而许多方法利用导数来检测边缘。

在分析其算法思想和流程的基础上,利用MATLAB对这5种算法进行了仿真实验,分析了各自的性能和算法特点,比较边缘检测效果并给出了各自的适用范围。

关键词:边缘检测;图像处理;MATLAB仿真引言边缘检测在图像处理系统中占有重要的作用,其效果直接影响着后续图像处理效果的好坏。

许多数字图像处理直接或间接地依靠边缘检测算法的性能,并且在模式识别、机器人视觉、图像分割、特征提取、图像压缩等方面都把边缘检测作为最基本的工具。

但实际图像中的边缘往往是各种类型的边缘以及它们模糊化后结果的组合,并且在实际图像中存在着不同程度的噪声,各种类型的图像边缘检测算法不断涌现。

早在1965 年就有人提出边缘检测算子,边缘检测的传统方法包括Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-Hildreth 边缘检测方法以及Laplacian-Gaussian(LOG)算子方法和Canny 最优算子方法等。

本设计主要讨论其中5种边缘检测算法。

在图像处理的过程需要大量的计算工作,我们利用MATLAB各种丰富的工具箱以及其强大的计算功能可以更加方便有效的完成图像边缘的检测。

并对这些方法进行比较第一章绪论1.1 课程设计选题的背景及意义边缘是图像的最基本特征,它包含了用于识别的有用信息,为人们描述或识别目标以及解释图像提供了一个重要的特征参数。

物体的边缘是以图像局部特性的不连续性为形式出现的。

从本质上说,边缘常常意味着一个区域的终结和另一个区域的开始,它普遍存在于目标与背景、目标与目标、区域与区域、基元与基元之间,是图像分割所依赖的重要特征,也是纹理特征的重要信息源和形状特征的基础。

有了图像边缘,我们就可以确定物体的几何尺寸并进一步对其测量,确定物体在空间中的几何位置,确定物体的形状特征并对物体进行识别。

图像的边缘信息在图像分析和计算机视觉中都是十分重要的,是图像识别中提取图像特征的一个重要属性。

尽管边缘在数字图像处理中的作用非常重要,但是到目前为止还没有关于边缘的精确且被广泛承认的数学定义。

这里将边缘定义为图像局部特性的不连续性,如灰度的突变、颜色的突变、纹理结构的突变等。

对于灰度图像,边缘是指灰度的突变,是图像中灰度变化较剧烈的地方,也即我们通常所说的信号发生奇异变化的地方。

通常沿边缘走向的像素变化平缓,而垂直于边缘走向的像素变化剧烈。

图像的边缘有方向和幅度两个特性。

按照幅度的变化,边缘可粗略分为两种:一种是阶跃型边缘,它两边象素的灰度值有显著不同;另一种是屋顶状边缘,它位于灰度值从增加到减少的变化的转折点。

图1.1给出这两种边缘的示意图。

(a) 阶跃型边缘 (b) 屋顶状边缘图1.1 边缘类型边缘检测就是要检测出图像中这种灰度的不连续性,同时确定它们在图像中的精确位置,是在局部区域上针对“点”的一种运算,表现为一种典型的信号处理问题。

在图像处理、模式识别和计算机视觉中,图像的边缘检测具有极其重要的意义。

在大量的视觉模块计算中,边缘检测通常是视觉计算的第一步,高层次计算机视觉处理的成功与否极大地依赖于边缘检测算子的优越性能。

1.2 图像边缘检测的发展现状图像的边缘检测有着很长的研究历史,学术思想非常活跃,新理论、新方法不断涌现,一直是国内外图像处理领域研究的热点,目前为止己经提出了许多方法和理论。

至今提出的关于边缘检测的方法和理论尚存在不足之处,在某些具体情况下仍然无法很好的检测出目标物体的边缘,难以找到一种普遍适应性的边缘检测方法。

因此,根据具体的应用要求设计新的边缘检测方法,或对现有的方法进行改进以得到满意的边缘检测结果,这些依然是研究的主流方向。

第二章边缘检测的基本原理图像边缘是图像最基本的特征,边缘在图像分析中起着重要的作用。

所谓边缘(edge)是指图像局部特征的不连续性。

灰度或结构等信息的突变称为边缘,例如:灰度级的突变、颜色的突变、纹理结构的突变。

边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。

当人们看一个有边缘的物体时,首先感觉到的便是边缘,如图2.1所示。

(a) 理想边缘模型 (b) 斜坡边缘模型图2.1 灰度级跃变的边缘模型一条理想的边缘应该具有如图2.1(a) 所示模型的特性。

每个像素都处在灰度级跃变的一个垂直的台阶上(例如图形中所示的水平线通过图像的灰度剖面图)。

而实际上,诸如图像采集系统的性能、采样频率和获得图像的照明条件等因素的影响,得到的边缘往往是模糊的,边缘被模拟成具有“斜坡面”的剖面,如图2.1(b) 所示,在这个模型中不再有细线(宽为一个像素的线条),而是出现了边缘的点包含斜坡中任意点的情况。

由此可以看到:模糊的边缘使边缘的“宽度”较大,面清晰的边缘使边缘的宽度较小。

由于图像中物体的边缘是以图像的局部特征,像素的不连续性形成出现的,同时也是图像局部亮度变化最显著的部分,同时物体的边缘也是不同区域的分界线。

图像的边缘是具有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素点灰度变化剧烈。

而这种不连续性往往可以通过求导数方便地检测到,根据灰度变化的特点,一般常用一阶导数和二阶导数来检测边缘。

如图2.2所示,第一行是一些具有边缘的图像示例,第二行是沿图像水平方向的一个剖面,第三行和第四行分别为剖面的一阶导数据和二阶导数。

边缘剖面有3种:阶跃形、脉冲形和屋顶形。

(a) 正阶跃形 (b) 负阶跃形 (c) 脉冲形 (d) 屋顶形图2.2 图像边缘的灰度变化与导数阶跃形的边缘处于图像中两个不同灰度值的相邻区间之间,脉冲形的边缘主要对应细条状的灰度值突变区域,而屋顶状的边缘上升沿和下降沿都比较缓慢。

由于采样的缘故,数字图像的边缘总有一些模糊,所以这里垂直上下的边缘剖面都表示有一定的坡度。

在图 2.2(a) 中,对灰度剖面的一阶导数在图像由亮变暗的位置处,有一个向上的阶跃而在其它位置为零。

这表明可以用一阶导数来检测边缘的存在,幅度峰值一般对应边缘位置。

对灰度剖面的二阶导数在一阶导数的阶跃上升区有一个向上的脉冲,而在一阶导数的阶跃下降区有一个向下的脉冲。

在这两个阶跃之间有一个过零点,它的位置正对应原图像的边缘位置。

所以可以用二阶导数的过零点来检测边缘位置,而用二阶导数在过零点处的符号确定边缘像素在图像边缘的暗区或亮区。

同样分析图2.2(b) 可以得到相同的结论。

这这里是由亮变暗,所以与图2.2(a) 相比,剖面左右对换,一阶导数左右对换,二阶导数据上下对换。

图 2.2(c) 中,脉冲形的剖面边缘与图 2.2(a) 的一阶导数形状相同,所以图2.2(c) 的一阶导数形状与图2.2(a) 的二阶导数形状相同,而它的2个二阶导数过零点正好对应脉冲的上升沿和下降沿。

通过检测脉冲剖面的2个二阶导数过零点就可以确定脉冲的范围。

同理,不难得出图2.2(d) 屋顶形边缘,通过检测屋顶形边缘的剖面的一阶导数过零点就可以确定屋顶位置。

图像的边缘有方向的幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。

边缘上的这种变化可以用微分算子检测出来,通常用一阶导数或二阶导数来检测边缘,不同的是一阶导数认为最大值对应边缘位置,而二阶导数以过零点对应边缘位置。

实际上,对于图像中的任意方向上的边缘都可以进行类似的分析。

图像边缘检测中对任意点的一阶导数可以利用该点梯度的幅度来获得,二阶导数可以用拉普拉斯算子得到。

2.1 基于一阶导数的边缘检测梯度是函数变化的一种度量,是图像对应二维函数的一阶导数。

而一幅图像可以看作是图像强度连续导数的取样点数组。

梯度是一阶导数的二维等价式,可定义为向量有两个重要的性质和梯度有关,一是向量G(x,y)的方向就是函数f(x,y)增大时的最大变化率方向;二是梯度的幅值。

对于数字图像,偏导数可用差分来近似,则边缘往往在差分值最大处,最小处或过零点发生。

在计算梯度时,计算空间同一位置处(x,y)的真实偏导数是至关重要的。

而采用上面公式计算的梯度近似值并不位于同一位置。

所以常常使用2×2的一阶差分模板来计算位于内插点[x+1/2,y+1/2]的x方向和y方向偏导数,此时Gx和Gy可表示为2.2 基于二阶导的边缘检测以上介绍的计算一阶导数的方法,把一阶导数大于阈值的点作为边界点的方法,有可能会导致检测出的边缘点过多,数据存储量比较大。

一种在理论上更有效的方法是求梯度局部最大值对应的点,并认为它们是边缘点。

这种去除了一阶导数中的非局部最大值的方法,可以检测出更精确的边缘,一阶导数的局部最大值对应着二阶导数的零交叉点。

这样,通过找图像灰度的二阶导数的零交叉点就能较好地找到精确边缘点。

从图1可以看出,图像灰度二阶导数的过零点对应边缘点。

图2.3 图像的二阶导数第三章边缘检测算子数字图像中,边缘(edge)是指图像局部强度变化最显著的部分。

边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间。

边缘检测常用到的有属于简单空域微分算法的Roberts算子、Sobel算子、Prewitt算子,拉普拉斯高斯(LOG)算法以及 Canny 边缘检测器等。

边缘检测算法的基本步骤:①滤波:改善与噪声有关的边缘检测器的性能;一般滤波器降导致了边缘的损失;增强边缘和降低噪声之间需要折衷;②增强:将邻域强度值有显著变化的点突显出来,边缘增强一般是通过计算梯度幅值来完成的;③检测:最简单的边缘检测判据是梯度幅值阀值;④定位:边缘的位置和方位在子像素分辨率上估计。

3.1 Canny算子Canny边缘检测利用高斯函数的一阶微分,在噪声抑制和边缘检测之间寻求较好的平衡,其表达式近似于高斯函数的一阶导数。

相关文档
最新文档