蔡志偉, 奚海丹, 田云松
(1.大連民族大學(xué) a.計(jì)算機(jī)科學(xué)與工程學(xué)院;b.大連市漢字計(jì)算機(jī)字庫(kù)設(shè)計(jì)技術(shù)創(chuàng)新中心,遼寧 大連 116605;2.沈陽(yáng)開放大學(xué),遼寧 沈陽(yáng) 110003)
筆畫是漢字的組成部分,研究漢字的組成結(jié)構(gòu)等離不開筆畫。統(tǒng)計(jì)漢字筆畫的編碼及筆畫類別、筆畫數(shù)量、各種筆畫在字庫(kù)中出現(xiàn)的頻率等數(shù)據(jù),對(duì)于基于筆畫的漢字輸入法和漢字的聯(lián)機(jī)手寫識(shí)別等方面具有重要的指導(dǎo)意義[1]。
漢字?jǐn)?shù)以萬計(jì),是中華民族傳統(tǒng)文化的核心和信息交流的主要工具。每個(gè)漢字不論簡(jiǎn)體或繁體都需要按照筆畫順序進(jìn)行書寫。因此,漢字的筆畫及其筆順對(duì)于漢字書寫和設(shè)計(jì)至關(guān)重要。
(1)漢字筆畫數(shù)據(jù)集現(xiàn)狀。林華[2]于2004年通過提取漢字筆畫輪廓線抽取漢字筆畫,實(shí)現(xiàn)計(jì)算機(jī)輔助漢字筆順教學(xué);吳建國(guó)等人[1]于2005年統(tǒng)計(jì)漢字筆畫的相關(guān)信息并將其應(yīng)用于標(biāo)準(zhǔn)鍵盤和數(shù)字鍵盤;導(dǎo)夫[3]于2013年按《漢字內(nèi)碼擴(kuò)展規(guī)范》總筆畫數(shù)進(jìn)行排序、統(tǒng)計(jì)。
(2)圖像分割現(xiàn)狀。覃學(xué)標(biāo)等[4]于2023年提出基于目標(biāo)檢測(cè)及邊緣支持的魚類圖像分割方法;齊小祥等[5]于2021年提出基于邊緣檢測(cè)的SAR圖像自適應(yīng)區(qū)域分割;李建華等[6]于2022年提出基于Canny算子和距離正則化水平集的乳腺植入物圖像分割算法。
表1 漢字筆畫種類示意圖
(2)漢字筆畫數(shù)據(jù)集中只含有總筆畫數(shù),未出現(xiàn)筆畫細(xì)節(jié)及個(gè)數(shù)。現(xiàn)流行數(shù)據(jù)集大多只存儲(chǔ)漢字編碼、漢字字形、筆畫總數(shù)以及筆順等信息,丟失單個(gè)字形所含有的筆畫類別及數(shù)量信息如圖1。
圖1 漢字筆畫數(shù)據(jù)集示例
采用文獻(xiàn)[8]提出的漢字筆畫分割數(shù)據(jù)集(Chinese character stroke segment dataset,CCSSD),對(duì)漢字筆畫分割數(shù)據(jù)集進(jìn)行筆畫統(tǒng)計(jì),由于CCSSD將筆畫交叉區(qū)域劃分為新一類,并且將所屬橫折折撇的兩種寫法如圖2。記作兩類,共計(jì)34類,在統(tǒng)計(jì)漢字筆畫類別數(shù)量時(shí),采用區(qū)域生長(zhǎng)算法將交叉類歸還給原筆畫,根據(jù)連通域數(shù)量計(jì)算筆畫類別,采用統(tǒng)計(jì)學(xué)方法對(duì)漢字筆畫進(jìn)行分析。
圖2 橫折折撇示例圖
區(qū)域生長(zhǎng)算法是一種常用的圖像分割方法,其核心思想是通過將具有相同性質(zhì)的像素點(diǎn)逐步合并以實(shí)現(xiàn)圖像分割的目的。在該算法中,首先針對(duì)每個(gè)區(qū)域指定一個(gè)種子點(diǎn)作為生長(zhǎng)節(jié)點(diǎn),然后將其周圍的像素點(diǎn)與該種子點(diǎn)進(jìn)行對(duì)比,將相似性質(zhì)的像素點(diǎn)合并至同一區(qū)域,隨后繼續(xù)對(duì)新的像素點(diǎn)進(jìn)行對(duì)比,直至該區(qū)域的生長(zhǎng)完成。而當(dāng)沒有滿足條件的像素點(diǎn)被包含進(jìn)來時(shí),該區(qū)域的生長(zhǎng)也即告結(jié)束。具體步驟見表2。
表2 區(qū)域生長(zhǎng)算法步驟
本文采用應(yīng)用于圖像分割的CCSSD數(shù)據(jù)集,利用其灰度圖像,不同筆畫類別以不同灰度進(jìn)行標(biāo)注,筆畫交叉區(qū)域作為第34類,采用區(qū)域生長(zhǎng)算法,從每個(gè)筆畫類別入手,采用八鄰域搜索,判斷周圍是否擁有筆畫交叉區(qū)域,若有將其歸屬于一類,判斷結(jié)束,根據(jù)連通分量進(jìn)行統(tǒng)計(jì)筆畫數(shù)量并保存。具體流程如圖3。
圖3 基于區(qū)域生長(zhǎng)算法的筆畫統(tǒng)計(jì)流程
區(qū)域生長(zhǎng)算法的好壞取決于:1.初始點(diǎn)(即種子節(jié)點(diǎn))的選取;2.生長(zhǎng)準(zhǔn)則;3.終止條件。為了提高算法的準(zhǔn)確性,本算法采用每個(gè)筆畫類別的第一個(gè)像素值的位置作為種子節(jié)點(diǎn),將相同類別和交叉類別作為生長(zhǎng)準(zhǔn)則,若無相同筆畫類別或交叉筆畫,則終止生長(zhǎng)。
假設(shè)采用如圖4,大小為5×5的圖像矩陣,以7作為種子節(jié)點(diǎn),像素生長(zhǎng)準(zhǔn)則為7或9,按照區(qū)域生長(zhǎng)算法對(duì)該圖像進(jìn)行分割。
圖4 圖像矩陣
采用八鄰域搜索方式加快查找速度,生長(zhǎng)區(qū)域?yàn)?或9,第一次生長(zhǎng)結(jié)果如圖5。第二次生長(zhǎng)如圖6。
圖5 第一次生長(zhǎng)結(jié)果
圖6 第二次生長(zhǎng)結(jié)果
第三次生長(zhǎng)可見周邊鄰域內(nèi)沒有滿足生長(zhǎng)條件的像素點(diǎn),故停止生長(zhǎng),至此,將生長(zhǎng)區(qū)域標(biāo)記為1,未生長(zhǎng)區(qū)域標(biāo)記為0,分割結(jié)果如圖7。
圖7 分割結(jié)果圖
標(biāo)準(zhǔn)宋體“安”字按照灰度圖分割所得筆畫如圖8,方正蘭亭黑“安”字分割所得筆畫如圖9。可以看出,算法適用于不同種類字體,且對(duì)于連通分量計(jì)算筆畫個(gè)數(shù)更為準(zhǔn)確。
圖8 標(biāo)準(zhǔn)宋體“安”筆畫示意圖
圖9 方正蘭亭黑“安”筆畫示意圖
此外,本文采用連通域統(tǒng)計(jì),計(jì)算各漢字各筆畫種類數(shù)量,并按照GB2312編碼順序?qū)⑵浒? 763個(gè)中文漢字進(jìn)行編碼分析,由于橫折折撇有兩種寫法,但是同一個(gè)unicode編碼,故將這兩種歸屬于橫折折撇類,6 763個(gè)中文漢字共計(jì)32個(gè)種類,筆畫編號(hào)、類別及編碼見表3,其中每個(gè)含有該32個(gè)種類的漢字?jǐn)?shù)量見表4。
表3 筆畫基本信息表
表4 含有32個(gè)筆畫的漢字?jǐn)?shù)量
統(tǒng)計(jì)各種類筆畫總數(shù)量占比如圖10?;诠P畫的漢字輸入法鍵盤設(shè)計(jì)具有重大意義,從圖10可以看出,橫、豎、撇、點(diǎn)、橫折占比最多,說明字體設(shè)計(jì)中這五種作為常用筆畫。
圖10 筆畫總數(shù)量占比
字庫(kù)中包含某筆畫的漢字?jǐn)?shù)量見表4??梢钥闯鳇c(diǎn)、橫、撇、豎、提作為基本筆畫,應(yīng)用廣泛。
本文構(gòu)建新數(shù)據(jù)集下載網(wǎng)址:https://github.com/caixiaocai1234/glyph。
構(gòu)建漢字筆畫數(shù)據(jù)集對(duì)于漢字的拼接組成具有重大意義,使用區(qū)域生長(zhǎng)算法將交叉域歸還原筆畫,提高了筆畫數(shù)量計(jì)算的準(zhǔn)確率,同時(shí)小筆畫數(shù)據(jù)集構(gòu)建有助于提高字體設(shè)計(jì)師設(shè)計(jì)效率,統(tǒng)計(jì)常用小筆畫分類有助于筆畫鍵盤布局設(shè)計(jì)。筆畫往往與筆順相關(guān)聯(lián),對(duì)于小筆畫分類的筆順分布還少之又少,如何利用算法進(jìn)行小筆畫筆順分布以減少人力和時(shí)間,是當(dāng)下主要研究之一。