当前位置:首页 > 手写体数字识别的软件设计(毕业设计论文)
中北大学2009届毕业设计说明书
a) 原始图像
b) 采用一维直方图自动阀值分割效果 c) 采用基于OTSU的二维最大类间方差阈值分割的改进算法分割效果
图2.4 基于灰度分布的二值化 的界限,而基于梯度信息的二值化算法能很好的对光照不均的数字图像进行二值化,因此本文采用的是基于梯度信息(边缘)的二值化算法,对图像进行二值化处理。
在讲解本文采用的二值化算法前,需要介绍一下图像梯度(即边缘)的计算方法。边缘是指与周围图像灰度有阶跃变化的像素的集合,边缘是灰度值不连续的结果,边缘的检测可以借助空间域微分算子通过卷积运算来完成,常用的梯度算子有基于一阶导数的边缘检测算子和基于二阶导数的边缘检测算子。常见的一阶边缘检测算子有Sobel算子、Prewitt算子、Robert算子和Kirsh算子,二阶边缘检测算子一般采用拉普拉斯算子或者高斯拉普拉斯算子。对于基于一阶导数的算子可以检测图像中的一个点是否是边缘点(也就是判断一个点是否在斜坡上)。基于二阶导数的算子可以用来检测一个边缘像素是在边缘的亮的一边还是暗的一边。除此之外,围绕一条边缘,二阶导数具有两条附加性质[17]:
1) 对图像中的每条边缘二阶导数生成两个值(一个不希望得到的特点)。 2) 一条连接二阶导数正极值和负极值的虚构直线将在边缘中点附近穿过零 点。
后面我们可以看到本文采用的基于梯度阈值分割的算法就是基于上述两条二阶导数性质实现的。
第 12 页 共 54 页
中北大学2009届毕业设计说明书
本文采用的二值化算法将使用Sobel算子和高斯拉普拉斯算子,因此下面简单介绍下Sobel算子和高斯拉普拉斯算子。图2.5所示的是Sobel算子常用的模板。
1 0 -1 2 0 -2 1 0 -1 -1 -2 -1 0 0 0 1 2 1
图2.5 Sobel算子常用模板
Sobel算子是采用的是交叉差分计算,以来求得每个像素的梯度幅值。各像素的关系下图2.6所示。
f(i-1,j-1) f(i-1,j) f(i-1,j+1) f(i,j-1) f(i,j) f(i,j+1) f(i+1,j-1) f(i+1,j) f(i+1,j+1) 图2.6 像素(i,j)领域像素关系
那么根据Sobel算子(i,j)处的梯度是:
式2.3) |?f(i,j)|?[Gi*Gi?Gj*Gj] (
12其中,
然而式2.3在实际应用中不采用,因为计算平方和、平方根需要大量的计算。因此经常使用一种方法是用绝对值对梯度进行近似:
|?f(i,j)|?|Gi|?|Gj| (式2.4)
这个公式在计算方面更有吸引力,而且它仍保持着同灰度级的相对变化。
第 13 页 共 54 页
中北大学2009届毕业设计说明书
拉普拉斯算子常用的模板有两种,如下图2.7所示。
图2.7 常用的两种拉普拉斯模板
0 -1 0 -1 4 -1 0 -1 0 -1 -1 -1 -1 8 -1 -1 -1 -1 拉普拉斯算子一般不以原始形式用于边缘检测是由于存在下列原因:首先作为一个二阶导数,拉普拉斯算子对噪声具有无法接受的敏感性;其次拉普拉斯算子的幅值会产生双边缘,这是复杂的分割不希望有的结果;最后拉普拉斯算子不能检测边缘的方向。由于以上原因,拉普拉斯算子在分割中所起的作用包括:
1) 利用它的零交叉的性质进行边缘定位。
2) 确定一个像素是在一条边缘暗的一边还是亮的一边。
对第1类作用,拉普拉斯算子与平滑过程一起利用零交叉作为找到边缘的前 兆。考虑函数:
h(r)??e?r22?2 (式2.5)
这里r2 = x2 + y2,σ是标准差。用一副图像与该函数卷积模糊该图像,图像 模糊的程度是σ值决定的。H的拉普拉斯算子(h关于r的二阶导数)是:
?2h(r)??[r??22?4]e?r22?2 (式2.6)
这个公式一般叫做高斯型的拉普拉斯算子。高斯型拉普拉斯算子常用的近似模板如图2.8所示。
图2.8 高斯型拉普拉斯算子5×5模板
0 0 -1 0 0 0 -1 -2 -1 0 -1 -2 16 -2 -1 0 -1 -2 -1 0 0 0 -1 0 0 2因为二阶导数是线性运算,所以用▽h卷积一幅图像与首先使用上节介绍的高
第 14 页 共 54 页
中北大学2009届毕业设计说明书
斯型平滑函数卷积图像,然后计算所得结果的拉普拉斯是一样的。因此,我们可以看到在式2.6中使用的高斯型函数的目的就是对图像进行平滑处理,使用拉普拉斯算子的目的是提供一幅用零交叉确定边缘位置的图像。图像的平滑处理减少了噪声的影响并且它的主要作用还是抵消由拉普拉斯算子的二阶导数引起的逐渐增加的噪声影响。
在基于以上知识,接下来详细介绍本文采用文献[17]的阈值分割算法,其详细步骤如下:
输入: 经过高斯平滑滤波器滤波后的数字图像作为阈值分割的输入数字图像
处理。
输出: 阈值分割后的二值数字图像。 详细步骤:
Step1:采用Sobel算子(即式2.4)对输入数字图像进行梯度计算,获取各个
像素的一阶梯度信息▽f。
Step2:采用基于直方图自动阈值分割算法对产生的一阶梯度信息图像进行阈 值分割,得出门限T。
Step3:采用高斯型拉普拉斯算子对输入数字图像进行计算,获取各个像素的
2二阶梯度信息▽f。
Step4:然后按式2.7生成一个三级(0,1,2)图像。
?0 ?f?T? s(x,y)??1 ?f?T, ?2f?0 (式2.7)
?2?2 ?f?T, ?f?0Step5:经过上4步处理产生的三级图像是有意义的对象,其中?0?对应的是背景。从亮背景到暗对象的过渡(沿着水平或垂直扫描线)必须以 s(x,y)中的一个?2?号后跟一个?1?号的形式特点。对象内部的像素不是标记为?0?就是标记为?1?。最后,从对象反向向背景的过渡用一个?1?号后跟一个?2?号的形式表示。因此,包含对象部分的一条水平或垂直扫描线具有如下结构:
(…)(2,1)(0或1)(1,2)(…)
其中(…)表示1,2和0的任意组合。最内层的括号包含着对象点,标记为1(目标)。沿着相同的扫描线除了那些被(2,1)和(1,2)包围着的(0或1)的序列外,所有其它
第 15 页 共 54 页
共分享92篇相关文档