当前位置:文档之家› 边缘检测原理(内含三种算法)

边缘检测原理(内含三种算法)

边缘检测原理(内含三种算法)
边缘检测原理(内含三种算法)

边缘检测原理的论述

摘要

数字图像处理技术是信息科学中近几十年来发展最为迅速的学科之一。图像边缘是图像最基本的一种特征,边缘在图像的分析中起着重要的作用。边缘作为图像的一种基本特征,在图像识别、图像分割、图像增强以及图像压缩等的领域中有较为广泛的应用,其目的就是精确定位边缘,同时更好地抑制噪声。目前,数字图像处理技术被广泛应用于航空航天、通信、医学及工业生产等领域中。图像边缘提取的手段多种多样,本文主要通过MATLAB语言编程分别用不同的算子例如Roberts算子、Prewitt算子、Sobel算子、Kirsch 算子、Laplacian算子、Log算子和Canny算子等来实现静态图像的边缘检测,并且和检测加入高斯噪声的图像进行对比。阐述了不同算子在进行图像边缘提取的特点,并在此基础上提出利用小波变换来实现静态图像的边缘检测。

【关键字】图像边缘数字图像边缘检测小波变换

背景

图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。从20世纪60年

代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。

计算机进行图像处理一般有两个目的:(1)产生更适合人观察和识别的图像。(2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。

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

所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。因此它是图象分割所依赖的重要的特征,也是纹理特征的重要信息源和形状特征的基础;而图象的纹理形状特征的提取又常常依赖于图象分割。图象的边缘提取也是图象匹配的基础,因为它是位置的标志,对灰度的变化不敏感,它可作为匹配的特征点。

图象的其他特征都是由边缘和区域这些基本特征推导出来

的.边缘具有方向和幅度两个特征.沿边缘走向,像素值变化比较平缓;而垂直与边缘走向,则像素值变化比较剧烈.而这种剧烈可能呈

基于小波变换的图像边缘检测算法

基于小波变换的图像边缘检测算法仿真实 现 学生姓名:XX 指导教师:xxx 专业班级:电子信息 学号:00000000000 学院:计算机与信息工程学院 二〇一五年五月二十日

摘要 数字图像边缘检测是图像分割、目标区域识别和区域形态提取等图像分析领域中十分重要的基础,是图像识别中提取图像特征一个重要方法。 目前在边缘检测领域已经提出许多算法,但是提出的相关理论和算法仍然存在很多不足之处,在某些情况下仍然无法很有效地检测出目标物的边缘。由于小波变换在时域和频域都具有很好的局部化特征,并且具有多尺度特征,因此,利用多尺度小波进行边缘检测既能得到良好的抑制噪声的能力,又能够保持边缘的完备。 本文就是利用此方法在MATLAB环境下来对数字图像进行边缘的检测。 关键词:小波变换;多尺度;边缘检测

Abstract The boundary detection of digital image is not only the important foundation in the field of image segmentation and target area identification and area shape extraction, but also an important method which extract image feature in image recognition. Right now, there are a lot of algorithms in the field of edge detection, but these algorithms also have a lot of shotucuts, sometimes, they are not very effective to check the boundary of the digital image. Wavelet transform has a good localization characteristic in the time domain and frequency domain and multi-scale features, So, the boundary detection of digital image by using multi-scale wavelet can not only get a good ability to suppress noise, but also to maintain the completeness of the edge. This article is to use this method in the environment of MATLAB to detect the boundary of the digital image. Keywords: wavelet transform; multi-scale; boundary detection.

边缘检测

CSDN亲密携手阿里云重磅推出云邮箱服务HTML5群组诚募管理员,“活跃之星”活动火热进行中Canny边缘检测算法原理及其VC实现详解(一) 2011-10-20 21:39560人阅读评论(0)收藏举报图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多中不同的边缘检测方法。根据作者的理解和实践,本文对边缘检测的原理进行了描述,在此基础上着重对Canny检测算法的实现进行详述。 本文所述内容均由编程验证而来,在实现过程中,有任何错误或者不足之处大家共同讨论(本文不讲述枯燥的理论证明和数学推导,仅仅从算法的实现以及改进上进行原理性和工程化的描述)。 1、边缘检测原理及步骤 在之前的博文中,作者从一维函数的跃变检测开始,循序渐进的对二维图像边缘检测的基本原理进行了通俗化的描述。结论是:实现图像的边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵的灰度跃变位置,然后在图像中将这些位置的点连起来

就构成了所谓的图像边缘(图像边缘在这里是一个统称,包括了二维图像上的边缘、角点、纹理等基元图)。 在实际情况中理想的灰度阶跃及其线条边缘图像是很少见到的,同时大多数的传感器件具有低频滤波特性,这样会使得阶跃边缘变为斜坡性边缘,看起来其中的强度变化不是瞬间的,而是跨越了一定的距离。这就使得在边缘检测中首先要进行的工作是滤波。 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和(具体程序实现见下文)。 2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度幅值来确定。 3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进行取舍。实际工程中,常用的方法是通过阈值化方法来检测。 2、Canny边缘检测算法原理

经典图像边缘检测

经典图像边缘检测(微分法思想)——Sobel算子 2008-05-15 15:29Sobel于1970年提出了Sobel算子,与Prewitt算子相比较,Sobel算子对检测点的上下左右进一步加权。其加权模板如下: 经典图像边缘检测(微分法思想)——Roberts交叉算子 2008-05-14 17:16 如果我们沿如下图方向角度求其交叉方向的偏导数,则得到Roberts于1963年提出的交叉算子边缘检测方法。该方法最大优点是计算量小,速度快。但该方法由于是采用偶数模板,如下图所示,所求的(x,y)点处梯度幅度值,其实是图中交叉点处的值,从而导致在图像(x,y)点所求的梯度幅度值偏移了半个像素(见下图)。

上述偶数模板使得提取的点(x,y)梯度幅度值有半个像素的错位。为了解决这个定位偏移问题,目前一般是采用奇数模板。 奇数模板: 在图像处理中,一般都是取奇数模板来求其梯度幅度值,即:以某一点(x,y)为中心,取其两边相邻点来构建导数的近似公式:

这样就保证了在图像空间点(x,y)所求的梯度幅度值定位在梯度幅度值空间对应的(x,y)点上(如下图所示)。 前面我们讲过,判断某一点的梯度幅度值是否是边缘点,需要判断它是否大于设定的阈值。所以,只要我们设定阈值时考虑到加权系数产生的影响便可解决,偏导数值的倍数不是一个问题。 经典图像边缘检测(微分法思想)——Prewitt算子 2008-05-15 11:29 Prewitt算子 在一个较大区域中,用两点的偏导数值来求梯度幅度值,受噪声干扰很大。若对两个点的各自一定领域内的灰度值求和,并根据两个灰度值和的差来计算x,y的偏导数,则会在很

几种常用边缘检测算法的比较

几种常用边缘检测算法的比较摘要:边缘是图像最基本的特征,边缘检测是图像分析与识别的重要环节。基于微分算子的边缘检测是目前较为常用的边缘检测方法。通过对Roberts,Sobel,Prewitt,Canny 和Log 及一种改进Sobel等几个微分算子的算法分析以及MATLAB 仿真实验对比,结果表明,Roberts,Sobel 和Prewitt 算子的算法简单,但检测精度不高,Canny 和Log 算子的算法复杂,但检测精度较高,基于Sobel的改进方法具有较好的可调性,可针对不同的图像得到较好的效果,但是边缘较粗糙。在应用中应根据实际情况选择不同的算子。 0 引言 边缘检测是图像分析与识别的第一步,边缘检测在计算机视觉、图像分析等应用中起着重要作用,图像的其他特征都是由边缘和区域这些基本特征推导出来的,边缘检测的效果会直接影响图像的分割和识别性能。边缘检测法的种类很多,如微分算子法、样板匹配法、小波检测法、神经网络法等等,每一类检测法又有不同的具体方法。目前,微分算子法中有Roberts,Sobel,Prewitt,Canny,Laplacian,Log 以及二阶方向导数等算子检测法,本文仅将讨论微分算子法中的几个常用算子法及一个改进Sobel算法。 1 边缘检测

在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域( 包括不同色彩) 之间。边缘表明一个特征区域的终结和另一特征区域的开始。边缘所分开区域的内部特征或属性是一致的,而不同的区域内部特征或属性是不同的。边缘检测正是利用物体和背景在某种图像特征上的差异来实现检测,这些差异包括灰度、颜色或纹理特征,边缘检测实际上就是检测图像特征发生变化的位置。边缘的类型很多,常见的有以下三种: 第一种是阶梯形边缘,其灰度从低跳跃到高; 第二种是屋顶形边缘,其灰度从低逐渐到高然后慢慢减小; 第三种是线性边缘,其灰度呈脉冲跳跃变化。如图1 所示。 (a) 阶梯形边缘(b) 屋顶形边缘 (b) 线性边缘 图像中的边缘是由许多边缘元组成,边缘元可以看作是一个短的直线段,每一个边缘元都由一个位置和一个角度确定。边缘元对应着图像上灰度曲面N 阶导数的不连续性。如果灰度曲面在一个点的N 阶导数是一个Delta 函数,那么就

canny sobel算子

基于sobel 、canny 的边缘检测实现 一.实验原理 Sobel 的原理: 索贝尔算子(Sobel operator )是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量. 该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A 代表原始图像,Gx 及Gy 分别代表经横向及纵向边缘检测的图像,其公式如下: 101202*101x G A -+?? ?=-+ ? ?-+?? 121000*121y G A +++?? ?= ? ?---?? 图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。 在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。 在边沿检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 。与 和 相比,Sobel 算子对于象素的位置的影响做了加权,因此效果更好。 Sobel 算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel 算子和普通Sobel 算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel 算子的处理方法。 由于Sobel 算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel 算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel 算子没有基于图像灰度进行处理,由于Sobel 算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。 在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。 Canny 的原理:

Sobel边缘检测算子

经典边缘检测算子比较 一 各种经典边缘检测算子原理简介 图像的边缘对人的视觉具有重要的意义,一般而言,当人们看一个有边缘的物体时,首先感觉到的便是边缘。灰度或结构等信息的突变处称为边缘。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。需要指出的是,检测出的边缘并不等同于实际目标的真实边缘。由于图像数据时二维的,而实际物体是三维的,从三维到二维的投影必然会造成信息的丢失,再加上成像过程中的光照不均和噪声等因素的影响,使得有边缘的地方不一定能被检测出来,而检测出的边缘也不一定代表实际边缘。图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘,如下图所以。不同的是一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。 (a )图像灰度变化 (b )一阶导数 (c )二阶导数 基于一阶导数的边缘检测算子包括Roberts 算子、Sobel 算子、Prewitt 算子等,在算法实现过程中,通过22?(Roberts 算子)或者33?模板作为核与图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。拉普拉斯边缘检测算子是基于二阶导数的边缘检测算子,该算子对噪声敏感。一种改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子,其代表是LOG 算子。前边介绍的边缘检测算子法是基于微分方法的,其依据是图像的边缘对应一阶导数的极大值点和二阶导数的过零点。Canny 算子是另外一类边缘检测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优化算子。 1 Roberts (罗伯特)边缘检测算子 景物的边缘总是以图像中强度的突变形式出现的,所以景物边缘包含着大量的信息。由于景物的边缘具有十分复杂的形态,因此,最常用的边缘检测方法是所谓的“梯度检测法”。 设(,)f x y 是图像灰度分布函数; (,)s x y 是图像边缘的梯度值;(,)x y ?是梯度的方向。则有 [][]{} 1 2 22 (,)(,)(,)(,)(,)s x y f x n y f x y f x y n f x y = +-++- (1) (n=1,2,...) [][]{}1 (,)tan (,)(,)/(,)(,)x y f x y n f x y f x n y f x y ?-=+-+- (2)

canny边缘检测分析毕业论文

Canny边缘检测分析毕业论文 目录 引言 (1) 第一章图像分割与边缘检测 (2) 1.1图像分割简介 (2) 1.2图像分割定义 (2) 1.3图像分割基本原理 (3) 第二章基于边界的分割——边缘检测 (6) 2.1边缘的类型 (6) 2.2边缘的类型 (6) 2.3边缘的判定 (7) 第三章常见边缘检测算法的研究与分析 (9) 3.1边缘检测过程概述 (9) 3.2典型一阶边缘检测算子 (9) 3.2.1梯度算子 (10) 3.2.2 Roberts边缘算子 (10) 3.2.3 Sobel算子 (11) 3.2.4 Prewitt算子 (13) 3.3 典型二阶边缘检测算子 (14) WORD版本.

3.3.1 Laplacian算子 (14) 3.3.2 LOG算子 (16) 3.4 各边缘检测算子的仿真结果分析 (18) 第四章 Canny边缘检测算子 (20) 4.1 Canny边缘检测基本原理: (20) 4.2 Canny边缘算子评价指标: (20) 4.2.1 Canny提出检测三准则【5】 (20) 4.2.2边缘检测滤波器对性能指标的影响【10】 (22) 4.2.3 尺度对性能指标的影响【10】 (23) 4.3 Canny边缘检测流程 (24) 4.4 Canny边缘检测仿真结果及分析 (28) 第五章 Canny算子改进 (29) 5.1对传统Canny算法局限性分析 (29) 5.2滤波改进 (30) 5.3阈值改进——自适应的阈值 (31) 5.3.1最大熵原算法过程 (31) 5.3.2最大熵算法的改进 (32) 5.4改进的Canny算法的仿真实验 (33) 第六章本实验结果及展望 (36) 6.1 本算法的实验结果 (36) WORD版本.

数字图像处理中的边缘检测技术

课程设计报告 设计题目:数字图像处理中的边缘检测技术学院: 专业: 班级:学号: 学生姓名: 电子邮件: 时间:年月 成绩: 指导教师:

数字图像处理中的边缘检测技术课程设计报告I 目录 1 前言:查阅相关文献资料,了解和掌握基本原理、方法和研究现状,以及实际应用的背景意义 (1) 1.1理论背景 (1) 1.2图像边缘检测技术研究的目的和意义 (1) 1.3国内外研究现状分析 (2) 1.4常用边缘检测方法的基本原理 (3) 2 小波变换和小波包的边缘检测、基于数学形态学的边缘检测法算法原理 (7) 2.1 小波边缘检测的原理 (7) 2.2 数学形态学的边缘检测方法的原理 (7) 3 算法实现部分:程序设计的流程图及其描述 (9) 3.1 小波变换的多尺度边缘检测程序设计算法流程图 (9) 3.2 数学形态学的边缘检测方法程序设计算法描述 (10) 4实验部分:对所给的原始图像进行对比实验,给出相应的实验数据和处理结果 (11) 5分析及结论:对实验结果进行分析比较,最后得出相应的结论 (15) 参考文献 (17) 附录:代码 (18)

1前言 查阅相关文献资料,了解和掌握基本原理、方法和研究现状,以及实际应用的背景意义 1.1 理论背景 图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。从20世纪60年代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。 图像处理在遥感技术,医学领域,安全领域,工业生产中有着广泛的应用,其中在医学应用中的超声、核磁共振和CT等技术,安全领域的模式识别技术,工业中的无损检测技术尤其引人注目。 计算机进行图像处理一般有两个目的:(1)产生更适合人观察和识别的图像。 (2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。 物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。 1.2 图像边缘检测技术研究的目的和意义 数字图像处理是伴随着计算机发展起来的一门新兴学科,随着计算机硬件、软件的高度发展,数字图像处理也在生活中的各个领域得到了广泛的应用。边缘检测技术是图像处理和计算机视觉等领域最基本的技术,如何快速、精确的提取图像边缘信息一直是国内外研究的热点,然而边缘检测也是图像处理中的一个难题。 首先要研究图像边缘检测,就要先研究图像去噪和图像锐化。前者是为了得到飞更真实的图像,排除外界的干扰,后者则是为我们的边缘检测提供图像特征更加明显的图片,即加大图像特征。两者虽然在图像处理中都有重要地位,但本次研究主要是针对图像边缘检测的研究,我们最终所要达到的目的是为了处理速

边缘检测原理(内含三种算法)

边缘检测原理的论述

摘要 数字图像处理技术是信息科学中近几十年来发展最为迅速的学科之一。图像边缘是图像最基本的一种特征,边缘在图像的分析中起着重要的作用。边缘作为图像的一种基本特征,在图像识别、图像分割、图像增强以及图像压缩等的领域中有较为广泛的应用,其目的就是精确定位边缘,同时更好地抑制噪声。目前,数字图像处理技术被广泛应用于航空航天、通信、医学及工业生产等领域中。图像边缘提取的手段多种多样,本文主要通过MATLAB语言编程分别用不同的算子例如Roberts算子、Prewitt算子、Sobel算子、Kirsch 算子、Laplacian算子、Log算子和Canny算子等来实现静态图像的边缘检测,并且和检测加入高斯噪声的图像进行对比。阐述了不同算子在进行图像边缘提取的特点,并在此基础上提出利用小波变换来实现静态图像的边缘检测。 【关键字】图像边缘数字图像边缘检测小波变换 背景 图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。从20世纪60年

代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。 计算机进行图像处理一般有两个目的:(1)产生更适合人观察和识别的图像。(2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。 边缘是图象最基本的特征.边缘检测在计算机视觉、图象分析等应用中起着重要的作用,是图象分析与识别的重要环节,这是因为子图象的边缘包含了用于识别的有用信息.所以边缘检测是图像分析和模式识别的主要特征提取手段。 所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。因此它是图象分割所依赖的重要的特征,也是纹理特征的重要信息源和形状特征的基础;而图象的纹理形状特征的提取又常常依赖于图象分割。图象的边缘提取也是图象匹配的基础,因为它是位置的标志,对灰度的变化不敏感,它可作为匹配的特征点。 图象的其他特征都是由边缘和区域这些基本特征推导出来 的.边缘具有方向和幅度两个特征.沿边缘走向,像素值变化比较平缓;而垂直与边缘走向,则像素值变化比较剧烈.而这种剧烈可能呈

Canny检测

实验二 opencv实现canny边缘检测 一、实验目的 1、了解如何在VC++6.0上安装与配置opencv 2、了解canny边缘检测的原理与opencv的实现 二、实验引言 边缘是一幅图像最重要的特征之一,图像边缘部分集中了图像的大部分信息。因此,边缘的确定对于图像场景的识别与理解非常重要;同时在图像分割中也有重要应用。可以利用边缘对图像进行区域分析。边缘在图像体现为局部区域亮度的显著变化,可见这种变化是为灰度面的阶跃。有很多种方法可以用来对图像边缘进行检测。本实验中采用Canny边缘检测。 三、实验原理 检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度值的像素点,其大部分的工作集中在寻找能够用于实际图像的梯度数字逼近。 图像梯度逼近必须满足要求: 1、逼近必须能够抑制噪声效应 2、必须尽量精确的确定边缘的位置 Canny检测的基本过程 平滑与计算 Canny边缘检测器就是高斯函数的一阶导数,是对信噪比与定位之间最优化的逼近算子。高斯平滑和梯度逼近结合的算子不是旋转对称的。高斯平滑和梯度逼近结合的算子不是旋转对称的。 在边缘方向是对称的,在垂直边缘方向是反对称的(梯度方向)。该算子在对最急剧变化方向上的边缘很敏感,沿边缘方向不敏感。 非极大值抑制

前面的计算得到梯度的幅度图像阵列为M[i,j],此值的值越大,其对应的图像梯度值也越大。但还不能精确的确定边缘。为了确定边缘,必须细化幅度值图像中的屋脊带(ridge ),即只保留幅度值局部变化最大的点。此过程称为非极大值抑制(non-maxima suppression,NMS ),其结果会产生细化的边缘。非极大值抑制通过抑制梯度线上所有的非屋脊峰值的幅度值来细化[,]M i j 中的梯度幅值屋脊。算法使用一个3×3邻域作用在幅值阵列[,]M i j 的所有点上;每一个点上,邻域的中心像素[,]M i j 与沿着梯度线的两个元素进行比较,其中梯度线是由邻域的中心点处的扇区值ζ[i,j ]给出。如果在邻域中心点处的幅值[,]M i j 不比梯度线方向上的两个相邻点幅值大,则[,]M i j 赋值为零,否则维持原值;此过程可以把M[i,j]宽屋脊带细化成只有一个像素点宽,即保留屋脊的高度值。 非极大值抑制公式为: [,]([,],[,])N i j N M S M i j i j z = [,]N i j 中的非零值对应着图像强度阶跃变化处对比度,其坐标对应着图像梯度值经过非极大值抑制后细化得到的边缘。 虽然在边缘检测前经过了图像的高斯平滑,但是经过NMS 后仍然会包含许多噪声和细纹理引起的假边缘段。所以要经过阈值化处理。 阈值化 去除假边缘的方法是对[,]N i j 使用阈值处理,将低于某一阈值的所有值赋值零,得到图像边缘阵列[,]I i j 。 单阈值τ太低造成的假阳性以及阴影会使边缘对比度减弱; 单阈值t 太高造成的假阴性会使部分轮廓丢失; 常用双阈值1t 和212t t =对非极大值抑制图像[,]N i j 处理得到两个边 缘图像1[,]T i j 和2[,]T i j 。2[,]T i j 用高阈值得到,所以含有较少的假边缘,但其中有轮廓 的间断。双阈值要在2[,]T i j 中把边缘连接成轮廓,当到达轮廓端点时,就在1[,]T i j 的8邻 点位置寻找可以连接到轮廓上的边缘。综述整个算法的主要步骤是:不断的在1[,]T i j 中收 集边缘,直到2[,]T i j 中的所有间隙连接起来位置。 从而得出Canny 算法的具体实现步骤: Step1:用高斯滤波器平滑图像,去除图像噪声。一般选择方差为1.4的高斯函数模板和图像进行卷积运算。 Step2:用一阶偏导的有限差分来计算梯度的幅值和方向。使用 的梯度算子计算x 和y 方向的偏导数 和 ,方向角 ,梯度幅值 。 Step3:对梯度幅值应用非极大值抑制。幅值M 越大,其对应的图像梯度值也越大,但这

边缘检测算子比较

边缘检测算子比较 不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像。需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界,也有可能边界的地方并无边缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外,成像过程中的光照和噪声也是不可避免的重要因素。正是因为这些原因,基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正在试图在边缘提取中加入高层的语义信息。 课题所用图像边缘与边界应该算是等同的。 在实际的图像分割中,往往只用到一阶和二阶导数,虽然,原理上,可以用更高阶的导数,但是,因为噪声的影响,在纯粹二阶的导数操作中就会出现对噪声的敏感现象,三阶以上的导数信息往往失去了应用价值。二阶导数还可以说明灰度突变的类型。在有些情况下,如灰度变化均匀的图像,只利用一阶导数可能找不到边界,此时二阶导数就能提供很有用的信息。二阶导数对噪声也比较敏感,解决的方法是先对图像进行平滑滤波,消除部分噪声,再进行边缘检测。不过,利用二阶导数信息的算法是基于过零检测的,因此得到的边缘点数比较少,有利于后继的处理和识别工作。 各种算子的存在就是对这种导数分割原理进行的实例化计算,是为了在计算过程中直接使用的一种计算单位; Roberts算子:边缘定位准,但是对噪声敏感。适用于边缘明显且噪声较少的图像分割。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。Prewitt算子:对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。 Sobel算子:Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越远,产生的影响越小。 Isotropic Sobel算子:加权平均算子,权值反比于邻点与中心点的距离,当沿不同方向检测边缘时梯度幅度一致,就是通常所说的各向同性。 在边沿检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。各向同性Sobel 算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。 由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们可以给出阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。

Canny边缘检测

Canny边缘检测 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多中不同的边缘检测方法。根据作者的理解和实践,本文对边缘检测的原理进行了描述,在此基础上着重对Canny检测算法的实现进行详述。 本文所述内容均由编程验证而来,在实现过程中,有任何错误或者不足之处大家共同讨论(本文不讲述枯燥的理论证明和数学推导,仅仅从算法的实现以及改进上进行原理性和工程化的描述)。 1、边缘检测原理及步骤 在之前的博文中,作者从一维函数的跃变检测开始,循序渐进的对二维图像边缘检测的基本原理进行了通俗化的描述。结论是:实现图像的边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵的灰度跃变位置,然后在图像中将这些位置的点连起来就构成了所谓的图像边缘(图像边缘在这里是一个统称,包括了二维图像上的边缘、角点、纹理等基元图)。 在实际情况中理想的灰度阶跃及其线条边缘图像是很少见到的,同时大多数的传感器件具有低频滤波特性,这样会使得阶跃边缘变为斜坡性边缘,看起来其中的强度变化不是瞬间的,而是跨越了一定的距离。这就使得在边缘检测中首先要进行的工作是滤波。 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和(具体程序实现见下文)。 2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度幅值来确定。

图像边缘检测算法体验步骤

图像边缘检测算法体验步骤 图像边缘检测算法体验步骤(Photoshop,Matlab)1. 确定你的电脑上已经安装了Photoshop和Matlab2. 使用手机或其他任何方式,获得一张彩色图像(任何格式),建议图像颜色丰富,分辨率比较高,具有比较明显的图像边界(卡通图像,风景图像,桌面图像)3. 将图像保存到一个能够找到的目录中,例如img文件夹(路径上没有汉字)4. 启动Photoshop,打开img文件夹中的图像5. 在工具箱中选择“矩形选择”工具,到图面上选择一个区域(如果分辨率比较高,建议不要太大,否则计算过程比较长)6. 点击下拉菜单【文件】-【新建】,新建一个与矩形选择框同样尺寸的Photoshop图像,不要求保存该图像7. 将该彩色图像转换为亮度图像,即点击下拉菜单【图像】-【模式】-【灰度】,如提示是否合并,选择“Yes”8. 将该单色的亮度图像另存为Windows的BMP文件,点击下拉菜单【文件】-【存储为】,在“存储为”窗口中,为该文件起一个名字,例如test1(保存为test1.bmp)9. 启动Matlab,将当期路径(Current Directory)定位到图像文件夹,例如这里的img文件夹10. 使用imread命令读入该图像,在命令行输入:>> f = imread(test1.bmp);11. 在Matlab中显示该图像,在命令行输入:>> figure, imshow(f)12. 然后,分别使用Matlab图像工具箱中的Edge函数,分别使用Sobel算法,高斯-拉普拉斯(Log)算法和Canny算法得到的边缘图像:在命令行输入:>> g_sobel = edge(f, sobel, 0.05); >> g_log = edge(f, log, 0.003, 2.25); >> g_canny = edge(f, canny, [0.04 0.10], 1.5);13 得到边缘图像计算结果后,显示这些边缘图像: >> figure, imshow(g_sobel) >> figure, imshow(g_log) >> figure, imshow(g_canny)14 可以用不同的图像做对比,后续课程解释算法后,可以变换不同的阈值,得到不同的边缘图像

canny边缘检测算法代码

canny算子代码 void CreatGauss(double sigma, double **pdKernel, int *pnWidowSize); void GaussianSmooth(SIZE sz, LPBYTE pGray, LPBYTE pResult, double sigma); void Grad(SIZE sz, LPBYTE pGray, int *pGradX, int *pGradY, int *pMag); void NonmaxSuppress(int *pMag, int *pGradX, int *pGradY, SIZE sz, LPBYTE pNSRst); void EstimateThreshold(int *pMag, SIZE sz, int *pThrHigh, int *pThrLow, LPBYTE pGray, double dRatHigh, double dRatLow); void Hysteresis(int *pMag, SIZE sz, double dRatLow, double dRatHigh, LPBYTE pResult); void TraceEdge(int y, int x, int nThrLow, LPBYTE pResult, int *pMag, SIZE sz); void Canny(LPBYTE pGray, SIZE sz, double sigma, double dRatLow, double dRatHigh, LPBYTE pResult); #include "afx.h" #include "math.h" #include "canny.h" // 一维高斯分布函数,用于平滑函数中生成的高斯滤波系数 void CreatGauss(double sigma, double **pdKernel, int *pnWidowSize) { LONG i; //数组中心点 int nCenter; //数组中一点到中心点距离 double dDis; //中间变量 double dValue;

图像边缘检测算子

课程设计任务书 学院信息科学与工程专业电子信息工程 学生姓名*** 班级学号09******* 课程设计题目图像边缘检测算子 课程设计目的与要求: 设计目的: 1.熟悉几种经典图像边缘检测算子的基本原理。 2.用Matlab编程实现边缘检测,比较不同边缘检测算子的实验结果。设计要求: 1.上述实验内容相应程序清单,并加上相应的注释。 2.完成目的内容相应图像,并提交原始图像。 3.用理论对实验内容进行分析。 工作计划与进度安排: 2012年 06月29 日选题目查阅资料 2012年 06月30 日编写软件源程序或建立仿真模块图 2012年 07月01 日调试程序或仿真模型 2012年 07月01 日结果分析及验收 2012年 07月02 日撰写课程设计报告、答辩 指导教师: 2012年 6月29日专业负责人: 2012年 6月29日 学院教学副院长: 2012年 6月29日

摘要 边缘检测是数字图像处理中的一项重要内容。本文对图像边缘检测的几种经典算法(Roberts算子、Sobel算子、Prewitt算子)进行了分析和比较,并用MATLAB实现这几个算法。最后通过实例图像对不同边缘检测算法的效果进行分析,比较了不同算法的特点和适用范围。 关键词:图像处理;边缘检测;Roberts算子;Sobel算子;Prewitt算子

目录 第1章相关知识.................................................................................................... IV 1.1 理论背景 (1) 1.2 数字图像边缘检测意义 (1) 第2章课程设计分析 (3) 2.1 Roberts(罗伯特)边缘检测算子 (3) 2.2 Prewitt(普瑞维特)边缘检测算子 (4) 2.3 Sobel(索贝尔)边缘检测算子 (5) 第3章仿真及结果分析 (7) 3.1 仿真 (7) 3.2 结果分析 (8) 结论 (10) 参考文献 (11)

实验三图像分割与边缘检测

数字图像处理实验报告 学生姓名王真颖 学生学号L0902150101 指导教师梁毅雄 专业班级计算机科学与技术1501 完成日期2017年11月06日

计算机科学与技术系信息科学与工程学院

目录 实验一.................................................................................................. 错误!未定义书签。 一、实验目的.................................................................................................... 错误!未定义书签。 二、实验基本原理 ........................................................................................... 错误!未定义书签。 三、实验内容与要求....................................................................................... 错误!未定义书签。 四、实验结果与分析....................................................................................... 错误!未定义书签。实验总结............................................................................................... 错误!未定义书签。参考资料.. (3) 实验一图像分割与边缘检测 一.实验目的 1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法;

图像边缘检测方法的研究与实现刘法200832800066

青岛大学 专业课程设计 院系: 自动化学院 专业: 电子信息工程 班级: 08级电子信息工程3班 学生姓名: 刘法 指导教师: 王汉萍庄晓东 日期: 2011年12月23日 题目:图像边缘检测方法的研究与实现 一、边缘检测以及相关概念 1.1边缘,边缘检测的介绍 边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edge detection). 边缘检测是指使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。 在讨论边缘算子之前,首先给出一些术语的定义: 边缘点:图像中具有坐标] i且处在强度显著变化的位置上的点. ,[j 边缘段:对应于边缘点坐标] i及其方位 ,边缘的方位可能是梯度角. ,[j 边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法. 轮廓:边缘列表,或是一条表示边缘列表的拟合曲线. 边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序. 边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程. 边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘.

边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘. 1.2 边缘检测算子 边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始. 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构. 因此,边缘检测可以看做是处理许多复杂问题的关键. 边缘检测的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。经典的边缘检测方法是对原始图像中的像素的某个邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点做出比较和评价。 边缘检测的原理是:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值教高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。 Roberts,Sobel,Prewwit是基于一阶导数的边缘检测算子,图像的边缘检测是通过2*2或者3*3模板作为核与该图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。 Laplace边缘检测算子是基于二阶导数的边缘检测算子,该算子对噪声敏感。Laplace算子的改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子,其代表是拉普拉斯高斯(LOG)算子。前边介绍的边缘检测算法是基于微分方法的,其依据是图像的边缘对应一阶导数的极大值点和二阶导数过零点。Canny算子是另外一类边缘检测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优化算子。 1.3 边缘检测算法 对于边缘的检测常常借助于空域微分算子进行,通过将其模板与图像卷积完成。两个具有不同灰度值的相邻区域之间总存在灰度边缘。灰度边缘是灰度值不连续(或突变) 的结果,这种不连续常可利用求一阶和二阶导数方便地检测到。已有的局部技术边缘检测方法,主要有一次微分(Sobel 算子、Robert s 算子等) 、二次微分(拉普拉斯算子等)。这些边缘检测器对边缘灰度值过渡比较尖锐且噪声较小等不太复杂的图像,大多数提取算法均可以取得较好的效果。但对于边缘复杂、采光不均匀的图像来说,则效果不太理想。主要表现为边缘模糊、边缘非单像素宽、弱边缘丢失和整体边缘的不连续等方面。 用算子检测图像边缘的方法是用小区域模板对图像进行处理,即采用卷积核作为掩模模板在图像中依次移动,完成图像中每个像素点同模板的卷积运算,最终输出的边缘幅度结果可以检测出图像的边缘。卷积运算是一种邻域运算。图像处理认为:某一点像素的结果不但和本像素灰度有关,而且和其邻域点值有关。运用模板在图像上依此对每一个像素进行卷积, 即模板上每一个点的值与其在图像上当前位置对应的像素点值相乘后再相加,得出的值就是该点处理后的新值。 边缘检测算法有如下四个步骤:

相关主题
文本预览
相关文档 最新文档