一种基于像素标识的笔画细化新方法

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

# # #
# # #
# # #
图#
) 1 ) 模板
图!
累加模板
对二值图像中每一个像素点都进行上述运算
收稿日期:!""#$#"$#" %
作者简介:刘宏申 (#&’!$) , 男, 副教授; 马鞍山, 安徽工业大学计算机科学系(!()""!) %
万方数据
第$期
刘宏申等:一种基于像素标识的笔画细化新方法
到本像素点方向矢量来确定, 即与该方向矢量最 相近的那个像素点就为下一个骨架上的像素点 / !/! 细化算法 为了实现上述细化原理, 设置如下的数据和 函数: 数组 345 [] 存放着被标定的字符点阵中各
.8







Fra Baidu bibliotek
报 (自然科学版)
第 V% 卷
像素点标识信息, 数组 !" [ ]记录产生的细化点, 若 ( !, 为骨架点, 则 !" [ !, 否则, [ !, # $; !" ") "] "] [*] 存放具有成为下一骨架点的最 # % # 数组 &’() 大概率的像素点的编号, 其中 &’() [ %] 中存放的 是具有最大概率的元素个数 + ,-’ 为把本骨架点看 作为上一个骨架点的 . 个相邻像素点之一时在其 中的编号, /01 为与本骨架点的相邻的下一个骨 架点的编号 + 函数 23 ( $) 返回点 $ 的标识信息中 分量是 * 的个数; 函数 4),2 依据表 $ 产生 ’() [.] 数组; 函数 &56 从 ’() [ .] 中筛选出三个最大的概 率放入数组 &’() 中, 这三个点是最有可能成为下 一骨架点的候选点; 函数 /05)07! 从 &’() 中选出 与 ,-’ 最接近的点的编号, 该点就是下一个细化 点 + 函数 /05)07! 采用直线为优的原则, 即下一个 细化点和当前考察点、 上一骨架点这三点应尽量 在一直线上, 亦就是说 /01 应尽量接近 ,-’ + 细化 算法如下: 若 23 ( $) 则点 $ 是细化点, ! # 对点 $ , ! 8, [ $] 转 "# !" # $, 直 " # 重复调用下面过程确定下一个细化点, 到遇到下一个点 % 且 !" [ %] # $ 止# ( [ $] ) ; $ + ’() # 4), 2 9:; " 调用函数 4),2 产生 点 $ 的数组 ’() [] + ( ’()) ; % + &’() # &56 " 从 ’() 中找出具有最 大几率的像素点 + ( &’(), ; & + /01 # /05)07! ,-’) " 从 &’() 中选 出与 ,-’ 最接近的点 + 调整点 $ 坐标, 为下一次调用 ’ + ,-’ # /01 , 作准备 + 对所有点进行两遍如上的考察, 一遍从上到 下, 另一遍相反 + !+" 细化性能分析 通过上机验证, 本细化算法对英文字母和汉 字的细化均可用, 结果见图 < 和图 = +
图%
相邻 + 像素点标号
各种状态分量的不同值对数组中各元素的影 响见表 " / 表中列出数组元素表明该种扫描方向 在取该值时对该元素的概率有贡献 / 对水平方向 表明该点处在累 扫描而言, 当其状态分量为 " 时, 加数据的递增状态, 考虑到其扫描次序是从左到 右, 因此, 仅从这一分量考虑与该像素点相邻的取 较大值的点可能在标号为 !, 0, " 的这三个像素点 中, 该分量对 ,-. [!] , [ 0] , [ "] 的概率贡献为 ,-. ,-. 当 状 态 分 量 为 $ 时, 正 好 相 反, 该分量对 "; [$] , [%] , [ &] 的贡献为 "; 当状态分量为 ’ ,-. ,-. ,-. 时, 只能断定其取值较大的点在水平方向上的两 个点 0 和 % 中, 其中哪一个还不能确定, 该分量对 [ 0] 和 ,-. [ %] 的贡献为 "; 当状态分量为 % 时, ,-. 可断定其取值较大的点不可能在水平的两个点 0
% [0] [%] 1-. ) ,-. )0 [’] [*] 1-. ) ,-. )0 ["] [&] 1-. ) ,-. )0 [$] [!] 1-. ) ,-. )0
和 %, 应对 ,-. [0] 和 ,-. [%] 清 0/ 对四个状态分量逐一考察后, 数组中最大元 素所对应的像素点就是骨架上的相邻的下一个像 素点 / 实验结果表明, 往往最大的元素不止一个, 万方数据 在此种情况下, 可借助于上一个骨架上的像素点
+"
言) , 可将像素点分为三个状态 ! 例如可将上面这 ! 个像素点分成三种状态 ! 点序号为 " # $ 的像素 点处在数据上升状态, 给该状态编码为 " ! 点序号 为 % 的像素点处在数据最大状态, 给该状态编号 为 % ! 点序号为 & # ! 的像素点处在数据下降状 态, 给该状态编号为 $ ! 当处在极大状态的像素点 个数大于 ’ 时称为不充分累加, 否则称为充分累 加 ! 为了能区分这两种不同的状态, 把充分累加中 的极值点状态和不充分累加中的极值点状态视为 两个不同的状态, 并将充分累加中的极值点状态 称为 %, 将不充分累加中的极值点状态称为 ’ ! 对 累加后点阵数据沿某一方向扫描, 每一像素点只 可能处在上面四种状态之一 ! 本方法中采用四种 扫描方向, 即水平、 垂直、 倾斜 %&" 、 倾斜 "$&" , 因 此一个像素点在每一个方向扫描时就有一个状态 分量, 共有四个状态分量, 亦即每一个像素点的状 态是四维的, 每维取值可为 ", ’, $, % ! 这样四维的 状态共有 % ( % ( % ( % ) ’&* 种 ! 尽管每一像素点 的各维状态分量与扫描方向相对应, 但各维状态 分量具体取值还与该扫描方向下的扫描次序有 关, 例如对水平方向扫描有从左到右和从右到左 两种次序, 当从左到右扫描某一像素点的该状态 分量为 " 时, 如果改为从右往左的次序, 则该点的 该状态分量的值为 $ ! 以下约定: 对水平方向, 扫 描次序是从左到右, 垂直方向的扫描次序是从上 到下, 倾斜 %&" 方向的扫描次序是从右上到左下, 倾斜 "$&" 方向的扫描次序是从左上到右下 ! 利用 这一方式对每一像素点进行标定 !
# /." ! !)’ # /)) ! (’’ ) ’)( ( #)’ ) .-! ! )). ! (’’ ( "". . #!/ . ((# ( &/- ) ’.’ # &"! # /./ ) ’(- . #(# . &)" ’ #). . -#" ( .!- ! .)) ! !&# ( !)& . .’- ’ !.# ’ )/( . &&’ ( /(- ! -’’ ! "". ) &./ . .(- ’ !/’ ’ ()’ ’ "’. ( &!& ! /!’ ) ()# . )"/ ’ !#/ ’ (!& ’ "-. ( &(# ! /). ! &-! . "&) ’ #(# ’ (#( ’ "-. ( &(# ! /). , ! /’. ( &-’ ’ "&’ ’ ("( ’ "-. . &.# ! /). ! /)& ( &(’ ’ "-/ ’ ("" ’ "-. ( &(# ! /). ! /!’ ( &!& ’ "’’ ’ )&’ ’ "-( ( &(# ! /). ! -.! ( /#- . &.. ’ )"# . &&’ ( //" ! /"" ! (-! ( )/’ . (&& . //" . ’#’ ( .-. ! ’!. # --! ) )"- ( )/’ ( -.’ ( .’) ) -!# ! #). # --! ! (-! ! -#- ! ’#’ ! #). # !!.
图)
笔画点阵数据累加 ( 次后各像素点的值
% (・ $ ( ( % .・ $ . ( % ’・ $ ’ ( % -・ $ - ( % /・ $ /, 式中 % &" 是累加以后该像素点的新像素值 ! 新方 法中采用图 ! 所示的累加模板 !
$# $( $’ $! $" $$) $. $/
从图中可以看出, 位于笔画边缘的像素点的 值较小, 位于笔画中间的像素点的值最大 ! !!" 累加数据分析和像素点的状态标定 从图 ) 中 , 点沿着水平方向对上述累加笔 画数据从左至右进行扫描, 扫描的点序与该点的 像素值如下: # ! ) ( . ’ , , , , , , ! /’. ( &-’ ’ "&. ’ ("( ’ "-. ( &(# ! /). 累加数据上方的 # 0 - 为点序号 ! 根据累加后像素点的数据值是处在增加状 态、 减少状态还是最大状态 (相对于扫描方向而
至少在两个或两个以上扫描方向上取极大值的, 即四位状态分量中至少有两个或两个以上状态分 隐式细化点虽然不满足这一条件, 但 量的值为 %, 也应该是尽量取较大值的点 ! 在确定了某点为骨 架点的条件下, 若能在其周围 + 个像素点中确定 出下一个为骨架点的像素点, 则骨架上的所有的 点包括显式的和隐式的骨架点都可以检测出来 ! 对一确定的骨架像素点可以根据前面标定的标识 信息确定与该像素点相邻的在骨架上的下一个像 素点的位置 ! 为了便于说明, 这里将一个像素点周 围的相邻的 + 个像素点编上标号 (见图 % ) , 并开 辟一个数组 ,-. [+] 来存放这周围 + 个像素点成为 骨架上下一个像素点的概率, 其中数组中元素的 下标就是它所代表的像素的标号 /
! 这些方法中有一些在细化速度上
有优势, 有些在保形方面有改善 ! 本文提出一种新 方法, 它的保形性较其他细化算法有改进 !
!
!!!
模板累加及数据分析
模板及累加过程 模板累加过程实际上是二值图像点阵数据与
模板连续进行卷积运算的过程 ! 进行这种运算的 模板一般选择 # 1 # 矩阵, 如 #2)等 (见图 #) , $ # 0 $ / 的值为 " 还是为 # 需据具体情况定 ! 设图像中某一像素点值为 % " , 其周围左上、 上、 右上、 左、 右、 左下、 下、 右下 / 个像素点的像素 值分别为 % # 0 % / , ) 1 ) 模板累加过程为 % &" ’ % #・ $ # ( % !・ $ ! ( % )・ $ ) (
状态分量的值
!
!!"
细化算法
检测隐式细化点的原理 无论是显式细化点还是隐式细化点, 它们都
应是累加数据尽量取较大值的点 ! 显式细化点是
表"
各状态分量对 ,-. [] 数组的影响
" 水平方向扫描 垂直方向扫描 %&2方向扫描 "$&2方向扫描 [!] , [0] , ["] 1-. ,-. ,-. [&] , [*] , [!] 1-. ,-. ,-. [%] , [&] , [*] 1-. ,-. ,-. [*] , [!] , [0] 1-. ,-. ,-.
’ [0] , [%] 1-. ,-. [’] , [*] 1-. ,-. ["] , [&] 1-. ,-. [$] , [!] 1-. ,-.
$ [$] , [%] , [&] 1-. ,-. ,-. ["] , [’] , [$] 1-. ,-. ,-. [0] , ["] , [’] 1-. ,-. ,-. [’] , [$] , [%] 1-. ,-. ,-.
第 )" 卷 第 ) 期 !""! 年 )月







报 (自然科学版)
345% )" K:H %
64 % ) !""!
7% 89:;<4=> ?=@A % 4B CD@% E *FD<( % 6:G9HF CD@F=DF IJ@G@4=)
一种基于像素标识的笔画细化新方法
刘宏申
(安徽工业大学计算机科学系)
笔画细化是字符识别中重要的步骤, 直接影 响字符识别的正确率 ! 笔画细化方面的工作已有 文献报道
[# 0 /]
后将累加值作为新的像素值, 这样的一次过程称 为进行一次累加 ! 重复这样的数次累加后, 位于边 缘的像素点的值应较小, 位于笔画中间的像素点 [’] 的值应较大 ! 图 ) 是用上述模板对一笔画数据 累加 ( 次的结果 !
摘要:利用模板重复对字符点阵数据累加, 然后对模板累加数据进行分析, 提出标定每一像素点的方法, 根据 每个像素点的这些标定信息可确定细化后保留点和细化剔除点, 进而进行保形的笔画细化 ! 该方法的最大特 点就是笔画细化保形效果好, 细化结果受笔画边缘毛刺影响很小 ! 通过上机验证, 证实该方法是一个在笔画细 化上有效实用的方法 ! 关 键 词:字符识别;像素标识;笔画细化;模板累加 文献标识码:, 文章编号:#’-# " (.#! (!""!) ") " ""/" " ") 中图分类号:*+)&#
相关文档
最新文档