值?
④ 计算两类的概率P1和P2
P1??pi,P2?1?P1
i?0Th⑤ 计算类间方差?b和类内方差?in
22?b2?P1?(?1??)?P2?(?2??)
22
22?in2?P1??1?P2??2
⑥ 选择最佳的阈值Thnew,使得图像按照该阈值分为C1和C2两类后,满足
?b2max{2}
?in2.5局部阈值法
前面给出的阈值算法,对于较为简单的图像(即目标与背景比较容易区分),上面的方法简单有效。但是对于较为复杂的图像,则往往会产生一些问题。图2.4给出了国际标准测试图像(图2.1)的局部阈值分割结果。
阈值分割最简单的方法就是人工选择法。基于灰度阈值的分割方法,其关键是如何合理的选择阈值。人工选择方法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选择出合理的阈值。也可以在人工选择出阈值后,根据分割的效果,不断地进行交互操作,从而选择出最佳的阈值。例如,分析图2.1,做出其灰度直方图(见图2.2),这里选择0.3为阈值,则可得到较为理想的分割结果(见图2.3)。
图2.1 国际标准测试图片 图2.3 阈值分割后的图片
5
图2.2 图2.1的灰度直方图 图2.3 局部阈值分割后的图片
显然,灰度直方图的峰谷阈值方法是一种有效且非常简单的阈值方法,但是该方法有一个局限性,就是要求图像的灰度直方图必须具有双峰型。
2.6均匀性度量法
均匀性度量法的设计思想是,假设当图像被分为目标物和背景两个类别时,属于同一类别内的像素值分布应该具有均匀性。在这里采用方差来度量像素间的均匀性。设原图像为f(x,y),结果图像为g(x,y)。通过图像分割将原图像分为C1和C2(即背景与目标)两类,则算法步骤如下:
① 给定一个初始阈值Th
② 分别计算两类中的方差?1和?2
?i?2(x,y)?Ci22?(f(x,y)??)i2 (i?1,2)
?i?1NCi(x,y)?Ci?f(x,y) (i?1,2)
其中,NCi为第i类中的像素个数
③ 分别计算两类在图像中的分布概率p1和p2
选择最佳的阈值Thnew,使得图像按照该阈值分为C1和C2两类后,满足
3、简单算法及其实现 3.1 最优阈值算法
3.1.1最优阈值算法原理
若图像中目标和背景具有不同的灰度集合:目标灰度集合和背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方
6
法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割法。在物体与背景有较强的对比度的图像中此方法应用特别有效。阈值的计算方法如下:
利用图像的先验知识,即图像中对象和背景的灰度分布规律,在误差率最小的原则下计算合理阈值。 设图像由两类对象?1、 ?2组成,它们的条件概率分别为:P(x/ ?1)、P(x/ ?2 ),其中x是灰度级,T是阈值
二值化判断: ?x>T,x ??2; ?x 最优条件 ?2误为?1的误差概率: ?1误为?2的误差概率: 先验概率P(?2 ), P(?1 ), P(?2 )+ P(?1 )=1 总误判概率: ?(T)= P(?1 )?1(T)+ P(?2 ) ?2(T) let ? ?(T)/ ?T=0, then ? ?1(T)/ ?T= P(x/ ?2 ), ? ?2(T)/ ?T= -P(x/ ?1 ), ?总误差最小时有 P(?2 ) P(x/ ?2 )x=T=P(?1 ) P(x/ ?1 ) x=T 3.1.2 最优阈值算法的实现 代码: 7 运行结果: 3.2 Canny算法 3.2.1 Canny算法原理 Canny 边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。更为重要的是 Canny 创立了边缘检测计算理论(Computational theory of edge detection)解释这项技术如何工作。 Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: 好的检测 - 算法能够尽可能多地标识出图像中的实际边缘。 好的定位 - 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。 最小响应 - 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。 为了满足这些要求 Canny 使用了变分法,这是一种寻找满足特定功能的函数的方法。最优检测使用四个指数函数项的和表示,但是它非常近似于高斯函数的一阶导数。 Canny 算法的步骤: 1. 去噪声 2. 寻找图像中的亮度梯度 3. 在图像中跟踪边缘 一个获得亚像素精度边缘的改进实现是在梯度方向检测二阶方向导数的过零点 8 它在梯度方向的三阶方向导数满足符号条件 边缘算子必须满足三个准则 1)低错误率 边缘算子应该只对边缘响应,并能找到所有的边,而对于非边缘应能舍弃。 2)定位精度 被边缘算子找到的边缘象素与真正的边缘象素间的距离应尽可能的小。 3)单边响应 在单边存在的地方,检测结果不应出现多边。 在Canny的假设下,对于带有Gaussian白噪声的阶跃边缘,边缘检测算子是一个与图像函数g(x,y) 进行卷积的滤波器f,这个卷积滤波器应该平滑掉白噪声并找到边缘位置。 3.2.2 Canny算法的实现 代码: 运行结果: 9