新聞中心

EEPW首頁(yè) > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 基于MATLAB/GUI的文字圖片識(shí)別系統(tǒng)設(shè)計(jì)

基于MATLAB/GUI的文字圖片識(shí)別系統(tǒng)設(shè)計(jì)

作者:吳士好,劉艷華(鹽城工學(xué)院信息工程學(xué)院,江蘇鹽城 224051) 時(shí)間:2023-04-24 來(lái)源:電子產(chǎn)品世界 收藏
編者按:設(shè)計(jì)一個(gè)基于MATLAB/GUI的可視化文字圖片識(shí)別系統(tǒng)。系統(tǒng)主要包含三部分,分別是圖像預(yù)處理、文字分割和文字模板的匹配識(shí)別、GUI可視化界面設(shè)計(jì)。圖像預(yù)處理包含圖像旋轉(zhuǎn)、圖像裁剪、灰度變換、圖像增強(qiáng)和二值化等;然后對(duì)二值化后的圖像進(jìn)行文字的分割,分割后的字符與數(shù)據(jù)庫(kù)里面的文字模板進(jìn)行匹配識(shí)別,最后輸出識(shí)別的文字內(nèi)容。處理算法調(diào)試成功后,設(shè)計(jì)一個(gè)可視化用戶界面。系統(tǒng)完成后調(diào)試系統(tǒng),輸入樣本圖像檢測(cè)識(shí)別結(jié)果。經(jīng)多次測(cè)試,本系統(tǒng)可以較為準(zhǔn)確地提取并識(shí)別圖片上的文字信息。

字符識(shí)別在圖像處理中是一種比較常見(jiàn)的技術(shù)。隨著技術(shù)的發(fā)展,常見(jiàn)的一些文字通常用圖片的格式來(lái)進(jìn)行存儲(chǔ)。當(dāng)需要使用到這些文字的時(shí)候,圖片上的文字不是很方便人們的使用,這個(gè)時(shí)候就要借助文字識(shí)別的手段,把需要的文字從圖片中提取出來(lái)。

本文引用地址:http://2s4d.com/article/202304/445939.htm

本設(shè)計(jì)運(yùn)用 設(shè)計(jì)實(shí)現(xiàn)文字圖片識(shí)別系統(tǒng),該系統(tǒng)包括GUI 界面設(shè)計(jì),圖像預(yù)處理,文字的分割和識(shí)別。建立圖片文字模板,該文字識(shí)別系統(tǒng)可以實(shí)現(xiàn)圖片的讀取和保存、圖片的各種預(yù)處理操作,然后對(duì)文字進(jìn)行分割,最后對(duì)文字進(jìn)行識(shí)別,并在記事本中顯示識(shí)別結(jié)果。

1 文字圖片識(shí)別系統(tǒng)方案

文字圖片識(shí)別系統(tǒng)主要包括GUI 界面設(shè)計(jì),圖像預(yù)處理,文字的分割與識(shí)別3 部分。

文字圖片識(shí)別系統(tǒng)的實(shí)現(xiàn)方案為:

1)首先根據(jù)系統(tǒng)的功能,確定GUI 界面需要的控件或菜單的種類(lèi)和數(shù)量,后面通過(guò)編寫(xiě)每個(gè)控件或菜單的回調(diào)函數(shù),實(shí)現(xiàn)控件或菜單相應(yīng)的功能;

2)準(zhǔn)備幾種不同類(lèi)型文字的圖片,以備進(jìn)行識(shí)別測(cè)試,首先進(jìn)行圖片預(yù)處理,包括對(duì)圖像大小的裁剪旋轉(zhuǎn)、圖像增強(qiáng)、圖像灰度化、圖像二值化等操作,為了后面的和識(shí)別做準(zhǔn)備,方便提取文字圖像的特征點(diǎn);

3)研究字符分割算法,實(shí)現(xiàn)對(duì)文字圖片的分割和識(shí)別;

4)進(jìn)行系統(tǒng)各個(gè)模塊的運(yùn)行調(diào)試,修改相關(guān)程序,完善設(shè)計(jì)系統(tǒng)。

2 文字圖片預(yù)處理

預(yù)處理比較重要的操作包括以下幾步:

首先對(duì)文字圖像進(jìn)行灰度化處理,將彩色圖像轉(zhuǎn)換成灰度圖像。其次去除圖像中的噪聲,對(duì)圖像進(jìn)行降噪,提高識(shí)別的準(zhǔn)確度,噪聲會(huì)導(dǎo)致圖像的質(zhì)量下降,影響圖像上的關(guān)鍵信息。接著對(duì)文字圖像二值化,將文字圖像轉(zhuǎn)換成只有黑色和白色兩種顏色的圖像。

2.1 圖像的輸入與裁剪

在MATLAB中,使用函數(shù)imread() 函數(shù)來(lái)讀取圖像,利用函數(shù)imshow() 顯示圖像。

當(dāng)系統(tǒng)讀入一張圖片,通常字符的周邊存在許多與文字沒(méi)有關(guān)系的其他信息,會(huì)對(duì)后續(xù)的處理帶來(lái)干擾,并且增大了程序的運(yùn)算量,延緩了程序的運(yùn)行速度。所以有時(shí)需要對(duì)圖像適當(dāng)進(jìn)行裁剪,去掉那些無(wú)用的干擾信息。

利用函數(shù)imcrop() 可以對(duì)圖像進(jìn)行剪切。還可以借助MATLAB 的算法,獲取鼠標(biāo)的一些操作來(lái)實(shí)現(xiàn)截圖的功能。

2.2 圖像灰度化處理

對(duì)文字圖像進(jìn)行灰度化處理,主要是為了提取圖像中的關(guān)鍵信息,過(guò)濾掉原來(lái)圖像中的色彩信息。彩色的圖像經(jīng)過(guò)灰度化處理后,就只剩下一個(gè)灰度值。把原本的三通道R、G、B色彩圖像轉(zhuǎn)變成為單通道的灰度圖像。

灰度化處理算法有分量法、最大值法平均值法和加權(quán)平均法。在MATLAB 中使用rgb2gray() 函數(shù),對(duì)彩色圖像進(jìn)行灰度化處理。

2.3 圖像增強(qiáng)

圖像增強(qiáng)是用來(lái)降低圖像中的噪聲,使圖像顯示的更加清晰,為后續(xù)的處理做準(zhǔn)備。

依據(jù)圖像所在空間的不同,圖像增強(qiáng)的方式也就不同。一種是基于空間域的圖像增強(qiáng),它分為灰度變換增強(qiáng)、直方圖增強(qiáng)和空間濾波等。另一種是頻域的圖像增強(qiáng),常用的有低通濾波、高通濾波和中值濾波等。

經(jīng)過(guò)對(duì)幾種算法進(jìn)行測(cè)試對(duì)比,最后選擇使用中值濾波對(duì)圖像進(jìn)行降噪處理,然后再對(duì)濾波后的圖像進(jìn)行直方圖增強(qiáng)處理。經(jīng)過(guò)這樣的處理后,得到的圖像字符是比較清晰的。

在MATLAB 圖像工具箱中,采用imhist() 函數(shù)計(jì)算和顯示圖像的直方圖,用imadjust() 函數(shù)進(jìn)行對(duì)比度調(diào)整。

2.4 圖像二值化

圖像二值化的實(shí)現(xiàn)是選取一個(gè)合適的閾值thresh,把它作為分界點(diǎn)。當(dāng)像素點(diǎn)的像素值大于thresh 時(shí),將其設(shè)置為白色,當(dāng)像素點(diǎn)的像素值小于閾值thresh 時(shí),將其定為黑色。在MATLAB 工具箱中,函數(shù)graythresh()的功能就是獲取一定的閾值,然后依據(jù)獲得的閾值把圖像進(jìn)行二值化。函數(shù)graythresh() 獲取匹配的閾值的原理是最大類(lèi)方差法。

將獲取到的閾值用到函數(shù)im2bw(t,thresh) 中,就可以把圖像二值化,得到一個(gè)黑白色的圖像。

3 和識(shí)別

把二值化后的文字圖像進(jìn)行字符分割,分割好后的字符會(huì)被寫(xiě)入資料庫(kù),生成待識(shí)別的字符模塊。字符識(shí)別時(shí),讀取處理后的待識(shí)別字符和標(biāo)準(zhǔn)的文字字符模板,把這兩部分進(jìn)行,輸出文字的識(shí)別結(jié)果。

3.1 字符分割

字符分割采用基于連通域分析的方法,對(duì)二值圖像上的文字進(jìn)行分割。連通區(qū)域的標(biāo)記算法種類(lèi)是比較多的。在標(biāo)記過(guò)程中,某些算法只經(jīng)過(guò)一次的遍歷就可以標(biāo)記成功,也有的算法需要不止一次的圖像掃描才可以完成標(biāo)記。

本設(shè)計(jì)采用基于行程掃描的算法進(jìn)行連通域的標(biāo)記,處理對(duì)象是經(jīng)過(guò)處理后的二值圖像,作用是將圖像中感興趣的前景目標(biāo)和背景分離。圖像遍歷完畢之后,得到很多個(gè)團(tuán)的起始坐標(biāo)、結(jié)束坐標(biāo)以及它們所在的行和標(biāo)號(hào)。同時(shí),還得到一個(gè)等價(jià)對(duì)列表。

二值圖像中的文字部分是白色的,在矩陣?yán)锩嬗?表示,背景是黑色的,在矩陣?yán)镉? 表示。在遍歷圖像的進(jìn)程中,標(biāo)號(hào)從一開(kāi)始計(jì)數(shù),找到等價(jià)的序列并且賦值一個(gè)標(biāo)號(hào)給它們。找到等價(jià)對(duì)后,記錄它們的標(biāo)號(hào),最后把每個(gè)團(tuán)的標(biāo)號(hào)填入圖像當(dāng)中。

每一個(gè)字符信息都有自己的連通區(qū)域,字符是白色的,在矩陣中用1 表示。所以只需要找到像素值是1 的連通區(qū)域,然后標(biāo)注并提取出來(lái)。這樣就可以實(shí)現(xiàn)字符的分割處理。

3.2 文字識(shí)別

模板的是利用小尺寸的字符圖像和模板中的圖像進(jìn)行比較,確定原圖像中是否存在和這個(gè)模板相同或者相似的區(qū)域。文字識(shí)別的效果與選取的模板是息息相關(guān)的。

數(shù)據(jù)庫(kù)里面的模板都是經(jīng)過(guò)一系列處理的,字符庫(kù)由26 個(gè)大小寫(xiě)英文字母和0~9 十個(gè)數(shù)字組成。數(shù)據(jù)庫(kù)中的模板圖片的格式是高度42,寬度24。

的時(shí)候,首先將待識(shí)別圖片進(jìn)行尺寸變換,轉(zhuǎn)換成和模板圖片一樣的大小,利用imresize() 函數(shù)實(shí)現(xiàn);然后利用函數(shù)corr2() 來(lái)計(jì)算兩張圖片的相似度。當(dāng)?shù)玫降慕Y(jié)果在1 的附近,表示兩者的匹配度是很高的,也就是相似的;當(dāng)獲取的結(jié)果接近0,表示二者的匹配度是很低的。

經(jīng)過(guò)對(duì)比,獲得1 個(gè)與分割字符相似度最高的字庫(kù)圖片,建立1 個(gè)文檔,把找到的模板圖片中的文字信息輸出在文檔中,即可實(shí)現(xiàn)文字的識(shí)別。

4 文字圖片識(shí)別系統(tǒng)的調(diào)試與分析

GUI 界面設(shè)計(jì)完成后,編寫(xiě)對(duì)應(yīng)菜單控件的回調(diào)函數(shù)。然后運(yùn)行這個(gè)系統(tǒng),對(duì)要識(shí)別的圖片進(jìn)行文字識(shí)別測(cè)試。通過(guò)菜單可以實(shí)現(xiàn)圖片的讀取和保存,顯示圖片處理的各個(gè)中間過(guò)程,GUI 界面及部分測(cè)試結(jié)果如圖1 和圖2。

1682331579768715.png

圖1 文字識(shí)別測(cè)試一

1682331611829464.png

圖2 文字識(shí)別測(cè)試二

從識(shí)別的結(jié)果來(lái)看,有時(shí)會(huì)發(fā)生識(shí)別錯(cuò)誤,不過(guò)錯(cuò)誤率是比較低的。

手寫(xiě)的字符只要寫(xiě)的很規(guī)范,系統(tǒng)能夠準(zhǔn)確地識(shí)別圖像中的文字。如果數(shù)據(jù)庫(kù)中每個(gè)字符有許多的模板字體,可以大大地提高文字的識(shí)別成功率。另外就是字母大小寫(xiě)可能發(fā)生識(shí)別錯(cuò)誤,發(fā)生大小寫(xiě)混淆。

總體來(lái)說(shuō),文字圖片識(shí)別系統(tǒng)能夠識(shí)別大部分文字,個(gè)別的一些識(shí)別缺陷,將在以后的研究中繼續(xù)改進(jìn)。

參考文獻(xiàn):

[1] 張紅霞,王燦,劉鑫,等.復(fù)雜背景圖像的字符識(shí)別算法研究[J].計(jì)算機(jī)測(cè)量與控制,2019,27(8):29-37.

[2] 劉思慧,江維.基于MATLAB手寫(xiě)體數(shù)字識(shí)別程序設(shè)計(jì)[J].電子世界,2019(3):18-21.

[3] 李夢(mèng)瑤.基于matlab的圖像增強(qiáng)處理技術(shù)[J].信息記錄材料,2020,21(3):19-26.

[4] 甘曉英,白陽(yáng),何曉棟,等.一種并行二值圖像連通域標(biāo)記算法[J].計(jì)算機(jī)與數(shù)字工程,2021,49(5):43-49.

(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年4月期)



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉