基于MATLAB的圖片中文字的提取及識別_第1頁
基于MATLAB的圖片中文字的提取及識別_第2頁
基于MATLAB的圖片中文字的提取及識別_第3頁
基于MATLAB的圖片中文字的提取及識別_第4頁
基于MATLAB的圖片中文字的提取及識別_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于MATLAB的圖片中文字的提取及識別鄒浩,余龍,鄒勇博,劉宇童,和振喬,李少梅(西安電子科技大學(xué) 電子工程學(xué)院,西安,)摘要 隨著現(xiàn)代社會的發(fā)展,信息的形式和數(shù)量正在迅猛增長。其中很大一部分是圖像,圖像可以把事物生動地呈現(xiàn)在我們面前,讓我們更直觀地接受信息。同時,計算機已經(jīng)作為一種人們普遍使用的工具為人們的生產(chǎn)生活服務(wù)。從圖像中提取文字屬于信息智能化處理的前沿課題,是當(dāng)前人工智能與模式識別領(lǐng)域中的研究熱點。由于文字具有高級語義特征,對圖片內(nèi)容的理解、索引、檢索具有重要作用,因此,研究圖片文字提取具有重要的實際意義。又由于靜態(tài)圖像文字提取是動態(tài)圖像文字提取的基礎(chǔ),故

2、著重介紹了靜態(tài)圖像文字提取技術(shù)。關(guān)鍵詞:MATLAB 圖像處理 文字提取 文字識別Text Extraction and Recognition in Images Based on MATLABZOU Hao, YU long, ZOU Yongbo, LIU Yutong, HE Zhenqiao, LI Shaomei(Xidian University Electronic Engineering College,Xian,)Abstract With the development of society,the form and quantity of imformation are

3、 increasing quickly.A large part of them are images,which can make things vividly presented in front of us,let us more intuitive to accept information.At the same time, the computer has been as a widely used tool for peoples production and living services.Extracting text from image belongs to the fr

4、ontier of intelligent information processing, and it is the current hot research topic in the field of artificial intelligence and pattern recognition.As the text with high-level semantic feature and plays an important role on understanding,indexing and retrieval image content.Therefore,the study on

5、 extracting texts from images have important actual meanings. And because extracting texts from still images is the basis for extracting texts from dynamic images, the article emphatically introduces the technology of extracting texts from still images.Key Words: MATLAB image processing word extract

6、ion word recognition一引言隨著計算機科學(xué)的飛速發(fā)展,以圖像為主的多媒體信息迅速成為重要的信息傳遞媒介,在圖像中,文字信息(如新聞標(biāo)題等字幕) 包含了豐富的高層語義信息,提取出這些文字,對于圖像高層語義的理解、索引和檢索非常有幫助。圖像文字提取又分為動態(tài)圖像文字提取和靜態(tài)圖像文字提取兩種,其中,靜態(tài)圖像文字提取是動態(tài)圖像文字提取的基礎(chǔ),其應(yīng)用范圍更為廣泛,對它的研究具有基礎(chǔ)性,所以本文主要討論靜態(tài)圖像的文字提取技術(shù)。靜態(tài)圖像中的文字可分成兩大類: 一種是圖像中場景本身包含的文字, 稱為場景文字; 另一種是圖像后期制作中加入的文字, 稱為人工文字,如右圖所示。場景文字由于其出現(xiàn)

7、的位置、小、顏色和形態(tài)的隨機性, 一般難于檢測和提??;而人工文字則字體較規(guī)范、大小有一定的限度且易辨認,顏色為單色, 相對與前者更易被檢測和提取,又因其對圖像內(nèi)容起到說明總結(jié)的作用,故適合用來做圖像的索引和檢索關(guān)鍵字。對圖像中場景文字的研究難度大,目前這方面的研究成果與文獻也不是很豐富,本文主要討論圖像中人工文字提取技術(shù)。二靜態(tài)圖像中文字的特點靜態(tài)圖像中文字(本文特指人工文字,下同)具有以下主要特征:(1)文字位于前端,且不會被遮擋;(2)文字一般是單色的;(3)文字大小在一幅圖片中固定,并且寬度和高度大體相同,從滿足人眼視覺感受的角度來說,圖像中文字的尺寸既不會過大也不會過??;(4)文字的分

8、布比較集中;(5)文字的排列一般為水平方向或垂直方向;(6)多行文字之間,以及單行內(nèi)各個字之間存在不同于文字區(qū)域的空隙。在靜態(tài)圖片文字的檢測與提取過程中, 一般情況下都是依據(jù)上述特征進行處理的。三文字提取、識別的一般流程 靜態(tài)圖像文字提取一般分為以下步驟:文字區(qū)域檢測與定位、文字分割與文字提取、文字后處理。其流程如圖1所示。(圖1)四文字提取、識別的詳細步驟1. 在Matlab中調(diào)用i1=imread(字符.jpg),可得到原始圖像,如圖2所示:(圖2)2. 調(diào)用i2=rgb2gray(i1),則得到了灰度圖像,如圖3所示:(圖3) 調(diào)用a=size(i1);b=size(i2);可得到:a=

9、3,b=2 即三維圖像變成了二維灰度圖像3. 調(diào)用i3=(i2=thresh);其中thresh為門限,在0,255之間 這里,i2_max=double(max(max(i2); %獲取亮度最大值 i2_min=double(min(min(i2); %獲取亮度最小值 thresh=round(i2_max-(i2_max-i2_min)/3); 得到二值圖像,如圖4所示:(圖4)4. 把二值圖像放大觀察,可看到離散的黑點 對其采用腐蝕膨脹處理,得到處理后的圖像,如圖5所示(圖5) 可見,腐蝕膨脹處理后的圖像質(zhì)量有了很大的改觀。 橫向、縱向分別的腐蝕膨脹運算比橫向、縱向同時的腐蝕膨脹運算好上

10、很多,圖6可看出差別:(圖6)5. 對腐蝕膨脹后的圖像進行Y方向上的區(qū)域選定,限定區(qū)域后的圖像如圖7所示: 掃描方法:中間往兩邊掃(圖7) 縱向掃描后的圖像與原圖像的對照,如圖8所示:(圖8)6.對腐蝕膨脹后的圖像進行X方向上的區(qū)域選定,限定區(qū)域后的圖像如圖9所示: 掃描方法:兩邊往中間掃(圖9) 縱向掃描后的圖像與原圖像的對照,如圖10所示:(圖10)7. 調(diào)用i8=(iiXY=1),使背景為黑色(0),字符為白色(1),便于后期處理。 背景交換后的圖像如圖11所示:(圖11)8. 調(diào)用自定義函數(shù)(字符獲取函數(shù))i9=getchar(i8),得到圖像如圖12所示:(圖9)9.調(diào)用自定義的字符

11、獲取函數(shù)對圖像進行字符切割,并把切割的字符裝入一維陣列,切割 過程如圖12所示:(圖12)10.調(diào)用以下代碼,可將陣列word中的字符顯示出來,如圖13所示: for j=1:cnum %cnum為統(tǒng)計的字符個數(shù) subplot(5,8,j),imshow(wordj),title(int2str(j); %顯示字符 end(圖13) 可以看到,字符寬度不一致11.調(diào)用以下代碼,將字符規(guī)格化,便于識別: for j=1:cnum wordj=imresize(wordj,40 40); %字符規(guī)格化成4040的 end 得到規(guī)格化之后的字符如圖14所示:(圖14)12.調(diào)用以下代碼創(chuàng)建字符集:

12、 code=char(由于作者水平有限書中難免存在缺點和疏漏之處懇請讀批評指正,。); 將創(chuàng)建的字符集保存在一個文件夾里面,以供匹配時候調(diào)用,如圖15所示:(圖15)13.字符匹配采用模板匹配算法:將現(xiàn)有字符逐個與模板字符相減,認為相減誤差最小的現(xiàn) 有字符與該模板字符匹配。 假設(shè):字符,模板字符,模板字符 也就是說,字符A與模板字符更相似,我們可以認為字符集中的字符就是字符A。 經(jīng)模板匹配,可得字符信息如下: 由于讀者書評有限書中難免存在缺點和紕漏之處,懇請讀者批評指正。 效果如圖16所示:(圖16)14.調(diào)用以下代碼,將字符放入newtxt.txt文本: new=newtxt,.txt; c

13、=fopen(new,a+); fprintf(c,%sn,Code(1:cnum); fclose(c); newtxt.txt文本內(nèi)容如圖17所示:(圖17)5 反思與體會1.算法具有局限性。對于左右結(jié)構(gòu)的字符(如:川)容易造成誤識別,“川”字將會被識別 成三部分。當(dāng)圖片中文字有一定傾斜角度時,這將造成識別困難。2.模板匹配效率低。對于處理大小為mm的字符,假設(shè)有n個模板字符,則識別一個字符至 少需要mmn2次運算,由于漢字有近萬個,這將使得運算量十分巨大!此次字符識 別一共花了2.838秒。3.伸縮范圍比較小。對于受污染的圖片,轉(zhuǎn)換成二值圖像將使字符與污染源混合在一起。 對于具體的圖片,

14、需反復(fù)選擇合適的thresh進行二值化處理,甚至在處理之前必須進行 各種濾波。4.通過這次數(shù)字圖象處理的學(xué)習(xí)和報告的撰寫,我們小組發(fā)揮了團結(jié)友愛的協(xié)作精神,大 量的資料查閱豐富了我們的視野,同時使我們對這么課更加感興趣。參考文獻1 樊昀, 王潤生.從圖像中提取文字J .國防科技大學(xué)學(xué)報,2002,24 (1) :59-62.2 王健,王晨.基于靜態(tài)圖片的文本提取技術(shù)的研究J .延邊大學(xué)學(xué)報(自然科學(xué)版) , 2007,33 (2) :124-128.3 夏瑩,馬少平,孫茂松等.計算機語言學(xué)方法在中文文字識別后處理中的應(yīng)用J .中文信息,1996, (2) :50-51.4 鄭阿奇,曹戈,趙陽.

15、MATLAB實用教程M.北京:電子工業(yè)出版社5 程衛(wèi)國,馮峰,姚東,徐聽.MATLAB5.3應(yīng)用指南M.北京:人民郵電出版社6 陳楊.MATLAB 6.X圖像編程與圖像處理M.西安:西安電子科技大學(xué)出版社7 阮秋琦.數(shù)字圖像處理M.電子工業(yè)出版社,2001年.8 徐建華.圖像處理與分析M.科學(xué)出版社,1999年.附錄主程序源代碼:% 數(shù)字圖象處理大作業(yè) %圖片中文字的提取及識別%ticI=imread(字符.jpg); %打開圖片%figure(1);imshow(I);title(原始圖像,color,b); I=rgb2gray(I); %RGB圖片轉(zhuǎn)化成灰度圖像%figure(2);im

16、show(I);title(灰度圖像,color,b); i_max=double(max(max(I); %獲取亮度最大值i_min=double(min(min(I); %獲取亮度最小值thresh=round(i_max-(i_max-i_min)/3); %計算灰度圖像轉(zhuǎn)化成二值圖像的門限threshI=(I=thresh); %I為二值圖像%figure(3);imshow(I);title(二值圖像,color,b); seY=1;1;1; %構(gòu)造結(jié)構(gòu)元素I=imdilate(I,seY); %腐蝕圖像I=imerode(I,seY); %膨脹圖像seX=1 1 1;I=imdil

17、ate(I,seX);I=imerode(I,seX);%figure(4);imshow(I);title(腐蝕膨脹后的圖像,color,b); ii=double(I);m,n=size(ii); %獲取圖像大小信息%確定文字區(qū)域%縱向掃描countY=zeros(m,1);for i=1:m for j=1:n if ii(i,j)=0 countY(i,1)=countY(i,1)+1; end endendmaxY indexY=max(countY);tempY1=indexY;while (countY(tempY1,1)3) & (tempY11) tempY1=tempY1-

18、1;endtempY2=indexY;while (countY(tempY2,1)3) & (tempY2m) tempY2=tempY2+1;endtempY1=tempY1-1;tempY2=tempY2+1;iiY=I(tempY1:tempY2,:); %確定了Y方向上的文字區(qū)域%figure(5);imshow(iiY);title(Y方向區(qū)域大致確定后的圖像,color,b); %橫向掃描countX=zeros(1,n);for j=1:n for i=tempY1:tempY2 if ii(i,j)=0 countX(1,j)=countX(1,j)+1; end enden

19、dtempX1=1;while (countX(1,tempX1)3) & (tempX1n) tempX1=tempX1+1;endtempX2=n;while (countX(1,tempX2)1) tempX2=tempX2-1;endtempX1=tempX1-1;tempX2=tempX2+1;iiXY=iiY(:,tempX1:tempX2); %確定了整體的文字區(qū)域%figure(6);imshow(iiXY);title(X、Y方向區(qū)域都大致確定后的圖像,color,b); ii=(iiXY=1);%黑色背景,白色字體%figure(7);imshow(ii);title(背景

20、和文字交換顏色的圖像,color,b); ii=bwareaopen(ii,200); %刪除面積小于200的雜質(zhì)圖像%figure(8);imshow(ii);title(刪除雜質(zhì)干擾的圖像,color,b); myI=charslice(ii); %限定文字區(qū)域%figure(9);imshow(ii);title(限定文字區(qū)域的圖像,color,b); y1=10;y2=0.25;flag=0;maxnum=40;k=1; %maxnum為字符個數(shù)限定值,k用于統(tǒng)計實際字符個數(shù)word=cell(1,maxnum); %建立單元陣列,用于儲存字符 figure(10)while size

21、(myI,2)10 %當(dāng)myI的長度小等于10,可確定沒有字符了 wordk,myI=getword(myI); %獲取字符 k=k+1; % if k=2 subplot(5,1,1);imshow(myI);title(第一次切割后的圖像,color,b); end if k=3 subplot(5,1,2);imshow(myI);title(第二次切割后的圖像,color,b); end if k=5 subplot(5,1,3);imshow(myI);title(第四次切割后的圖像,color,b); end if k=16 subplot(5,1,4);imshow(myI);t

22、itle(第十五次切割后的圖像,color,b); endendsubplot(5,1,5);imshow(myI);title(最后一次切割后的圖像,color,b);% cnum=k-1; %實際字符總個數(shù) %figure(11);for j=1:cnumsubplot(5,8,j),imshow(wordj),title(int2str(j); %顯示字符end% for j=1:cnum wordj=imresize(wordj,40 40); %字符規(guī)格化成4040的endfigure(12);for j=1:cnumsubplot(5,8,j),imshow(wordj),titl

23、e(int2str(j); %顯示字符end for j=1:cnumimwrite(wordj,int2str(j),.jpg); %保存字符end defx=40;defy=40;code=char(由于作者水平有限書中難免存在缺點和疏漏之處懇請讀批評指正,。);%創(chuàng)建字符集codenum=size(code,2); %獲取字符集中字符個數(shù)for i=1:cnum ch=int2str(i); %數(shù)字轉(zhuǎn)化為字符 tempbw=imread(ch .jpg); %打開預(yù)匹配字符 for k=1:codenum fname=strcat(C:UsersAdministratorDesktop數(shù)

24、字圖像處理大作業(yè)字符匹配庫,code(k),.jpg); %字符匹配庫中的字符 sample=imread(fname); subsam=abs(tempbw-sample); %作比較 count=sum(sum(subsam); %匹配誤差統(tǒng)計 err(k)=count; end erro=err(1:codenum); minerror=min(erro); %找出誤差最小的模板字符 findc=find(erro=minerror); %獲取模板字符序號 Code(i)=code(findc); %將字符裝入Codeend figure(13);imshow(ii);tt=title(文字信息: , Code(1:cnum),Color,b); %顯示字符信息set(tt,fontsize,24); %設(shè)置字體%將圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論