本發(fā)明實(shí)施例涉及字符識(shí)別技術(shù),尤其涉及一種字符邊界確定方法及裝置。
背景技術(shù):
字符識(shí)別技術(shù)在日常生活中應(yīng)用廣泛,例如,紙幣冠字號(hào)識(shí)別、車(chē)牌識(shí)別等。以紙幣為例,紙幣在流通過(guò)程中,可能會(huì)染上不同程度的污跡,當(dāng)污跡處于冠字號(hào)區(qū)域時(shí),影響字符邊界的準(zhǔn)確定位,可能會(huì)導(dǎo)致識(shí)別錯(cuò)誤甚至無(wú)法識(shí)別,為紙幣識(shí)別或鑒偽帶來(lái)一定的困難?,F(xiàn)有的紙幣冠字號(hào)識(shí)別主要針對(duì)七成新以上的紙幣,為了有效地對(duì)紙幣冠字號(hào)進(jìn)行識(shí)別,在冠字號(hào)識(shí)別過(guò)程中,利用計(jì)算機(jī)視覺(jué)技術(shù)和圖像處理技術(shù)對(duì)污染的冠字號(hào)區(qū)域進(jìn)行處理,例如,通過(guò)二值操作以及中值濾波去噪等簡(jiǎn)單的方法去除污跡,得到可以識(shí)別的冠字號(hào),然后定位字符邊界,進(jìn)行分割和識(shí)別。
但是,字符識(shí)別過(guò)程中需要二值化以及去除污跡,使得整個(gè)識(shí)別過(guò)程耗費(fèi)時(shí)間較長(zhǎng),且上述簡(jiǎn)單的方法并不能有效去除污跡,污跡還是會(huì)影響字符邊界的準(zhǔn)確定位,進(jìn)而影響字符分割和識(shí)別。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種字符邊界確定方法及裝置,可以解決污跡對(duì)字符邊界定位的影響,能夠準(zhǔn)確定位字符邊界,且時(shí)間復(fù)雜度較低。
第一方面,本發(fā)明實(shí)施例提供了一種字符邊界確定方法,包括:
針對(duì)字符灰度圖,計(jì)算鄰行灰度差值和鄰列灰度差值;
根據(jù)所述鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上邊界和下邊界;
根據(jù)所述鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界。
第二方面,本發(fā)明實(shí)施例還提供了一種字符邊界確定裝置,包括:
灰度差值計(jì)算模塊,用于針對(duì)字符灰度圖,計(jì)算鄰行灰度差值和鄰列灰度差值;
上下邊界確定模塊,用于根據(jù)所述鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上邊界和下邊界;
左右邊界確定模塊,用于根據(jù)所述鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界。
本發(fā)明實(shí)施例的字符邊界確定方法及裝置,通過(guò)鄰行灰度差值、鄰列灰度差值及預(yù)設(shè)字符大小確定字符的四個(gè)邊界,能夠準(zhǔn)確定位字符邊界,解決小塊污跡對(duì)邊界定位的影響,且方法簡(jiǎn)單,無(wú)需采用額外手段去除污跡,時(shí)間復(fù)雜度低。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例一提供的字符邊界確定方法的流程圖;
圖2是本發(fā)明實(shí)施例一提供的字符灰度圖的示意圖;
圖3是本發(fā)明實(shí)施例四提供的字符邊界確定裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各步驟的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對(duì)應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
本發(fā)明實(shí)施例中的字符圖片是指需要識(shí)別的字符圖片,例如,紙幣冠字號(hào)圖片、車(chē)牌圖片等。上述字符圖片如果存在小塊污跡,且該污跡不會(huì)導(dǎo)致字符因被污跡遮擋而無(wú)法識(shí)別,則可以應(yīng)用本發(fā)明實(shí)施例進(jìn)行字符邊界確定。上述字符圖片如果存在大量污跡,完全遮擋字符,無(wú)法進(jìn)行字符識(shí)別,也就無(wú)需進(jìn)行字符邊界確定,這種情況不在本發(fā)明實(shí)施例的討論范圍。
實(shí)施例一
圖1是本發(fā)明實(shí)施例一提供的字符邊界確定方法的流程圖,本實(shí)施例可適用于字符圖片上有小塊污跡且該污跡不影響字符識(shí)別的情況,該方法可以由字符邊界確定裝置來(lái)執(zhí)行,字符邊界確定裝置可以是具有計(jì)算功能和圖像處理功能的電子設(shè)備。如圖1所示,該字符邊界確定方法包括如下的步驟S110至步驟S130。
步驟S110,針對(duì)字符灰度圖,計(jì)算鄰行灰度差值和鄰列灰度差值。
本步驟中,字符灰度圖可以通過(guò)將彩色圖像轉(zhuǎn)換為灰度圖得到,例如,紙幣的冠字號(hào)灰度圖、車(chē)牌灰度圖等。字符灰度圖如圖2所示,為紙幣冠字號(hào)的一部分。其中,冠字號(hào)灰度圖指的是紙幣上的冠字號(hào)區(qū)域的灰度圖像,而不是整張紙幣的灰度圖;車(chē)牌灰度圖指的是車(chē)牌區(qū)域的灰度圖。
灰度圖的灰度值越小,圖像顏色越深,黑色對(duì)應(yīng)的灰度值為0。一般在字符灰度圖中,字符為黑色,其像素對(duì)應(yīng)的灰度值為0,字符的背景為灰色,對(duì)應(yīng)的灰度值較大,小塊污跡在灰度圖中的顏色一般比背景色深。
每一列的寬度和每一行的高度均為一個(gè)像素長(zhǎng)度。計(jì)算鄰行灰度差值和鄰列灰度差值,可以由多種方法實(shí)現(xiàn)。以行為例,可以直接計(jì)算某一行各像素點(diǎn)的灰度值與其鄰行各像素點(diǎn)的灰度值的差,再將各像素點(diǎn)的灰度差相加;也可以先計(jì)算每行的灰度值之和(例如,通過(guò)對(duì)灰度圖做行投影的方式得到每行的灰度值之和,也可以直接對(duì)同一行各像素點(diǎn)的灰度值相加得到該行的灰度值之和),然后計(jì)算某一行與其鄰行的灰度值之和的差值。
步驟S120,根據(jù)鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上邊界和下邊界。
步驟S130,根據(jù)鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界。
步驟S120和步驟S130的執(zhí)行順序不分先后。在步驟S120和步驟S130中,單個(gè)字符的大小(包括字符高度和寬度,即單個(gè)字符所占的行數(shù)和列數(shù))與RGB圖像采集時(shí)的圖像分辨率有關(guān),圖像分辨率不同,單個(gè)字符的大小也不同。由于冠字號(hào)或者車(chē)牌的格式大小均是統(tǒng)一的,因此預(yù)設(shè)字符高度和預(yù)設(shè)字符寬度均可以是經(jīng)驗(yàn)值,以冠字號(hào)為例,對(duì)于縱向分辨率為150像素,橫向分辨率為200像素的紙幣灰度圖,單個(gè)冠字號(hào)字符的寬度為20像素(占20列),高度為24像素(占24行),那么對(duì)于同樣分辨率的紙幣灰度圖,就可以使用上述數(shù)據(jù)作為預(yù)設(shè)字符高度和預(yù)設(shè)字符寬度。另外,預(yù)設(shè)字符高度和預(yù)設(shè)字符寬度還可以是根據(jù)當(dāng)前字符灰度圖的分辨率及字符格式大小計(jì)算得到,例如,根據(jù)車(chē)牌灰度圖的分辨率,可以計(jì)算得出車(chē)牌號(hào)中單個(gè)字符的大小。
本實(shí)施例中,在字符邊界處,會(huì)出現(xiàn)灰度值的跳變,例如,背景所在行之間的灰度差值很小,甚至為0;字符上邊界處灰度值會(huì)減小,計(jì)算上邊界下一行與上邊界所在行的灰度差值,則會(huì)得到一個(gè)負(fù)值;字符所在的各行均會(huì)存在黑色的像素,字符所在的各行像素的灰度差值可以是正值或負(fù)值,但其絕對(duì)值會(huì)小于邊界跳變的灰度差的絕對(duì)值;字符下邊界處灰度值會(huì)增大,計(jì)算下邊界下一行與下邊界所在行的灰度差值,會(huì)得到一個(gè)正值。因此,可以確定最小差值對(duì)應(yīng)的行(即差值計(jì)算中的減數(shù)對(duì)應(yīng)的行)是字符的上邊界,最大差值對(duì)應(yīng)的行(即差值計(jì)算中的減數(shù)對(duì)應(yīng)的行)是字符的下邊界。當(dāng)然,依據(jù)上述原理,也可以計(jì)算上一行減去下一行的灰度差值,此時(shí),最小差值對(duì)應(yīng)的行(即差值計(jì)算中的被減數(shù)對(duì)應(yīng)的行)是字符的下邊界,最大差值對(duì)應(yīng)的行(即差值計(jì)算中的被減數(shù)對(duì)應(yīng)的行)是字符的上邊界。確定字符左右邊界的原理與確定上下邊界原理類(lèi)似,不再重復(fù)說(shuō)明,但需注意的是,由于每個(gè)字符均存在左右邊界,因此需要在預(yù)設(shè)范圍內(nèi)分別確定每個(gè)字符的左右邊界。
對(duì)于不影響字符識(shí)別的小塊污跡,與純背景的行或列相比,污跡會(huì)減小所在行或列的灰度值之和,考慮到污跡可能對(duì)利用灰度差值確定字符邊界產(chǎn)生影響,因此,可以結(jié)合預(yù)設(shè)字符寬度和預(yù)設(shè)字符高度來(lái)判斷根據(jù)灰度差值確定的邊界是否合理,并進(jìn)行調(diào)整,從而進(jìn)行準(zhǔn)確的字符邊界定位。
本實(shí)施例的字符邊界確定方法,通過(guò)鄰行灰度差值、鄰列灰度差值及預(yù)設(shè)字符大小確定字符的四個(gè)邊界,能夠準(zhǔn)確定位字符邊界,解決小塊污跡對(duì)邊界定位的影響,且方法簡(jiǎn)單,無(wú)需采用額外手段去除污跡,時(shí)間復(fù)雜度低。
實(shí)施例二
在上述實(shí)施例一的基礎(chǔ)上,本實(shí)施例提供了計(jì)算鄰行灰度差值、根據(jù)鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上邊界和下邊界的優(yōu)選實(shí)施方式。
本實(shí)施例中,可以通過(guò)以下幾種方式計(jì)算鄰行灰度差值:
(1)逐行計(jì)算下一行與當(dāng)前行的灰度差值。其中,可以從上往下逐行計(jì)算灰度差值。下一行與當(dāng)前行的灰度差值是指下一行灰度值減去當(dāng)前行灰度值。
(2)逐行計(jì)算當(dāng)前行與下一行的灰度差值。其中,可以從上往下逐行計(jì)算灰度差值。當(dāng)前行與下一行的灰度差值是指當(dāng)前行灰度值減去下一行灰度值。
(3)計(jì)算(Ri+1-Ri)+(Ri+2-Ri),得到第一計(jì)算結(jié)果,其中,Ri+1-Ri表示第i+1行與第i行的灰度差值,Ri+2-Ri表示第i+2行與第i行的灰度差值。本方式中涉及三行的灰度差值,這樣能夠保證確定的邊界更為準(zhǔn)確。
(4)計(jì)算(Ri-Ri+1)+(Ri-Ri+2),得到第二計(jì)算結(jié)果,其中,Ri-Ri+1表示第i行與第i+1行的灰度差值,Ri-Ri+2表示第i行與第i+2行的灰度差值。本方式中涉及三行的灰度差值,這樣能夠保證確定的邊界更為準(zhǔn)確。
優(yōu)選的,根據(jù)鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上下邊界,可以通過(guò)以下步驟實(shí)現(xiàn):根據(jù)鄰行灰度差值,確定最值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界或下邊界;檢測(cè)確定的上邊界與下邊界相隔的距離是否等于預(yù)設(shè)字符高度;如果是,則邊界定位準(zhǔn)確;如果否,則根據(jù)鄰行灰度差值和預(yù)設(shè)字符高度調(diào)整字符的上邊界和/或下邊界,直到確定的上邊界與下邊界相隔的距離等于預(yù)設(shè)字符高度。其中,采用不同方式計(jì)算得到鄰行灰度差值,依據(jù)該灰度差值,最值與邊界的對(duì)應(yīng)關(guān)系也不同,可以是最小值對(duì)應(yīng)上邊界,也可以是最大值對(duì)應(yīng)上邊界,后續(xù)會(huì)進(jìn)行說(shuō)明。
具體的,初始確定的上邊界與下邊界相隔的距離不等于預(yù)設(shè)字符高度,可能是上邊界和/或下邊界確定不準(zhǔn)確??梢越Y(jié)合預(yù)設(shè)字符高度、灰度差值以及已經(jīng)確定的邊界在灰度圖中的位置調(diào)整邊界,例如,字符處于圖片的中間位置,如果確定的邊界靠近圖片邊緣,則邊界定位錯(cuò)誤。由于受到污跡的影響,可能會(huì)存在多個(gè)相等的最小值(或多個(gè)相等的最大值),此時(shí)可以根據(jù)預(yù)設(shè)規(guī)則選取其中一個(gè)用于確定邊界,該預(yù)設(shè)規(guī)則可以是任選一個(gè),也可以是選擇最上面的最小值(或選擇最下面的最大值),還可以是選取某一固定行(例如,選取多個(gè)相等的最小值中的第2行)。然后結(jié)合預(yù)設(shè)字符高度對(duì)確定的上下邊界進(jìn)行調(diào)整。具體的調(diào)整過(guò)程,需要根據(jù)實(shí)際情況進(jìn)行,例如,最小值對(duì)應(yīng)上邊界,存在多個(gè)相等的最小值,根據(jù)預(yù)設(shè)規(guī)則確定其中一個(gè)值對(duì)應(yīng)的行作為上邊界,且唯一確定了下邊界,上下邊界的距離為10,小于預(yù)設(shè)字符高度24,顯然,上邊界可能定位錯(cuò)誤,需要更換其他最小值對(duì)應(yīng)的行作為上邊界,更換后,再次利用預(yù)設(shè)字符高度進(jìn)行檢測(cè),直到確定的上下邊界符合距離等于預(yù)設(shè)字符高度的條件;或者可以直接找到與下邊界相距24行的那個(gè)灰度差值,如果該值也是最小值,則將對(duì)應(yīng)的行確定為新的上邊界。
另外,如果只存在唯一的最小值或最大值,但是上下邊界距離不等于預(yù)設(shè)字符高度,此時(shí),可以先結(jié)合已經(jīng)確定的邊界在灰度圖中的位置,確定哪個(gè)邊界定位準(zhǔn)確,例如,下邊界準(zhǔn)確,則結(jié)合預(yù)設(shè)字符高度確定新的上邊界,如果該上邊界對(duì)應(yīng)的灰度差值為倒數(shù)第二小的灰度差值,則可以確定邊界定位準(zhǔn)確。
對(duì)于上述四種計(jì)算方式,分別存在各自的確定最值與邊界對(duì)應(yīng)關(guān)系的具體方法,下面分別進(jìn)行說(shuō)明。
在方式(1)逐行計(jì)算下一行與當(dāng)前行的灰度差值的情況下,比較得到的所有灰度差值,確定最小差值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界,確定最大差值所對(duì)應(yīng)的當(dāng)前行作為字符的下邊界。
在方式(2)逐行計(jì)算當(dāng)前行與下一行的灰度差值的情況下,比較得到的所有灰度差值,確定最大差值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界,確定最小差值所對(duì)應(yīng)的當(dāng)前行作為字符的下邊界。
在方式(3)計(jì)算得到第一計(jì)算結(jié)果的情況下,確定第一計(jì)算結(jié)果中最小的值對(duì)應(yīng)的第i行作為字符的上邊界,確定第一計(jì)算結(jié)果中最大的值對(duì)應(yīng)的第i行作為字符的下邊界。
在方式(4)計(jì)算得到第二計(jì)算結(jié)果的情況下,確定第一計(jì)算結(jié)果中最大的值對(duì)應(yīng)的第i行作為字符的上邊界,確定第一計(jì)算結(jié)果中最小的值對(duì)應(yīng)的第i行作為字符的下邊界。
本實(shí)施例提供多種具體方式確定字符的上下邊界,方式靈活,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際情況選擇某種方式使用。
實(shí)施例三
在上述實(shí)施例一和實(shí)施例二的基礎(chǔ)上,本實(shí)施例提供了計(jì)算鄰列灰度差值、根據(jù)鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界的優(yōu)選實(shí)施方式。
本實(shí)施例中,可以通過(guò)以下幾種方式計(jì)算鄰列灰度差值:
(1)逐列計(jì)算下一列與當(dāng)前列的灰度差值。其中,可以從前往后逐列計(jì)算灰度差值。下一列與當(dāng)前列的灰度差值是指下一列灰度值減去當(dāng)前列灰度值。
(2)逐列計(jì)算當(dāng)前列與下一列的灰度差值。其中,可以從前往后逐列計(jì)算灰度差值。當(dāng)前列與下一列的灰度差值是指當(dāng)前列灰度值減去下一列灰度值。
(3)計(jì)算(Cj+1-Cj)+(Cj+2-Cj),得到第三計(jì)算結(jié)果,其中,Cj+1-Cj表示第j+1列與第j列的灰度差值,Cj+2-Cj表示當(dāng)前第j+2列與第j列的灰度差值。本方式中涉及三列的灰度差值,這樣能夠保證確定的邊界更為準(zhǔn)確。
(4)計(jì)算(Cj-Cj+1)+(Cj-Cj+2),得到第四計(jì)算結(jié)果,其中,Cj-Cj+1表示第j列與第j+1列的灰度差值,Cj-Cj+2表示當(dāng)前第j列與第j+2列的灰度差值。本方式中涉及三列的灰度差值,這樣能夠保證確定的邊界更為準(zhǔn)確。
優(yōu)選的,根據(jù)鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界,可以通過(guò)以下步驟實(shí)現(xiàn):
步驟A1,比較第一預(yù)設(shè)列數(shù)范圍內(nèi)的鄰列灰度差值,確定最值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界或右邊界;其中,采用不同方式計(jì)算得到鄰列灰度差值,依據(jù)該灰度差值,最值與邊界的對(duì)應(yīng)關(guān)系也不同,可以是最小值對(duì)應(yīng)左邊界,也可以是最大值對(duì)應(yīng)左邊界,后續(xù)會(huì)進(jìn)行說(shuō)明。
步驟A2,檢測(cè)確定的左邊界與右邊界相隔的距離是否等于預(yù)設(shè)字符寬度。
步驟A3,如果是,則邊界定位準(zhǔn)確。
步驟A4,如果否,則根據(jù)鄰列灰度差值和預(yù)設(shè)字符寬度調(diào)整該字符的左邊界和/或右邊界,直到確定的左邊界與右邊界相隔的距離等于預(yù)設(shè)字符寬度。
步驟A5,針對(duì)字符灰度圖中的其他字符,與已經(jīng)確定邊界的相鄰字符相距第二預(yù)設(shè)列數(shù)范圍后,比較第三預(yù)設(shè)列數(shù)范圍內(nèi)的差值,確定最值所對(duì)應(yīng)的當(dāng)前列作為對(duì)應(yīng)字符的左邊界或右邊界,執(zhí)行步驟A2至步驟A4檢測(cè)邊界是否定位準(zhǔn)確,直到確定各個(gè)字符的左邊界和右邊界。
本實(shí)施例中可以先確定任意字符的左右邊界,在檢測(cè)其邊界定位準(zhǔn)確后,以該字符為基準(zhǔn),從相鄰的字符開(kāi)始,逐個(gè)確定其他字符的邊界。例如,可以根據(jù)用戶輸入的字符污跡信息確定有污跡的字符,然后在沒(méi)有污跡的字符中任選一個(gè),先確定所選字符的邊界;也可以從第一個(gè)字符開(kāi)始確定邊界。
第一預(yù)設(shè)列數(shù)范圍、第二預(yù)設(shè)列數(shù)范圍和第三預(yù)設(shè)列數(shù)范圍的取值與最先確定邊界的字符位置有關(guān)。例如,先確定第一個(gè)字符,則考慮到灰度圖左側(cè)存在空白,第一預(yù)設(shè)列數(shù)范圍可以為60列,該范圍內(nèi)一般僅包括第一個(gè)字符。第二預(yù)設(shè)列數(shù)范圍還與設(shè)定的基準(zhǔn)有關(guān),例如,以左側(cè)相鄰字符的左邊界為基準(zhǔn),該第二預(yù)設(shè)列數(shù)范圍可以為25列;以左側(cè)相鄰字符的右邊界為準(zhǔn),該第二預(yù)設(shè)列數(shù)范圍可以為5列。第三預(yù)設(shè)列數(shù)范圍可以是大于單個(gè)字符寬度的數(shù)據(jù)。
根據(jù)預(yù)設(shè)字符寬度調(diào)整邊界與根據(jù)預(yù)設(shè)字符高度調(diào)整邊界類(lèi)似,需要考慮單個(gè)字符所占的列數(shù),此處不再贅述。
對(duì)于上述四種計(jì)算方式,分別存在各自的確定最值與邊界對(duì)應(yīng)關(guān)系的具體方法,下面分別進(jìn)行說(shuō)明。
在方式(1)逐列計(jì)算下一列與當(dāng)前列的灰度差值的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的右邊界;
在方式(2)逐列計(jì)算當(dāng)前列與下一列的灰度差值的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的右邊界;
在方式(3)計(jì)算得到第三計(jì)算結(jié)果的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小值所對(duì)應(yīng)的第j列作為字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大值所對(duì)應(yīng)的第j列作為字符的右邊界;
在方式(4)計(jì)算得到第四計(jì)算結(jié)果的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大值所對(duì)應(yīng)的第j列作為字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小值所對(duì)應(yīng)的第j列作為字符的右邊界。
本實(shí)施例中,可以先從未受污跡影響的字符開(kāi)始,確定字符的左右邊界,減少了污跡對(duì)邊界定位的影響,增加了邊界定位的準(zhǔn)確性。本實(shí)施例提供多種具體方式確定字符的左右邊界,方式靈活,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際情況選擇某種方式使用。
需要說(shuō)明的是,上述實(shí)施例二和實(shí)施例三中,上下邊界與左右邊界的定位方法可以混合使用,例如,利用實(shí)施例二的計(jì)算方式(1)及其對(duì)應(yīng)的方法確定上下邊界,利用實(shí)施例三的計(jì)算方式(2)及其對(duì)應(yīng)的方法確定左右邊界。
實(shí)施例四
圖3是本發(fā)明實(shí)施例四提供的字符邊界確定裝置的結(jié)構(gòu)框圖,本實(shí)施例可適用于字符圖片上有小塊污跡且該污跡不影響字符識(shí)別的情況,如圖3所示,該裝置包括:灰度差值計(jì)算模塊31、上下邊界確定模塊32和左右邊界確定模塊33。
其中,灰度差值計(jì)算模塊31,用于針對(duì)字符灰度圖,計(jì)算鄰行灰度差值和鄰列灰度差值;上下邊界確定模塊32,用于根據(jù)鄰行灰度差值及預(yù)設(shè)字符高度確定字符的上邊界和下邊界;左右邊界確定模塊33,用于根據(jù)鄰列灰度差值及預(yù)設(shè)字符寬度確定字符的左邊界和右邊界。
本實(shí)施例的字符邊界確定裝置,通過(guò)鄰行灰度差值、鄰列灰度差值及預(yù)設(shè)字符大小確定字符的四個(gè)邊界,能夠準(zhǔn)確定位字符邊界,解決小塊污跡對(duì)邊界定位的影響,且方法簡(jiǎn)單,無(wú)需采用額外手段去除污跡,時(shí)間復(fù)雜度低。
優(yōu)選的,上下邊界確定模塊32包括:上下邊界確定單元和高度檢測(cè)單元。其中,上下邊界確定單元,用于根據(jù)鄰行灰度差值,確定最值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界或下邊界;高度檢測(cè)單元,用于檢測(cè)確定的上邊界與下邊界相隔的距離是否等于預(yù)設(shè)字符高度;如果是,則邊界定位準(zhǔn)確;如果否,則根據(jù)鄰行灰度差值和預(yù)設(shè)字符高度調(diào)整字符的上邊界和/或下邊界,直到確定的上邊界與下邊界相隔的距離等于預(yù)設(shè)字符高度。
灰度差值計(jì)算模塊31具體用于:逐行計(jì)算下一行與當(dāng)前行的灰度差值;或者,逐行計(jì)算當(dāng)前行與下一行的灰度差值;或者,計(jì)算(Ri+1-Ri)+(Ri+2-Ri),得到第一計(jì)算結(jié)果,其中,Ri+1-Ri表示第i+1行與第i行的灰度差值,Ri+2-Ri表示第i+2行與第i行的灰度差值;或者,計(jì)算(Ri-Ri+1)+(Ri-Ri+2),得到第二計(jì)算結(jié)果,其中,Ri-Ri+1表示第i行與第i+1行的灰度差值,Ri-Ri+2表示第i行與第i+2行的灰度差值。
上下邊界確定單元具體用于:
在逐行計(jì)算下一行與當(dāng)前行的灰度差值的情況下,比較得到的所有灰度差值,確定最小差值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界,確定最大差值所對(duì)應(yīng)的當(dāng)前行作為字符的下邊界;
在逐行計(jì)算當(dāng)前行與下一行的灰度差值的情況下,比較得到的所有灰度差值,確定最大差值所對(duì)應(yīng)的當(dāng)前行作為字符的上邊界,確定最小差值所對(duì)應(yīng)的當(dāng)前行作為字符的下邊界;
在計(jì)算得到第一計(jì)算結(jié)果的情況下,確定第一計(jì)算結(jié)果中最小的值對(duì)應(yīng)的第i行作為字符的上邊界,確定第一計(jì)算結(jié)果中最大的值對(duì)應(yīng)的第i行作為字符的下邊界;
在計(jì)算得到第二計(jì)算結(jié)果的情況下,確定第一計(jì)算結(jié)果中最大的值對(duì)應(yīng)的第i行作為字符的上邊界,確定第一計(jì)算結(jié)果中最小的值對(duì)應(yīng)的第i行作為字符的下邊界。
優(yōu)選的,左右邊界確定模塊33包括:左右邊界確定單元、寬度檢測(cè)單元和邊界調(diào)整單元。其中,左右邊界確定單元,用于比較第一預(yù)設(shè)列數(shù)范圍內(nèi)的鄰列灰度差值,確定最值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界或右邊界;寬度檢測(cè)單元,用于檢測(cè)確定的左邊界與右邊界相隔的距離是否等于預(yù)設(shè)字符寬度;如果是,則邊界定位準(zhǔn)確;如果否,則根據(jù)鄰列灰度差值和預(yù)設(shè)字符寬度調(diào)整該字符的左邊界和/或右邊界,直到確定的左邊界與右邊界相隔的距離等于預(yù)設(shè)字符寬度;邊界調(diào)整單元,用于針對(duì)字符灰度圖中的其他字符,與已經(jīng)確定邊界的相鄰字符相距第二預(yù)設(shè)列數(shù)范圍后,比較第三預(yù)設(shè)列數(shù)范圍內(nèi)的差值,確定最值所對(duì)應(yīng)的當(dāng)前列作為對(duì)應(yīng)字符的左邊界或右邊界,利用寬度檢測(cè)單元檢測(cè)邊界是否定位準(zhǔn)確,直到確定各個(gè)字符的左邊界和右邊界。
灰度差值計(jì)算模塊31具體用于:逐列計(jì)算下一列與當(dāng)前列的灰度差值;或者,逐行計(jì)算當(dāng)前列與下一列的灰度差值;或者,計(jì)算(Cj+1-Cj)+(Cj+2-Cj),得到第三計(jì)算結(jié)果,其中,Cj+1-Cj表示第j+1列與第j列的灰度差值,Cj+2-Cj表示當(dāng)前第j+2列與第j列的灰度差值;或者,計(jì)算(Cj-Cj+1)+(Cj-Cj+2),得到第四計(jì)算結(jié)果,其中,Cj-Cj+1表示第j列與第j+1列的灰度差值,Cj-Cj+2表示當(dāng)前第j列與第j+2列的灰度差值。
左右邊界確定單元具體用于:
在逐列計(jì)算下一列與當(dāng)前列的灰度差值的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的右邊界;
在逐列計(jì)算當(dāng)前列與下一列的灰度差值的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小差值所對(duì)應(yīng)的當(dāng)前列作為當(dāng)前字符的右邊界;
在計(jì)算得到第三計(jì)算結(jié)果的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小值所對(duì)應(yīng)的第j列作為字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大值所對(duì)應(yīng)的第j列作為字符的右邊界;
在計(jì)算得到第四計(jì)算結(jié)果的情況下,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最大值所對(duì)應(yīng)的第j列作為字符的左邊界,確定第一預(yù)設(shè)列數(shù)范圍內(nèi)的最小值所對(duì)應(yīng)的第j列作為字符的右邊界。
上述字符邊界確定裝置可執(zhí)行本發(fā)明任意實(shí)施例所提供的字符邊界確定方法,具備執(zhí)行該方法相應(yīng)的功能模塊和有益效果。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。