改进的自适应阈值Canny边缘检测_雒涛

改进的自适应阈值Canny边缘检测_雒涛
改进的自适应阈值Canny边缘检测_雒涛

第36卷第11期 光电工程V ol.36, No.11 2009年11月Opto-Electronic Engineering Nov, 2009 文章编号:1003-501X(2009)11-0106-06

改进的自适应阈值Canny边缘检测

雒 涛1, 2,郑喜凤1,丁铁夫1

( 1. 中国科学院长春光学精密机械与物理研究所,长春130033;

2. 中国科学院研究生部,北京100039 )

摘要:针对传统Canny边缘检测算法的阈值需要人为设定的缺陷,本文提出了一种新的自适应改进方法。该方法根据梯度直方图信息,提出梯度差分直方图的概念,同时,对图像进行自适应分类处理,使得算法不仅不需要人工设定阈值参数,而且还能有效地避免Canny算法在边缘寻找中的断边和虚假边缘现象。对边缘信息丰富程度不同的灰度图和彩色图像运用该方法寻找边缘的实验结果表明,对于在目标与背景交界处的多数像素梯度幅值较大的图片,该算法具有边缘检测能力强、自适应能力强的优点。

关键词:Canny算法;自适应;边缘检测;图像处理

中图分类号:TN247;TP391 文献标志码:A doi:10.3969/j.issn.1003-501X.2009.11.022 Improved Self-adaptive Threshold Canny Edge Detection

LUO Tao1, 2,ZHENG Xi-feng1,DING Tie-fu1

( 1. Changchun Institute of Optics, Fine Mechanics and Physics,

Chinese Academy of Sciences, Changchun 130033, China;

2. Graduate School of Chinese Academy of Sciences, Beijing 100039, China )

Abstract: The two thresholds of classical Canny operator need to be set manually, which limits the application of this algorithm. Therefore, many researches about how to choose threshold adaptively are done to solve this problem. Based on the gradient histogram, a method of threshold-adaptable edge detection is proposed. This method is on the basis of gradient histogram difference diagram with adaptive image classification techniques. It not only automatically sets the two thresholds, but also avoids disconnected or false edges in detection. Experiments prove that the method is threshold-adaptive and advantageous for edge detection in color image whose pixels of larger gradient amplitude are mainly located in the edge between the target and background.

Key words: Canny operator; threshold-adaptive; edge detection; image process

0 引 言

边缘是重要的图像特征。因此,边缘检测是图像处理与分析的基础性课题,受到人们广泛而深入的研究。传统边缘的检测算子,如Robert、Prewitt、Kirsch、Sobel、LoG、Canny等,本身存在种种不足,在许多情况下无法达到很好的检测效果。近年来,在传统方法的基础上,相继发展出了一批新的边缘检测方法,如曲面拟合法、基于自适应平滑滤波法、小波变换法等。尽管如此,Canny算子由于具有较好的信噪比和检测精度,仍然在图象处理领域得到广泛应用。

利用Canny算子进行边缘检测时,需要人为确定高、低阈值的参数,而且不同的阈值对边缘检测的结果影响很大。但是,在实际情况中,不同图像取得最佳边缘检测效果的阈值各不相同。如果简单地使用传

收稿日期:2009-05-12;收到修改稿日期:2009-07-14

基金项目:中国科学院东北振兴科技行动计划重点项目(DBZX-2-017);吉林省信息产业发展专项资金项目

作者简介:雒涛(1982-),男(汉族),山东济南人。博士研究生,主要研究图像处理与视频压缩。E-mail: luotaomao@https://www.360docs.net/doc/09529005.html,。

第36卷第11期 雒 涛 等:改进的自适应阈值Canny 边缘检测 107统Canny 算子,一方面很难每次检测前都人为地设定阈值参数,另一方面若对每幅图像采用相同阈值,则会检测出虚假边缘或丢失局部边缘[1]。因此,有必要对传统canny 算法进行改进,使其可以自适应的设定高、低阈值,从而可以对各种图像获得较好的边缘检测效果。

本文根据边缘信息的复杂程度,将图像分为三类。结合图像梯度直方差分图,自适应地获取高、低阈值。对多幅灰度图、RGB24位彩色图进行边缘检测实验的结果表明,本方法可以取得很好的边缘检测效果。 1 Canny 算法简介

Canny 认为一个优良的边缘检测算子应具有以下3个特性:

1) 好的检测性能。不会漏检真实边缘,也不把非边缘点作为边缘点检出,使输出的信噪比最大;

2) 好的定位性。检测到的边缘点与实际边缘点位置最近;

3) 唯一性。对于单个边缘点仅有一个响应。

根据以上3个准则,Canny 推导出最优边缘检测算子的一个近似实现[2],即边界点位于图像被高斯函数平滑后的梯度幅度极大值点上。实现过程如下:

用二维高斯滤波),(y x G 平滑图像,减少噪声影响。它可以等效为用水平方向)(x G 和竖直方向)(y G 的两个一维高斯滤波器,分别进行滤波处理。平滑后的图像为

)),()(()(),(),(),(y x I x G y G y x I y x G y x H ??=?= (1)

式中:),(y x I 代表原图像,),(y x H 代表滤波后的图像。

用一阶偏导的有限差分计算并保存水平方向的方向导数)(x G 和竖直方向的方向导数)(y G ,可以采用Sobel 或Prewitt 算子。然后,利用方向导数计算梯度幅值f ?。

22y x G G f +=? (2)

为了精确地确定边缘点位置,对各像素点的梯度值进行非极大值抑制(NMS)。即在当前像素点的3×3邻域内,如果当前点的梯度幅值大于沿梯度方向上相邻两个像素点的梯度幅值,则认为该点是可能的边缘点,将其对应的标志位置1。否则,则认为该点为非边缘点,将其对应的标志位清0。

对经过非极大值抑制处理后的图像进行双阈值化处理,消除虚假边缘并连接断续边缘。即通过给定的高阈值系数和图像的直方图,计算高阈值,然后,通过给定的低阈值系数,计算低阈值。再用高阈值与经过非极大值抑制后的图像进行比较,记录边缘点。对所有的边缘点,在8邻域内迭代寻找大于低阈值的点,并标记为边缘点。

通过上面的过程,可以得到单边缘宽度的边缘图像。可以看出,传统的Canny 算法在实际应用中存在如下问题:

传统Canny 算法的噪声平滑能力与边缘定位能力相矛盾。当高斯空间δ取值较小时,边缘定位精度高,但图像平滑作用较弱,抑制噪声能力差,因而在有噪声的情况下不稳定;要获得好的噪声抑制效果,必须增大δ的取值,但又导致模板增大,使边缘位置偏移严重,且运算量增加[3]。

传统Canny 算子在阈值化处理时的阈值需要预先设定。设定的方法是先确定高阈值系数,该系数定义为梯度幅值小于阈值的像素点所占像素总数的比例,通过高阈值系数可求出高阈值,并且认为低阈值为高阈值的一半。而实际的图像因受光照、场景等变化因素的影响,高、低阈值系数不可能是一个确定不变的值,所以传统的方法不具有自适应能力,在许多情况下也难以得到好的检测结果[4]。

2 改进的自适应阈值的Canny 算法

针对传统Canny 算法的不足,人们提出了各自的解决方法。

D.J.Park 等人在Canny 算子的基础上,提出了多分辨率边缘检测的办法,同时提取同一图像上的缓变边缘和精细边缘[5-6]。

还有人用固定小δ (δ =1)的滤波器,通过Wiener 滤波及选择合适的高、低门限来提高信噪比[7]。

光电工程 2009年11月

108也有人将小波分析[8]、模糊增强[3]、梯度直方图[4]等概念引入Canny 算法,也达到了一定的效果。 受梯度直方图方法的启发,本文采用梯度直方图差分表的方法,确定高、低阈值。并根据边缘复杂度,对图像进行自适应的分类处理,取得了较好的效果。

2.1 梯度直方差分析方法

图像),(y x I 经过非极大值抑制后,对所有边缘标志不为0的像素可以用梯度直方图的形式进行描述。图1为256×256分辨率8位灰度的Lenna 图片的梯度直方图。其中横坐标为梯度值,纵坐标为各梯度值对应的像素点的个数。

分析梯度直方图,可以得出以下规律:

1) 梯度不为0的像素,大多集中在梯度值较小的区域内。这对应于原图像中所占比例较大的背景区域,以及具有平缓变化的区域。

2) 曲线总体呈迅速下降趋势,直至在某一梯度值之后,对应的像素点个数全部为0。这说明,图像中灰度剧烈变化的像素数量是减少的。可以根据这个特性,按照直方图中的比例关系,找到高阈值,从而确定基本的边缘像素。

3) 曲线局部具有上下震荡的特性。每个极大值代表一类边缘强度像素点的集合。选取适当的峰值处作为高阈值,可以有效的区分背景和边缘信息。

为了便于寻找直方图中的局部极大值、极小值点,根据下面的公式计算差分。

)1()()(??=i dif i dif i diff (3)

式中:)(i diff 为梯度差分直方图中,梯度值为i 处的像素个数差分值,表示直方图中i 比1?i 梯度幅值处多出的像素数量;)(i dif 、)1(?i dif 分别为梯度幅值为i 和1?i 处的像素数量。计算结果绘于图2。

分析梯度差分直方图,可以得出以下规律:

1) 差分像素个数为正负震荡,且振幅迅速降低。

2) 过零点为直方图的局部极值点。过零点为由正到负过渡,对应直方图中的局部极大值点;过零点为由负到正过渡,则对应直方图中的局部极小值点。

阈值的选择问题,实际上就是在梯度差分直方图中找出合适的过零点位置。通过多次实验,当图像边缘信息较少时,选取高阈值与低阈值的公式为式(4)、(5)、(6)效果最理想。

)0)]1()([||0)]()1(([>++>+?=i diff i diff i diff i diff formula (4)

})&&),2(:min({max formula TH i i TH l ∈= (5)

2l h TH TH = (6)

式中:TH h 、TH l 为要确定的高阈值与低阈值;TH max 为梯度差分直方图中,差分数量不为0的最大梯度值;diff (i )为i 梯度值处的差分像素个数。

这种方法在边缘信息较少的图像中,效果较好。在边缘信息丰富的图像中,会获取过多的边缘细节。因此,可以采用图像分类处理方法,与它配合使用,达到比较理想的适应性。

2.2 图像分类处理方法

在计算梯度直方图时,得到的梯度不为0的所有像素的总和,本文统称为边缘信息。边缘信息包含缓变区域以及突变区域。当边缘信息很多时,如果仍然采用上文提到的方法进行边缘检测,则很有可能会造N u m b e r 100 Gradient amplitude 200 300400-500 0 500 1 000 1 500 2 000

图1 Lenna 灰度图的梯度直分图

Fig.1 Gradient histogram of gray image 100Gradient amplitude

N u m b e r d i f f e r e n c e 200 300 400-2 000-1 00001 0002 000图2 Lenna 灰度图的梯度差分直分图 Fig.2 Gradient difference histogram of gray image

第36卷第11期 雒 涛 等:改进的自适应阈值Canny 边缘检测 109成边缘的误检测。这是由于算法将背景中的渐变区域,误判为图像边缘。如图3所示。背景中的缓变区域被误认为是图像边缘,从而干扰了对目标的边缘提取和识别,因此并不是理想的检测结果。

为了克服这种不足,采用图像分类处理方

法。本文所提出的边缘自适应检测算法,是基

于目标的视频非线性缩放课题的预处理部分。

根据课题要求,当图像边缘信息不多时,期望

检出所有边缘;当边缘信息过于丰富时,期望

限制检测到的边缘总数,方便后面的目标识别

处理。因此,本文通过边缘信息的数量,将图

像分为边缘信息较少、边缘信息丰富以及边缘

信息过多三种情况,分别采用不同的自适应算

法,以达到比较理想的边缘检测效果。 当边缘点数量与图像边缘比例小于0.23时,图像边缘信息较少。可以直接采用式(4)、(5)、(6)计算。 当边缘点数量与图像边缘比例大于0.23且小于0.32时,图像边缘信息丰富。可以用式(4)、(7)、(8)计算阈值。

})&&&&),3(:max({4C th max h dif dif formula TH i i TH >∈= (7)

})&&&&),3(:max({16C th max l dif dif formula TH i i TH >∈= (8)

式中:dif th 为梯度幅值大于TH h 或TH l 的像素数量;dif 4C ,dif 16C 分别是4倍和16倍图像周长的像素数量。

当边缘点数量与图像边缘比例大于0.32时,图像边缘信息过多。可以用式(4)、(9)、(10)计算阈值。

})&&&&),3(:max({2C th max h dif dif formula TH i i TH >∈= (9)

})&&&&),3(:max({20C th max l dif dif formula TH i i TH >∈= (10)

这里需要说明的是,在式(7)~(10)中,用于划分图像类型以及与dif th 进行比较的数值,都是通过对美国德州大学奥斯丁分校图库中的百余幅图像[10]的多次实验得到。在进一步的研究中,可以采用更加合理的方法对其进行优化。

3 实验结果与结论

对边缘信息丰富程度不同的灰度图像和彩色图像,分别用传统的Canny 算法和改进的自适应阈值Canny 算法进行边缘检测。

3.1 灰度图边缘检测效果

Lenna 灰度图像具有丰富的边缘信息,对它进行边缘检测的结果如图4所示。图4(a)是原始灰度图,分辨率为256×256;图4(b)和图4(c)是采用经典Canny 算法的边缘检测结果,对应的高阈值系数分别为0.8和0.7;图4(d)是采用本文自适应Canny 算法的边缘检测结果。

可以看出,图4(b)中,在Lenna 的帽檐处出现明显的断边。图4(c)在镜子上方处有断边,而且在帽子图3 边缘信息丰富的灰度图与边缘检测结果图

Fig.3

Gray image and its edge detection result

(a) 边缘信息丰富的灰度图 (a) Gray image with rich edge information (b) 边缘检测结果图 (b) Edge detection result of (a)图4 Lenna 灰度图像的边缘检测效果图

Fig.4 Lenna image and its edge detection result

(a) 原图

(a) Original Lenn image (b) 经典Canny ,TH

h

= 0.8

(b) Classical Canny, TH h = 0.8(c) 经典Canny ,TH h = 0.7 (c) Classical Canny, TH h = 0.7(d) 本文自适应Canny 算法 (d) Threshold-adaptive Canny

光电工程 2009年11月 110 内部检测出一些多余的边缘。相比之下,图4(d)的边缘完整,与经典算法相比,可以检出更少的虚假边缘。

2009年上海车展灰度图像具有极为丰富的边缘信息,对它进行边缘检测的结果如图5所示。图5(a)是原始灰度图,分辨率为800×600;图5(b)和图5(c)是采用经典Canny 算法的边缘检测结果,对应的高阈值系数分别为0.75和0.8;图5(d)是采用本文自适应Canny 算法的边缘检测结果。

可以看出,图5(b)~图5(d)并没有明显的差别。本文的自适应Canny 算法与选择合适高低阈值的经典Canny 算法检测效果相似。

3.2 彩色图边缘检测效果

研究表明在彩色图像中有10%的边缘在灰度图像中检测不到[9]。因此,对于彩色边缘,有三种方法进行检测:

1) 在彩色空间上建立一种可度量的距离,利用这个距离的不连续性来检测彩色边缘;

2) 在彩色图像的三个分量上独立地计算边缘,然后,将结果用某种方法组合;

3) 允许在各分量上计算边缘时有较大的独立性,但对各分量加上一致性限制条件,以便同时利用三个分量上的边缘信息。

本节采用的是第二种方法。在原始彩色图像的R 、G 、B 三分量上独立检测边缘。然后,将三个检测结果叠加,得到的二值化图像就是彩色边缘图。

C. Ronaldo 彩色图像虽然背景复杂,但目标具有较少的边缘信息,对它进行边缘检测的结果如图6所示。图6(a)是原始彩色图,分辨率为799×617;图6(b)和图6(c)是采用经典Canny 算法的边缘检测结果,对应的高阈值系数分别为0.9和0.95;图6(d)是采用本文自适应Canny 算法的边缘检测结果。

可以看出,图6(b)中,目标人物轮廓清晰,但背景的轮廓(颈后、手指附近)对边缘检测结果仍有一定影响,存在虚假边缘问题。图6(c)在目标人物的面部、下巴、手指等多处出现明显的断边现象。图6(d)虽然目标人物的颈后仍然存在虚假边缘,但C.Ronaldo 的轮廓清晰,没有断边现象。是给出的三个边缘图像中效果最好的。

摄影师彩色图像具有丰富的边缘信息,对它进行边缘检测的结果如图7所示。图7(a)是原始彩色图像,分辨率为510×512;图7(b)和图7(c)是采用经典Canny 算法的边缘检测结果,对应的高阈值系数分别为0.9图5 2009年上海车展灰度图像的边缘检测效果图

Fig.5

2009’ Shanghai auto expo image and its edge detection result

(a) 原图

(a) Original car image (b) 经典Canny ,TH h = 0.75

(b) Classical Canny, TH h = 0.75(c) 经典Canny ,TH h = 0.8 (c) Classical Canny, TH h = 0.8(d) 本文自适应Canny 算法 (d) Threshold-adaptive Canny

图6 C.Ronaldo 彩色图像的边缘检测效果图

Fig.6

Color image of C.Ronaldo and its edge detection result (a)

原图

(a) Original Ronaldo image (b) 经典Canny ,TH h = 0.9

(b) Classical Canny, TH h = 0.9(c) 经典Canny ,TH h = 0.95(c) Classical Canny, TH h = 0.95(d) 本文自适应Canny 算法 (d) Threshold-adaptive Canny

第36卷第11期 雒 涛 等:改进的自适应阈值Canny 边缘检测 111和0.95;图7(d)是采用本文自适应Canny 算法的边缘检测结果。

可以看出,图7(b)中,原图的背景光晕严重影响了边缘检测结果,出现了大量的虚假边缘。图7(c)边缘检测结果最优,完全消除了背景的影响,仅仅在摄影师的双脚脚底出现明显的断边现象。图7(d)基本没有受到背景的干扰,在摄影师后脚脚底仍然存在断边现象,总体效果介于前两者之间。

滑雪竞赛彩色图像具有极为丰富的边缘信息,对它进行边缘检测的结果如图8所示。图8(a)是原始彩色图像,分辨率为1 280×720;图8(b)和图8(c)是采用经典Canny 算法的边缘检测结果,对应的高阈值系数分别为0.75和0.85;图8(d)是采用本文自适应Canny 算法的边缘检测结果。

可以看出,图8(b)中,原图的背景(如雪地、树林等)并未完全消除,严重制约了边缘检测质量。图8(c)基本消除了背景的影响,观众轮廓比较清晰。图8(d)几乎没有受到背景的干扰,但下方观众的头像出现明显的断边,总体效果介于前两者之间。

本算法对那些梯度幅值较大的像素点主要分布在目标与背景的边界处的图片,具有良好的边缘检测能力。不仅可以排除缓慢变化的背景的影响,还能自适应地设置低阈值,连接断续边缘,将目标完整地包含在闭环区域内。

参考文献:

[1] 韦海萍,赵保军,唐林波,等. Canny 算法的改进及其硬件的实现 [J]. 光学技术,2006,32(2):62-65.

WEI Hai-ping ,ZHAO Bao-jun ,TANG Lin-bo ,et al . Improvement of Canny algorithm and implementation in hardware [J].

Optal Technique ,2006,32(2):62-65.

[2] John Canny. A Computational Approach to Edge Detection [J]. IEEE Trans. on PAML (S0162-8828),1988,l8(6):679-698.

[3] 王文娟,韩峰,崔桐. 一种基于模糊增强的Canny 边缘检测方法 [J]. 内蒙古工业大学学报,2008,27(1):65-69.

WANG Wen-juan ,HAN Feng ,CUI Tong. A New Canny edge detection method devised on the basis of fuzzy enhancement [J].

Journal of inner Mongolia university of technology ,2008,27(1):65-69.

[4] 何文浩,原魁,邹伟. 自适应阈值的边缘检测算法及其硬件实现 [J]. 系统工程与电子技术,2009,31(1):233-237. HE Wen-hao ,YUAN Kui ,ZOU Wei. Self-adaptive threshold detection and its implementation in hardware [J]. Systems

Engineering and Electronics ,2009,31(1):233-237. (下转第117页) 图7 摄影师彩色图像的边缘检测效果图

Fig.7 Color image of camerist and its edge detection result

(a) 原图 (a) Original camerist image (b) 经典Canny ,TH h

= 0.9

(b) Classical Canny, TH h = 0.9(c) 经典Canny

,TH

h = 0.95

(c) Classical Canny, TH h = 0.95(d) 本文自适应Canny 算法 (d) Threshold-adaptive Canny

图8 滑雪竞赛彩色图像的边缘检测效果图Fig.8 Color image of sliders and its edge detection result

(a) 原图

(a) Original sliders image (b) 经典Canny ,TH h = 0.75

(b) Classical Canny, TH h = 0.75(c) 经典Canny ,TH h = 0.85(c) Classical Canny, TH h = 0.85(d) 本文自适应Canny 算法 (d) Threshold-adaptive Canny

第36卷第11期宫霄霖等:基于边缘检测的邻域加窗图像去噪算法117 (S0001-0782),1984,27(8):807-818.

[2] Hwan G H,Haddad R A. Adaptive median filters:new algorithms and results [J]. IEEE Trans. on Image Processing(S

1057-7149),1995,4(4):499-502.

[3] Saramaki T. A class of window functions with nearly minimum sidelobe energy for designing FIR filters[C]//IEEE

International Symposium on Circuits and Systems, Portland,OR,USA,May 8-11,1989,1:359-362.

[4] 苏飞,王兆华. DCT域全相位FIR滤波器设计和实现 [J]. 天津大学学报,2004,37(12):1110-1114.

SU Fei,WANG Zhao-hua. Implementation and Design of All Phase FIR Filter in DCT Domain [J]. Journal of Tianjin University,2004,37(12):1110-1114.

[5] 苏飞,王兆华. 基于带双窗N-1/N重叠频域FIR的自适应除噪 [J]. 电子测量和仪器学报,2005,19(1):7-13.

SU Fei,WANG Zhao-hua. ANC Based on N-1/N Overlapping FIR Filter with Dual Windows in Frequency Domain [J].

Journal of Electronic Measurement and Instrument,2005,19(1):7-13.

[6] 苏飞,王兆华. 一种新的带窗重叠自适应滤波器 [J]. 电子与信息学报,2005,27(1):27-30.

SU Fei,WANG Zhao-hua. A Novel Overlapping Adaptive Filter with Window[J]. Journal of Electronics & Information Technology,2005,27(1):27-30.

[7] 王红梅,李言俊,张科. 基于平稳小波变换的图像去嗓方法 [J]. 红外技术,2006,28(7):404-407.

WANG Hong-mei,LI Yan-jun,ZHANG Ke. An Image Denoising Method Based on Stationary Wavelet [J]. Infrared Technology,2006,28(7):404-407.

[8] 李士心,刘鲁源,杨晔,等. 基于平稳小波变换的陀螺仪信号去噪方法 [J]. 天津大学学报,2003,36(2):165-168.

LI Shi-xin,LIU Lu-yuan,YANG Ye,et al. Gyro Signal Denoising Using Stationary Wavelet Transform [J]. Journal of Tianjin University,2003,36(2):165-168.

[9] 管聪慧,赵志刚,何琦. 基于邻域相关性的小波图像自适应软阈值降噪 [J]. 青岛大学学报:自然科学版,2006,19(2):

58-65.

GUAN Cong-hui,ZHAO Zhi-gang,HE Qi. Wavelet Image Adaptive Soft-thresholding De-noising Based on Neighbor Dependency [J]. Journal of Qingdao University: Natural Science Edition,2006,19(2):58-65.

[10] 林晓梅,李琳娜,牛刚,等. 基于小波边缘检测的图像去噪方法 [J]. 光学精密工程,2004,12(1):88-93.

LIN Xiao-mei,LI Lin-na,NIU Gang,et al. Image de-noising based on wavelet edge detection [J]. Optics and Precision Engineering,2004,12(1):88-93.

JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ (上接第111页)

[5] Park D J,Park R H. Hierarehical edge detection using the bidirectional information in edge pyramids [J]. Pattern Recognition

Letters(S0167-8655),1994,15:65-75.

[6] Park D J,Nam K M,Park R H. Multiresolution edge detection techniques [J]. Pattern Recognition(S0031-3203),1995,28(2):

211-219.

[7] 林玉池,崔彦平,黄银国. 复杂背景下边缘提取与目标识别方法研究 [J]. 光学精密工程,2006,14(3):509-514.

Yu-chi,CUI Yan-ping,HUANG Yin-guo. Study on edge detection and target recognition in complex background [J]. LIN

Optics and Precision Engineering,2006,14(3):509-514.

[8] 唐正军,刘代志. 改进多尺度Canny算子在SAR图像边缘提取中的应用 [J]. 上海航天,2000,17(2):7-10.

Zheng-jun,LIU Dai-zhi. SAR image edge detection [J]. Aerospace Shanghai,2000,17(2):7-10.

TANG

[9] KOSCHAN A. A Comparative Study on Color Edge Detection[C]// Proceedings 2nd Asian Conference on Computer Vision

ACCV’95,Singapore,Dec 5-8,1995,III:574-578.

[10] Sheikh H R,Wang Z,Cormack L,et al. LIVE Image Quality Assessment Database Release 2[EB/OL]. http://

https://www.360docs.net/doc/09529005.html,/ research/quality,2006.

边缘检测

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

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

小波分析在信号去噪中的应用(最新整理)

小波分析在信号去噪中的应用 摘要:利用小波方法去噪,是小波分析应用于实际的重要方面。小波去噪的关键是如何选择阈值和如何利用阈值来处理小波系数,通过对几种去噪方法不同阀值的选取比对分析和基于MATLAB 信号去噪的仿真试验,比较各种阀值选取队去噪效果的影响。 关键词:小波去噪;阀值;MATLAB 工具 1、 小波去噪模型的建立 如果一个信号被噪声污染后为,那么基本的噪声模型就可以表示为()f n ()s n ()()() s n f n e n σ=+式中:为噪声;为噪声强度。最简单的情况下为高斯白噪声,且=1。()e n σ()e n σ小波变换就是要抑制以恢复,从而达到去除噪声的目的。从统计学的()e n ()f n 观点看,这个模型是一个随时间推移的回归模型,也可以看作是在正交基上对函数无参估计。小波去噪通常通过以下3个步骤予以实现: ()f n a)小波分解; b)设定各层细节的阈值,对得到的小波系数进行阈值处理; c)小波逆变换重构信号。 小波去噪的结果取决于以下2点: a)去噪后的信号应该和原信号有同等的光滑性; b)信号经处理后与原信号的均方根误差越小,信噪比越大,效果越好。 如何选择阈值和如何利用阈值来量化小波系数,将直接影响到小波去噪结果。 2、小波系数的阈值处理 2.1由原始信号确定阈值 小波变换中,对各层系数降噪所需的阈值一般是根据原信号的信噪比来决定的。在模型里用这个量来表示,可以使用MATLAB 中的wnoisest 函数计算得到σσ值,得到信号的噪声强度后,根据下式来确定各层的阈值。 thr =式中n 为信号的长度。 2.2基于样本估计的阈值选取 1)无偏似然估计(rigrsure):是一种基于Stein 无偏似然估计原理的自适应阈值选择。对于给定的阈值T ,得到它的似然估计,再将似然T 最小化,就得到了所选的阈值,这是一种软件阈值估计。 2)阈值原则(sqtwlolg):固定阈值T 的计算公式为。 3)启发式阈值原则(heursure):是无偏似然估计和固定阈值估计原则的折

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 的原理:

matlab canny算子边缘检测函数代码

分享到: 2012-04-24 20:42网友采纳 clc clear all close all I = imread('cameraman.tif'); % 读入图像 imshow(I);title('原图') BW1 = edge(I,'canny'); % 调用canny函数 figure,imshow(BW1); % 显示分割后的图像,即梯度图像 title('Canny') 用Lena标准检测图像,图像与代码下面注明了是哪张图像。 一、没有噪声时的检测结果 1 原始图像 2 Sobel算子边缘检测 3 Prewitt算子边缘检测 4 Roberts算子边缘检测 5 Laplace算子边缘检测 6 Canny算子边缘检测 二、加入高斯噪声(μ=0,σ^2=0.01)检测结果 1 原始图像 2 Sobel算子边缘检测 3 Prewitt算子边缘检测 4 Roberts算子边缘检测 5 Laplace算子边缘检测 6 Canny算子边缘检测 三、加入高斯噪声(μ=0,σ^2=0.02)检测结果 1 原始图像 2 Sobel算子边缘检测 3 Prewitt算子边缘检测 4 Roberts算子边缘检测 5 Laplace算子边缘检测 6 Canny算子边缘检测 clear all; close all; warning off all; I = imread('lena.bmp'); %%如果是其他类型图像,请先转换为灰度图 %%没有噪声时的检测结果 BW_sobel = edge(I,'sobel'); BW_prewitt = edge(I,'prewitt'); BW_roberts = edge(I,'roberts'); BW_laplace = edge(I,'log'); BW_canny = edge(I,'canny'); figure(1); subplot(2,3,1),imshow(I),xlabel('原始图像'); subplot(2,3,2),imshow(BW_sobel),xlabel('sobel检测');

小波阈值去噪及MATLAB仿真

哈尔滨工业大学华德应用技术学院毕业设计(论文) 摘要 小波分析理论是一种新兴的信号处理理论,它在时间上和频率上都有很好的局部性,这使得小波分析非常适合于时—频分析,借助时—频局部分析特性,小波分析理论已经成为信号去噪中的一种重要的工具。利用小波方法去噪,是小波分析应用于实际的重要方面。小波去噪的关键是如何选择阈值和如何利用阈值来处理小波系数,通过对小波阈值化去噪的原理介绍,运用MATLAB 中的小波工具箱,对一个含噪信号进行阈值去噪,实例验证理论的实际效果,证实了理论的可靠性。本文设计了几种小波去噪方法,其中的阈值去噪的方法是一种实现简单、效果较好的小波去噪方法。 关键词:小波变换;去噪;阈值 -I-

哈尔滨工业大学华德应用技术学院毕业设计(论文) Abstract Wavelet analysis theory is a new theory of signal process and it has good localization in both frequency and time do-mains.It makes the wavelet analysis suitable for time-frequency analysis.Wavelet analysis has played a particularly impor-tant role in denoising,due to the fact that it has the property of time- frequency analysis. Using wavelet methods in de-noising, is an important aspect in the application of wavelet analysis. The key of wavelet de-noising is how to choose a threshold and how to use thresholds to deal with wavelet coefficients. It confirms the reliability of the theory through the wavelet threshold de-noising principle, the use of the wavelet toolbox in MATLAB, carrying on threshold de-noising for a signal with noise and actual results of the example confirmation theory.In this paper,the method of Wavelet Analysis is analyzed.and the method of threshold denoising is a good method of easy realization and effective to reduce the noise. Keywords:Wavelet analysis;denoising;threshold -II-

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;

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版本.

信号阈值去噪实例

信号阈值去噪实例 例1:信号阈值去噪一 程序daimaru代码如下: load leleccum; indx=1:1024; x=leleccum(indx); %产生噪声信号 init=2055615866; randn('seed',init); nx=x+18*randn(size(x)); %获取消噪的阈值 [thr,sorh,keepapp]=ddencmp('den','wv',nx); %对信号进行消噪 xd=wdencmp('gbl',nx,'db4',2,thr,sorh,keepapp); subplot(221); plot(x); title('原始信号'); subplot(222); plot(nx); title('含噪信号'); subplot(223); plot(xd); title('消噪后的信号'); 例2:信号阈值去噪二 在本例中,首先使用函数wnoiset获取噪声方差,然后使用函数wbmpen获取小波去噪阈值,最后使用函数wdencmp实现信号消噪。

程序代码如下: load leleccum; indx=1:1024; x=leleccum(indx); %产生含噪信号 init=2055615866; randn('seed',init); nx=x+18*randn(size(x)); %使用小波函数'db6'对信号进行3层分解 [c,l]=wavedec(nx,3,'db6'); %估计尺度1的噪声标准差 sigma=wnoiset(c,l,1); alpha=2; %获取消噪过程中的阈值 thr=wbmpen(c,l,sigma,alpha); keepapp=1; %对信号进行消噪 xd=wdencmp('gbl',c,l,'db6',3,thr,'s',keepapp); subplot(221); plot(x); title('原始信号'); subplot(222); plot(nx); title('含噪信号'); subplot(223); plot(xd); title('消噪后的信号'); 例3:信号阈值去噪三 在本例中,对小波分解系数使用函数wthcoef进行阈值处理,然后利用阈值处理后的小波系数进行重构达到去噪目的。

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 越大,其对应的图像梯度值也越大,但这

Canny边缘检测

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

一维信号小波阈值去噪

一维信号小波阈值去噪 1、小波阈值处理基本理论所谓阈值去噪简而言之就是对信号进行分解,然后对分解后的系数进行阈值处理,最后重构得到去噪信号。该算法其主要理论依据是:小波变换具有很强的去数据相关性,它能够使信号的能量在小波域集中在一些大的小波系数中;而噪声的能量却分布于整个小波域内。因此,经小波分解后,信号的小波系数幅值要大于噪声的系数幅值。可以认为,幅值比较大的小波系数一般以信号为主,而幅值比较小的系数在很大程度上是噪声。于是,采用阈值的办法可以把信号系数保留,而使大部分噪声系数减小至零。小波阈值收缩法去噪的具体处理过程为:将含噪信号在各尺度上进行小波分解,设定一个阈值,幅值低于该阈值的小波系数置为0,高于该阈值的小波系数或者完全保留,或者做相应的收缩(shrinkage)处理。最后将处理后获得的小波系数用逆小波变换进行重构,得到去噪后的信号。 2、阈值函数的选取小波分解阈值去噪中,阈值函数体现了对超过和低于阈值的小波系数不同处理策略,是阈值去噪中关键的一步。设w表示小波系数,T为给定阈值,sign(*)为符号函数,常见的阈值函数有: 硬阈值函数:(小波系数的绝对值低于阈值的置零,高于的保留不变) 软阈值函数:(小波系数的绝对值低于阈值的置零,高于的系数shrinkage处理) 式(3-8)和式(3-9)用图像表示即为: 值得注意的是: 1)硬阈值函数在阈值点是不连续的,在下图中已经用黑线标出。不连续会带来振铃,伪吉布斯效应等。 2)软阈值函数,原系数和分解得到的小波系数总存在着恒定的偏差,这将影响重构的精度 同时这两种函数不能表达出分解后系数的能量分布,半阈值函数是一种简单而经典的改进方案。见下图: 选取的阈值最好刚好大于噪声的最大水平,可以证明的是噪声的最大限度以非常高的概率

自相关与互相关函数

相关函数 1.自相关函数 自相关函数是信号在时域中特性的平均度量,它用来描述信号在一个时刻的取值与 另一时刻取值的依赖关系,其定义式为 (2.4.6) 对于周期信号,积分平均时间T为信号周期。对于有限时间的信号,例如单个脉 冲,当T趋于无穷大时,该平均值将趋于零,这时自相关函数可用下式计算 (2.4.7) 自相关函数就是信号x(t)和它的时移信号x(t+τ)乘积的平均值,它是时移变量τ的函数。 例如信号的自相关函数为 若信号是由两个频率与初相角不同的频率分量组成,即 ,则

对于正弦信号,由于,其自相关函数仍为 由此可见,正弦(余弦)信号的自相关函数同样是一个余弦函数。它保留了原信号的频率成分,其频率不变,幅值等于原幅值平方的一半,即等于该频率分量的平均功率 ,但丢失了相角的信息。 自相关函数具有如下主要性质: (1)自相关函数为偶函数,,其图形对称于纵轴。因此,不论时移方向是导前还是滞后(τ为正或负),函数值不变。 (2)当τ=0时,自相关函数具有最大值,且等于信号的均方值,即 (2.4.8)(3)周期信号的自相关函数仍为同频率的周期信号。 (4)若随机信号不含周期成分,当τ趋于无穷大时,趋于信号平均值的平方,即 (2.4.9)实际工程应用中,常采用自相关系数来度量其不同时刻信号值之间的相关程度,定义式为 (2.4.10)

当τ=0时,=1,说明相关程度最大;当τ=∞时,,说明信号x(t)与x(t+τ)之间彼此无关。由于,所以。值的大小表示信号相关性的强弱。 自相关函数的性质可用图2.4.3表示。 图2.4.3 自相关函数的性质 常见四种典型信号的自相关函数如图2.4.4所示,自相关函数的典型应用包括: (1)检测信号回声(反射)。若在宽带信号中存在着带时间延迟的回声,那么该 信号的自相关函数将在处也达到峰值(另一峰值在处),这样可根据确定 反射体的位置,同时自相关系数在处的值将给出反射信号相对强度的度量。 时间历程自相关函数图形 正 弦 波

哈夫变换和Canny边缘检测算法及其实现代码

哈夫变换和Canny边缘检测算法 摘要在图象边缘检测中往往要求所检测到的边缘具有封闭特性,本文详细地分析了目前常用的两种算法:哈夫变换和Canny边缘检测算法,最后,探讨边缘算子应满足的准则。关键词边缘检测;闭合性;哈夫变换;Canny算子 1引言 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位,自从1959提出边缘检测以来,经过五十多年的发展,已有许多中不同的边缘检测方法。在我们常用的几种用于边缘检测的算子中Laplace算子常常会产生双边界;而其他一些算子如Sobel算子又往往会形成不闭合区域。本文主要讨论了在边缘检测中,获取封闭边界区域的算法。 2 图象边缘检测的基本步骤 (1)滤波。边缘检测主要基于导数计算,但受噪声影响。但滤波器在降低噪声的同时也导致边缘强度的损失。 (2)增强。增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。 (3)检测。但在有些图象中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。 (4)定位。精确确定边缘的位置。 图1 边缘检测酸法的基本步骤 3 边界闭合的算法 3.1 哈夫变换[3] 由于噪声的存在,用各种算子得到的边缘象素不连续,但是由于边缘象素之间有一定的连续性,我们就可以根据边缘象素在梯度幅度或梯度方向上的连续性把他们连接起来。具体说来,如果象素(s,t)在象素(x,y)的领域且它们的梯度幅度与梯度方向在给定的阈值下满足: T是幅度阈值;A是角度阈值; 那么,如对所有的边缘象素都进行上述的判断和连接就可以得到一个闭合的边界。哈夫变换方法是利用图像得全局特性而对目标轮廓进行直接检测的方法,在已知区域形状的条

自相关 基音检测

专业班级 08级信息工程组别 成员 1、引言 人在发浊音时,气流通过声门使声带产生张弛振荡式振动,产生一股准周期脉冲气流,这一气流激励声道就产生浊音,又称有声语音,它携带着语音中的大部分能量。这种声带振动的频率称为基频,相应的周期就称为基音周期( Pitch) ,它由声带逐渐开启到面积最大(约占基音周期的50% ) 、逐渐关闭到完全闭合(约占基音周期的35% ) 、完全闭合(约占基音周期的15% )三部分组成。 当今主流的基音周期检测技术主要有时域的自相关法、频域的倒谱法、时频结合的小波变换分析方法以及在其基础上的衍生算法。本文所采用的方法是自相关法 2.设计思路 (1)自相关函数 对于离散的语音信号x(n),它的自相关函数定义为: R(k)=Σx(n)x(n-k), 如果信号x(n))具有周期性,那么它的自相关函数也具有周期性,而且周期与信号x(n)的周期性相同。自相关函数提供了一种获取周期信号周期的方法。在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。 (2)短时自相关函数 语音信号是非平稳的信号,所以对信号的处理都使用短时自相关函数。短时自相关函数是在信号的第N个样本点附近用短时窗截取一段信号,做自相关计算所得的结果 Rm(k)=Σx(n)x(n-k) 式中,n表示窗函数是从第n点开始加入。 3、程序代码 function pitch x=wavread('E:\luyin\wkxp.wav');%读取声音文件 figure(1); stem(x,'.'); %显示声音信号的波形 n=160; %取20ms的声音片段,即160个样点 for m=1:length(x)/n; %对每一帧求短时自相关函数 for k=1:n; Rm(k)=0; for i=(k+1):n; Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n); end end p=Rm(10:n); %防止误判,去掉前边10个数值较大的点 [Rmax,N(m)]=max(p); %读取第一个自相关函数的最大点end %补回前边去掉的10个点 N=N+10;

Canny边缘检测算法总结

一.Canny边缘检测算法原理 JohnCanny于1986年提出Canny算子,属于是先平滑后求导数的方法。其处理过程大体上分为下面四部分。 1. 对原始图像进行灰度化 Canny算法通常处理的图像为灰度图,因此如果获取的是彩色图像,那首先就得进行灰度化。对一幅彩色图进行灰度化,就是根据图像各个通道的采样值进行加权平均。以RGB格式的彩图为例,通常灰度化采用的方法主要有: 方法1:Gray=(R+G+B)/3; 方法2:Gray=0.299R+0.587G+0.114B;(这种参数考虑到了人眼的生理特点) 至于其他格式的彩色图像,可以根据相应的转换关系转为RGB然后再进行灰度化;在编程时要注意图像格式中RGB的顺序通常为BGR。 2. 对图像进行高斯滤波 图像高斯滤波的实现可以用两个一维高斯核分别两次加权实现,也可以通过一个二维高斯核一次卷积实现。 1)高斯核实现 上式为离散化的一维高斯函数,确定参数就可以得到一维核向量。 上式为离散化的二维高斯函数,确定参数就可以得到二维核向量。 在求得高斯核后,要对整个核进行归一化处理。 2)图像高斯滤波 对图像进行高斯滤波,其实就是根据待滤波的像素点及其邻域点的灰度值按照一定的参数规则进行加权平均。这样可以有效滤去理想图像中叠加的高频噪声。 通常滤波和边缘检测是矛盾的概念,抑制了噪声会使得图像边缘模糊,这会增加边缘定位的不确定性;而如果要提高边缘检测的灵敏度,同时对噪声也提高了灵敏度。实际工程经验表明,高斯函数确定的核可以在抗噪声干扰和边缘检测精确定位之间提供较好的折衷方案。 3. 用一阶偏导的有限差分来计算梯度的幅值和方向

小波变换图像去噪MATLAB实现

基于小波图像去噪的MATLAB 实现 一、 论文背景 数字图像处理(Digital Image Processing ,DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP 技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP 应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。 然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一张图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。 二、 课题原理 1.小波基本原理 在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。一组小波基函数,()}{,x b a ψ,可以通过缩放和平移基本小波 来生成: ())(1 ,a b x a x b a -ψ=ψ (1) 其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。当a=2j 和b=ia 的情况下,一维小波基函数序列定义为: ()() 1222,-ψ=ψ--x x j j j i (2) 其中,i 为平移参数,j 为缩放因子,函数f (x )以小波()x ψ为基的连续小波变换定义为函数f (x )和()x b a ,ψ的内积:

canny边缘检测及matlab实现

北京工业大学 研究生课程考试答题纸 课程类别:学位课选修课 研究生学号: 研究生姓名: 学生类别:博士硕士 工程硕士进修生 考试时间:年月日

一、实验目的: 熟悉边缘检测原理,并运用matlab软件实现图像的canny边缘检测,体会canny 边缘检测的优缺点。 二、实验内容: 编写matlab程序,实现对lena图像的边缘检测,输出程序运行结果。 三、实验原理或步骤: 首先回顾一下边缘检测的一般步骤: 边缘检测算法一般包含如下四个步骤: 1.滤波(去噪)。 2.增强(一般是通过计算梯度幅值)。 3.检测(在图像中有许多点的梯度幅值会比较大,而这些点并不都是边缘,所以应该用某种方法来确定边缘点,比如最简单的边缘检测判据:梯度幅值阈值)。 4.定位(有的应用场合要求确定边缘位置,可以在子像素水平上来估计,指出边缘的位置和方向) Canny边缘检测的算法步骤: 1.用高斯滤波器平滑图像(不同尺度的Canny检测子由高斯的不同标准差来表示)用一阶偏导的有限差分来计算梯度的幅值和方向。 2.对高斯平滑后的图像进行sobel边缘检测。这里需要求横的竖的还有联合的,所以一共三个需要sobel边缘检测图像。 3.对联合的sobel检测图像进行非极大值抑制(Non-Maxima Suppression, NMS) 4.用双阈值算法检测和连接边缘,并进行滞后阈值处理。 其中非极大值抑制细化了幅值图像中的屋脊带,只保留幅值局部变化最大的点。 双阈值算法:用两个阈值得到两个阈值图像,然后把高阈值的图像中的边缘连接成轮廓,连接时到达轮廓的端点时,在低阈值图像上找可以连接的边缘。不断收集,直到所有的间隙连接起来为止。 四、运行结果和分析 每步运行效果:

信号阈值去噪实例

信号阈值去噪实例 小波、小波包、MATLAB 2009-08-05 09:52:58 阅读76 评论0 字号:大中小 一般来说,信号去噪的基本步骤主要包括如下三步: (1)信号的小波分解; (2)小波分解高频系数的阈值量化; (3)信号的小波重构。使用分解的低频系数以及阈值量化后的高 频系数进行小波重构。 例1:信号阈值去噪一 程序daimaru代码如下: load leleccum; indx=1:1024; x=leleccum(indx); %产生噪声信号 init=2055615866; randn('seed',init); nx=x+18*randn(size(x)); %获取消噪的阈值 [thr,sorh,keepapp]=ddencmp('den','wv',nx);

%对信号进行消噪 xd=wdencmp('gbl',nx,'db4',2,thr,sorh,keepapp); subplot(221); plot(x); title('原始信号'); subplot(222); plot(nx); title('含噪信号'); subplot(223); plot(xd); title('消噪后的信号'); 例2:信号阈值去噪二 在本例中,首先使用函数wnoiset获取噪声方差,然后使用函数wbmpen获取小波去噪阈值,最后使用函数wdencmp实现信号消噪。 程序代码如下: load leleccum; indx=1:1024; x=leleccum(indx); %产生含噪信号

init=2055615866; randn('seed',init); nx=x+18*randn(size(x)); %使用小波函数'db6'对信号进行3层分解 [c,l]=wavedec(nx,3,'db6'); %估计尺度1的噪声标准差 sigma=wnoiset(c,l,1); alpha=2; %获取消噪过程中的阈值 thr=wbmpen(c,l,sigma,alpha); keepapp=1; %对信号进行消噪 xd=wdencmp('gbl',c,l,'db6',3,thr,'s',keepapp); subplot(221); plot(x); title('原始信号'); subplot(222); plot(nx); title('含噪信号'); subplot(223); plot(xd); title('消噪后的信号');

最新Canny边缘检测与轮廓提取汇总

C a n n y边缘检测与轮 廓提取

摘要................................................................................................................................................... Abstract.......................................................................................................................................... I 1 绪论 0 2 设计内容与OpenCV简介 (1) 2.1 设计任务内容 (1) 2.2 OpenCV简介 (1) 3 理论分析 (2) 3.1 边缘检测 (2) 3.1.1 图像的边缘 (2) 3.1.2 边缘检测的基本步骤 (2) 3.2 轮廓提取 (3) 4 边缘检测的算法比较 (4) 4.1 Reborts算子 (4) 4.2 Sobel算子 (5) 4.3 Prewitt 算子 (5) 4.4 Kirsch 算子 (7) 4.5 LOG算子 (7) 4.6 Canny算子 (8) 5 实验仿真 (10) 5.1算法设计 (10) 5.2 实验结果 (11) 6 分析与总结 (12) 参考文献 (13) 附录 (14)

边缘检测是图像处理和计算机视觉中的基本问题,它的目的是标识出数字图像中亮度变化明显的点。图像经过边沿检测处理之后,不仅大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。 事实上,边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置。这些轮廓常常是我们在图像边缘检测时,所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。 可用于图像边缘检测和轮廓提取的方法有很多,其中包括有常见的Robert边缘算子、Prewitt 边缘算子、Sobel边缘算子等等。本文首先将会从数字图像处理的角度,对几种边缘检测算法进行详细的分析,然后会并选择其中一种边缘检测算法进行实验。考虑到以后进一步的学习,本文将会使用openCV对算法进行实现。最后,本文将会把实验获得的实际效果,与理论分析的结果进行比对,并以此对本次实验进行总结。 关键字:边缘检测轮廓提取图像处理openCV

相关文档
最新文档