鄭新哲
【摘 要】論文采用MATLAB提供的圖像處理函數,對特定字體的英文語句圖像進行了字符識別的嘗試,實現了對英文字母、標點符號以及阿拉伯數字的識別。在代碼調試過程中,解決了小字體識別及容易混淆的標點符號識別的難點。盡管采用的識別算法簡單,同樣得到了較為滿意的結果。
【Abstract】 In this paper, the image processing function provided by MATLAB is used to recognize the characters of English sentence images with specific fonts. It realizes the recognition of English letters, punctuation symbols and Arabic numerals. In the process of code debugging, the difficulties of small font recognition and confusing punctuation mark recognition are solved. Although the recognition algorithm is simple, it still obtains satisfactory results.
【關鍵詞】圖像處理;英文字母識別;標點符號識別
【Keywords】image processing; English letter recognition; punctuation recognition
【中圖分類號】TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻標志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章編號】1673-1069(2019)01-0144-02
1 引言
近年來,各種智能識別技術得到迅速發展,包括指紋識別、手寫輸入、車輛牌照識別、人臉識別等技術已經得到廣泛應用。本文利用MATLAB提供的幾個圖像處理函數,研究了印刷體英文字母的識別方法和過程,對智能識別技術進行了初步嘗試,對于在研究過程中遇到的標點符號及阿拉伯數字識別的誤判問題,進行了原因分析與程序處理,最終得到滿意的結果。本文對初次接觸數字圖像處理技術的人員具有引導和示范作用,可以作為學習數字圖像處理課程的入門訓練。
2 基本算法及原理
MATLAB 是 Matrix Laboratory (矩陣實驗室)的縮寫,是 Math Works 公司開發的一種功能強、效率高、簡單易學的數學軟件。MATLAB 的圖像處理工具箱功能也十分強大,支持的圖像文件格式豐富,如 *.BMP、*.JPG、 *.JPEG、 *.GIF、 *.TIF、*.TIFF、 *.PNG、*.PCX、*.XWD、*.HDF、*.ICO、*.CUR等。MATLAB提供了20 多類的圖像處理函數,幾乎涵蓋了圖像處理的所有技術方法,這些函數按其功能可分為:圖像顯示、 圖像文件 I/O、圖像算術運算、幾何變換、圖像登記、像素值與統計 圖像分析、圖像增強、線性濾波、線性二元濾波設計、圖像去模糊、圖像變換、鄰域與塊處理、灰度與二值圖像的形態學運算、基于邊緣的處理、色彩映射表操作、色彩空間變換、圖像類型與類型轉換等。
基于MATLAB的圖字符識別過程大體分成五個步驟:①建立字符樣本庫;②獲取含字符的圖像并對字符區域塊進行定位和讀取;③對各個字符進行切割提取;④所提取的圖像字符與樣本庫中的樣本進行比對,確定識別的字符;⑤輸出識別的字符串。
上述識別過程所涉及的核心算法包括:①彩色圖像灰度化rgb2gray()、二值化im2bw();②根據需要對圖像進行大小調整imresize();③根據垂直直方圖分割字符,并根據零的寬度識別單詞間隔;④建立字符模板數據庫;⑤用適當算法進行識別和字符輸出[1]。
3 字符識別的實現
3.1 準備工作
①選擇測試的特定字體,本文采用宋體對應的英文字母;②準備包含該字體的英文語句的圖像文件,這里用“.jpg”格式的文件進行測試;③準備該字體大小寫英文字母及標點符號模板,每個字符用一個文件,采用二值化的“.bmp”格式。
3.2 識別過程
①讀入待識別圖像文件。②先對圖像進行灰度化處理,再對其進行二值化處理,必要時黑白反轉。③根據像素值確定文字區域的位置,并截取該區域保存,待進行后續處理。④判斷該區域的高度,若小于某值,則對此圖像區域進行放大,以提高識別率。⑤根據圖像中列像素的不連續性及其大小,分割字符并判斷單詞分割。⑥對分割出來的每個字符圖像單獨保存到變量中,并對其修整,去掉外圍無效區域。⑦對已分割的字符圖塊,按高度分成高、低字符兩類。⑧最關鍵的一步是字符識別,識別過程即為圖像最佳匹配過程。有很多算法可以實現圖像匹配評估,常用的有:直方圖法、圖像模板匹配法、SSIM(結構相似性度量)法、余弦相似度法、互信息度量法等。本文解決的內容相對簡單,對于二值圖像來講可選用簡單的算法即可。本文采用圖像模板匹配法,將待識別字符圖塊和模板字符圖塊放大/縮小成同樣大小的圖像,用異或運算后的殘余像素總數的多少判定匹配程度。⑨根據英文字母的特點,大寫字符都屬于高字符,而小寫字符中的b,d,f,g,h,i,j,k,l,p,q,t,y為高字符,其余為低字符。待識別字符圖塊屬于高字符類時,只與模板中的高字符相匹配;待識別字符圖塊屬于低字符類時,只與模板中的低字符相匹配。⑩根據第5步中單詞分割位置,將完整的英文語句輸出到屏幕上。不能識別的字符用“?”替代。
4 結語
采用MATLAB提供的圖像處理函數,可以實現英文語句圖像的字符識別,對標點符號及阿拉伯數字也可以得到滿意結果。與此同時,本文中提供的方法也存在以下問題:
①只能處理相同字體、大小一致的英文文本,且只能處理一行;
②由于采用了灰度化、二值化方法,文字與背景反差小的圖像無法正確識別。
本文僅用了簡單的圖像匹配算法,可以采用更好的特征提取法、相關系數法、神經網絡算法等技術,以適應不同字體,提高識別的適應性和準確性。此外,通過在軟件中建立學習功能,并對分辨不清的情況提供不同選項,可以使系統能識別不同字體,并提高識別的正確性和實用性。
【參考文獻】
【1】張學軍.基于MATLAB圖像處理的車牌號識別系統設計[J].信息通信,2018(07):36-38.