電力設(shè)備標(biāo)牌的字符檢測和識別技術(shù)_第1頁
電力設(shè)備標(biāo)牌的字符檢測和識別技術(shù)_第2頁
電力設(shè)備標(biāo)牌的字符檢測和識別技術(shù)_第3頁
電力設(shè)備標(biāo)牌的字符檢測和識別技術(shù)_第4頁
電力設(shè)備標(biāo)牌的字符檢測和識別技術(shù)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

word文檔可自由復(fù)制編輯1引言1課題的提出以及研究意義使計算器具有人類的感知的能力,能夠識圖認(rèn)字,能聽話和說話,能與人們自然的進行信息交互,是人們長期以來的夢想。經(jīng)過二十余年的奮斗,這些夢想已逐漸部分成真。賦予計算機識圖認(rèn)字的智能,能夠解脫人們將漢字輸入計算機的繁重勞動,克服計算機漢語信息的漢字輸入困難的問題,對我國信息化發(fā)展更具有特殊重要的價值。隨著計算機技術(shù)、通信技術(shù)、多媒體技術(shù)以及Internet的迅速發(fā)展,人們越來越深刻地感受到了計算機處理事情的便捷。提取并識別圖像中的文字,在圖像數(shù)據(jù)庫的組織與管理、視頻索引、公交、交通、旅游、攝影等方面將有著極其廣泛的應(yīng)用。隨著電力系統(tǒng)的規(guī)模增大,電力設(shè)備也越來越多,且設(shè)備分布具有跨地域性的特點,因此怎樣管理維護這些設(shè)備,并可隨時查看這些設(shè)備的信息成為一個急需解決的問題。圖像中往往包含著豐富的文字信息,若能將圖像中的文字進行自動檢測、分割、提取和識別,則對圖像高層語義內(nèi)容的自動理解、索引和檢索非常有價值。因此,90年代,隨著多媒體技術(shù)的發(fā)展以及對基于內(nèi)容的多媒體檢索的需求,圖像中的文字獲取又逐漸成為研究熱點之一。電力設(shè)備標(biāo)牌圖像中的文字獲取對圖像識別、檢索有重要意義。從電力設(shè)備標(biāo)牌圖像中提取文字需要首先定位包含文字的圖像區(qū)域,由于電力設(shè)備標(biāo)牌中的文字在字體、大小、對齊方式和排列上變化多端,文字背景復(fù)雜,而許多應(yīng)用場合還要求算法具有一定處理速度,這些都使得從其圖像中有效地提取文字變得困難,對其深入研究很有意義。電力設(shè)備標(biāo)牌圖像中有豐富的文字信息,對圖像中的文字信息的提取將是圖像處理方面研究的一個重要方向。在電力系統(tǒng)中,電力設(shè)備種類繁多,通過對設(shè)備圖像的采集,識別出電力設(shè)備標(biāo)牌的文字信息,建立設(shè)備信息圖文庫,對電力設(shè)備的年檢、統(tǒng)計等工作更加便捷、高效,對提高電力系統(tǒng)的設(shè)備管理水平非常重要。在電力管理上的技術(shù)需求越來越引起人們的關(guān)注和期待,而在此方向的技術(shù)研究目前還是一個空白點,因此,研究設(shè)備圖片中的字符識別技術(shù)具有廣泛的實際應(yīng)用價值和重要的學(xué)術(shù)意義。2相關(guān)技術(shù)研究現(xiàn)狀目前電力設(shè)備標(biāo)牌識別的研究還是一個空白點。其相關(guān)技術(shù)包括車牌識別技術(shù)和對圖像中的文字識別技術(shù)[1]。電氣標(biāo)牌字符的識別研究還很滯后,目前仍沒有相對成熟的系統(tǒng)。隨著電力系統(tǒng)的規(guī)模增大,電力設(shè)備也越來越多,怎樣管理維護這些設(shè)備,是我們現(xiàn)在需要努力研究并有待應(yīng)用的一門技術(shù)。當(dāng)前,圖像作為一種重要的可視化信息媒體,已被應(yīng)用到幾乎所有的科學(xué)技術(shù)領(lǐng)域和日常生活的各個方面。隨著圖像信息的快速增長,從海量的圖像資源中快速高效地提取并識別信息已成為人們迫切的需求。因此,20世紀(jì)90年代,基于內(nèi)容的圖像檢索(CBIR)[2]技術(shù)應(yīng)運而生,從可視化角度開辟了一條更為直觀、準(zhǔn)確的途徑,并很快成為智能信息處理領(lǐng)域的研究熱點。如今牌照定位是從一張圖片中找到標(biāo)牌的位置,將包括牌照的子圖像從這張圖片中切割出來。主要有邊緣特征法[3]、神經(jīng)網(wǎng)絡(luò)法[4,5]、基于灰度的檢測方法、基于數(shù)學(xué)形態(tài)學(xué)法、基于顏色的分割方法、基于區(qū)域特征的方法、小波變換的方法等。文字識別技術(shù)已經(jīng)廣泛應(yīng)用到了各個領(lǐng)域中,它作為計算機智能接口的重要組成部分,在信息處理領(lǐng)域中可以大大提高計算機的使用效率。字符識別的對象是漢字、字母和數(shù)字。我國牌照的獨有的特點是包括漢字的識別。漢字因為其結(jié)構(gòu)復(fù)雜,使得識別過程有別于數(shù)字和字母。目前主要的字符識別方法有:模板匹配法、統(tǒng)計特征字符識別法、結(jié)構(gòu)特征字符識別法、人工神經(jīng)網(wǎng)絡(luò)法。模板匹配對噪聲比較敏感,并對字符的字體變化具有不適應(yīng)的特點。基于統(tǒng)計特征的字符識別法對于形近字符區(qū)分能力弱,而且需要尋找特征,特征有時隨圖像變化而失效。結(jié)構(gòu)特征的描述和比較要占用大量的存儲和計算資源,因此算法在實現(xiàn)上相對復(fù)雜、識別速度慢。神經(jīng)網(wǎng)絡(luò)法也存在找尋特征和計算量大的問題。光學(xué)字符識別(OCR)技術(shù)是計算機自動、高速地辨別紙上的文字,并將其轉(zhuǎn)化為可編輯的文本的一項實用技術(shù)。它是新一代計算器智能接口的一個重要組成部分,也是模式識別領(lǐng)域的一個重要分支。因此,在電力標(biāo)牌的字符識別中,OCR技術(shù)也得到了廣泛的應(yīng)用,是其進行識別不可或缺的技術(shù)力量。Lienhart等[6,7]先后開發(fā)出兩個視頻中的文字檢測、分割和識別系統(tǒng)。這兩個系統(tǒng)都是利用文字的單色性相對于背景的高對比度和視頻字幕的簡單紋理來進行圖像分割。近幾年,國內(nèi)學(xué)者也開始關(guān)注并積極投身到電力設(shè)備標(biāo)牌的字符檢測領(lǐng)域來,但是都僅限于在進行基于內(nèi)容的多媒體檢索的研究時,附帶地介紹了圖像和視頻中的文字獲取,并沒有進行系統(tǒng)深入的研究,也沒有開發(fā)出相應(yīng)可行的系統(tǒng)。如何識別圖像中的文字仍然是一個有待研究解決的問題。3本課題主要內(nèi)容電力設(shè)備標(biāo)牌字符識別涉及到的技術(shù)和車牌識別技術(shù)有些相似處,車牌識別技術(shù)已經(jīng)較為成熟,但是,電力設(shè)備標(biāo)牌識別與之有很多不同之處。主要包括:(1)圖像的預(yù)處理技術(shù)。標(biāo)牌中有很多鋼印信息,通過二值化[8,9]提取標(biāo)牌特征時,需要完整的提取其特征量。而車牌上的信息在提取時不存在上述問題。(2)電力設(shè)備標(biāo)牌中的信息識別技術(shù)。標(biāo)牌中的字符很多,尤其是所涉及的漢字比較豐富,而車牌中字符構(gòu)成比較簡單。本文對電力系統(tǒng)中設(shè)備標(biāo)牌中的字符識別技術(shù)進行了研究,對設(shè)備標(biāo)牌中的字符識別系統(tǒng)的每一個模塊進行了研究及實現(xiàn)。電力設(shè)備圖片在識別前首先需要對圖像進行預(yù)處理,以更好的提取標(biāo)牌中的信息。其次,分割圖像。最后進行標(biāo)牌上的字符識別。因此,本課題主要研究內(nèi)容為:(一)電力設(shè)備標(biāo)牌的圖像預(yù)處理方法的研究。采集到的設(shè)備圖片不可避免的會受到噪聲的污染,需要對設(shè)備圖片進行處理以及修正,突出圖片中的標(biāo)牌信息,增強圖像,以便更好的進行字符識別。(二)分析電力設(shè)備標(biāo)牌特點,結(jié)合設(shè)備標(biāo)牌特點研究適合標(biāo)牌圖像的二值化方法。(三)研究邊緣檢測算子并對圖像進行邊緣檢測處理,分析實驗結(jié)果,并進行圖像的分割。(四)應(yīng)用光學(xué)字符識別(OCR)[12,13,14,15]技術(shù)和字符識別技術(shù)進行電力設(shè)備標(biāo)牌的識別[16,17,18,19]。在擬采用的研究手段上分別從設(shè)備圖像預(yù)處理、標(biāo)牌的二值化算法以及標(biāo)牌圖像的分割和字符的識別四個方面進行闡述:1)進行圖像的濾波處理、經(jīng)灰度直方圖灰度修正以及灰度圖像對比處理把我們感興趣的部分突出出來。2)為了進行有效的識別,采用閾值法進行標(biāo)牌圖像的二值化。通過對其標(biāo)牌二值化,提取標(biāo)牌圖像中的鋼印信息。3)進行標(biāo)牌圖像的邊緣檢測和分割。4)采用基于光學(xué)字符識別(OCR)的技術(shù)以及MATLAB軟件算法完成對標(biāo)牌字符的識別。2電力設(shè)備標(biāo)牌圖像預(yù)處理電力設(shè)備標(biāo)牌圖像由于背景的灰度值介于標(biāo)頭字符的灰度值和鋼印灰度值之間,所以用單一的一個閾值無法將標(biāo)頭字符和鋼印同時提取出來。為了進行有效的識別,首先需要對數(shù)字圖像進行處理。二維物理圖像被柵格劃分成小的區(qū)域,這些小的區(qū)域稱為數(shù)據(jù)元素(PictureElement),簡稱像素。對每個像素進行采樣和量化,得到相應(yīng)的整數(shù)值。這個值代表像素的明暗程度和顏色深淺等信息。每個引入噪聲。圖像可以分為二值圖像、灰度圖像、彩色圖像?;叶葓D像只含亮度信息,不含彩色信息。灰度值用8位(Bit)表示,從0到255,一共256級,從黑(0)到白(255)。二值圖像就只有代表黑白兩色的兩個灰度值,歸一化后灰度值是黑(0)到白(1)。彩色圖像每個像素值都有三個分量,分別表示紅色(R),綠色(G)和藍色(B)。每個分量又按各分量的灰度分為0到255共256級。根據(jù)RGB的不同組合就可以表示256×256×256種顏色,也就是常說的24位真彩色。2.1圖像的讀取clear;closeall;I=imread('bae.jpg');imshow(I);(結(jié)果見圖2(a))2.2去噪在圖像形成、傳輸或變換的過程中,由于受到其它客觀因素諸如系統(tǒng)噪聲、曝光不足或過量、相對運動等影響,獲取圖像往往會與原始圖像之間產(chǎn)生某種差異(稱為降質(zhì)或退化)。退化后的圖像通常模糊不清或者經(jīng)過機器提取的信息量減少甚至錯誤,因此必須對其采取一些手段進行改善。圖像增強技術(shù)正是在此意義上提出的,目的就是為了改善圖像的質(zhì)量。圖像增強根據(jù)圖像的模糊情況采用各種特殊的技術(shù)突出圖像中的某些信息,削弱或消除無關(guān)信息,達到強調(diào)圖像的整體或局部特征的目的。圖像增強尚沒有統(tǒng)一的理論方法。利用巴特沃斯(Butterworth)低通濾波器對受噪聲干擾的圖像進行平滑處理:I=imread('1.jpg');imshow(I);J1=imnoise(I,'salt&pepper');%疊加椒鹽噪聲figure,imshow(J1);f=double(J1);%數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號整型的計算g=fft2(f);%傅立葉變換g=fftshift(g);%轉(zhuǎn)換數(shù)據(jù)矩陣[M,N]=size(g);nn=2;%二階巴特沃斯(Butterworth)低通濾波器d0=50;m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%計算低通濾波器傳遞函數(shù)result(i,j)=h*g(i,j);endendresult=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));figure,imshow(J3);%顯示濾波處理后的圖像(結(jié)果見2(b),2(c))圖2圖2(b)加噪后圖像圖2(a)電力設(shè)備標(biāo)牌圖像 圖圖2(c)濾波后圖像2.3圖像的灰度化灰度圖像(grayimage)是每個像素只有一個采樣顏色的圖像,這類圖像通常顯示為從最暗黑色到最亮的白色的灰度,盡管理論上這個采樣可以任何顏色的不同深淺,甚至可以是不同亮度上的不同顏色?;叶葓D像與黑白圖像不同,在計算機圖像領(lǐng)域中黑白圖像只有黑色與白色兩種顏色;但是,灰度圖像在黑色與白色之間還有許多級的顏色深度?;叶葓D像經(jīng)常是在單個電磁波頻譜如可見光內(nèi)測量每個像素的亮度得到的,用于顯示的灰度圖像通常用每個采樣像素8位的非線性尺度來保存,這樣可以有256級灰度(如果用16位,則有65536級)。像素有兩個屬性:二維坐標(biāo)位置和像素值。位置由行和列兩格坐標(biāo)決定。像素值反映該點的亮度、顏色等信息,其主要形式是灰度,反映明暗程度。灰度值一般是整數(shù),其位數(shù)越長,像素值的取值范圍就越大,量化后的灰度階數(shù)就越多,也就是灰度分辨率越高,得到的圖像灰度變化越接近原始圖像。I=imread('bae.jpg');I2=rgb2gray(I);imshow(I);figure,imshow(I2);(見圖2(d))Stru=strel('disk',16);Back=imopen(I,Stru);(數(shù)學(xué)形態(tài)學(xué)開操作估計背景亮度)從原始圖像中減去背景圖像:I2=imsubtract(I,Back);figure,imshow(I2);(圖2(e))圖2圖2(e)減去背景顯示內(nèi)容后的圖圖2(d)灰度圖像2.4直方圖灰度級的直方圖是反映圖像中的灰度級與出現(xiàn)這種灰度的概率之間的關(guān)系的圖形。它給出了一幅圖像的概貌的描述,從直方圖中的灰度級分布還可以看出圖像的灰度分布特性。2.4.1顯示灰度直方圖:i=imread('bae.jpg');I1=rgb2gray(i);imhist(I1);(圖2(f))灰度變換法增強圖像對比度:J=imadjust(I1,[0.50.9],[01]);figure,imshow(J);(圖2(g))灰度變換后的直方圖:figure,imhist(J);(圖2(h))2.4.2直方圖均衡化:[J,T]=histeq(J3,64);擴展到255個,但是只有64個灰度級。figure,imshow(J);(圖2(i))圖2(圖2(g)變換后圖像圖2(f)直方圖圖2圖2(i)均衡化后圖像圖2(h)變換后圖像的直方圖figure,imhist(J);(圖2(j))轉(zhuǎn)移函數(shù)的變換曲線:figure,plot((0:255)/255,T);(圖2(k))J=histeq(J3,32);figure,imshow(J);擴展到255,但是只有32個灰度級。(圖2(l))圖2圖2(j)均衡化后直方圖圖2(k)轉(zhuǎn)移函數(shù)的變換曲線figure,imhist(J);(圖2(m))圖2圖2(l)均衡化后圖像005010015020025005001000150020002500300035004000圖圖2(m)均衡化后直方圖2.5種子填充技術(shù)種子填充和邊緣提取是一對可以互求的操作。知道區(qū)域可以求邊界,同樣,知道了邊界可以填充得到區(qū)域。也就是說,可以使用結(jié)構(gòu)元素通過對要填充的圖進行膨脹、求補和求交操作來實現(xiàn)種子填充。直觀地看,種子填充就是指定一個背景點作為起始點,不斷地把與之相連的背景點的值由0變1,知道達到物體的邊界。種子填充對去除圖像中不規(guī)則的形狀很有效。如一張照片中含有一個圓,但由于反光的原因,圖像看起來是一個圓環(huán)。在進一步處理之前,可以利用種子填充把圓環(huán)恢復(fù)成一個圓。MATLAB圖像處理工具箱中的imfill函數(shù)用來對目標(biāo)封閉圖像進行種子填充,它的語法格式為:BW=imfill(BW1,’holes’);它表示填充圖像的空洞,該空洞是邊緣圖像不能達到的圖像的像素的集合。此技術(shù)在后面的識別過程中有所應(yīng)用2.6本章小結(jié)在這一章,分別對圖像進行了去噪和直方圖均衡化等預(yù)處理。并且可以從結(jié)果看出,雖然去噪后的圖像效果并不是很明顯,但是在經(jīng)過直方圖均衡化以后的圖像中的字符信息最終能夠得到很好的清晰化處理,因此,這種預(yù)處理是有效可行的。3電力設(shè)備標(biāo)牌圖像的二值化及其分割3.1標(biāo)牌圖像的二值化二值化處理就是用計算出來的閾值把原始圖像分為對象和背景兩部分。二值化的閾值選取主要分為整體閾值法、局部閾值法和動態(tài)閾值法3類。閾值的選擇是一個比較復(fù)雜的問題。有的可以由計算機自動選擇,有的則需人工干預(yù)。二值圖像是指整幅圖像畫面內(nèi)僅有黑、白二值的圖像,在它們之間不存在其它灰度的變化。在數(shù)字圖像處理中,二值圖像占有非常重要的地位。在某些情況下圖像本身是有灰度的,我們也設(shè)法使它變成二值圖像再進行處理(即灰度圖像的二值化)。這是考慮到在實用的圖像處理系統(tǒng)中,要求處理的速度高、成本低、信息量大的濃淡圖像處理的花銷太大。此外,二值化后的圖像能夠用幾何學(xué)中的概念進行分析和特征描述,比灰度圖像優(yōu)勢大得多。二值化的方法有很多,但又沒有對任何對象都普遍適用的方法,必須根據(jù)具體的對象而定。二值化的關(guān)鍵是要找到合適的閾值t來區(qū)分目標(biāo)和背景。設(shè)原灰度圖像為QUOTE,二值化后的圖像為QUOTE,二值化的過程表示如下:QUOTE=QUOTE或者QUOTE=QUOTE還可以將閾值設(shè)置為一個灰度范圍[t1,t2]。凡是灰度在范圍內(nèi)的圖像灰度級都變成1,其它像素灰度級都變?yōu)?,那么二值化后的圖像QUOTE為:QUOTE=QUOTE由以上二值化公式可以看出,閾值的選取直接影響處理的結(jié)果。如果閾值選得過高或過低,會出現(xiàn)兩種相反的情況:一是過多的目標(biāo)被誤認(rèn)為是背景;二是影響二值化后圖像中的目標(biāo)的大小和形狀,甚至?xí)鼓繕?biāo)丟失。二值化效果的好壞直接影響到系統(tǒng)的性能。目前提出了好多算法。大體上有全閾值法和局部閾值法。閾值的選擇方法主要有:最小誤差法、最大方差法、平均灰度值法。其中最小誤差法包括P-tile方法和雙峰(2—Mode)方法。P-tile預(yù)先給定t,當(dāng)灰度值大于或等于m的象素占全體象素的比率為t時,取m為閾值;某圖像的直方圖具有2個峰:一個為背景,另一個為對象,分割兩個區(qū)域的閾值m由兩個峰值的谷對應(yīng)的灰度值決定,通常把這種閾值的選擇叫做2-Mode方法。全閾值法是指對整幅圖選取單一的閾值來進行二值化。局部閾值法是根據(jù)局部信息確定局部閾值來二值化圖像。目前對電力標(biāo)牌圖像的處理與識別的研究比較少。標(biāo)牌圖像有其自身的特點,對其特點的分析將有助于對電力標(biāo)圖像的處理和識別。標(biāo)牌圖像具有以下幾個特點:(1)標(biāo)牌上的字符信息包括漢字、字母以及數(shù)字,字符種類較多。(2)標(biāo)牌上有體現(xiàn)設(shè)備指標(biāo)的鋼印信息,其灰度值較高。1)閾值二值化圖像J=find(I<125);I(J)=0;J=find(I>=125);I(J)=255;title('圖像二值化(域值為125)');figure(2),imshow(I);(圖3(a))clc;I=imread('bae.jpg');bw=im2bw(I,0.5);選取閾值為0.5figure(3);imshow(bw);顯示二值圖像(圖3(b))2)采取全閾值方法進行二值化:i=imread('bae.png');level=graythresh(i);BW=im2bw(i,level);figure,imshow(BW)(圖3(c))圖3圖3(b)閾值二值化圖像圖3(a)閾值二值化后圖像3)采用雙閾值法進行二值化:wmf10=imread('1.jpg');%讀取圖像wmf1=wmf10(:,:,1);%由于是灰度圖像,三個頁面相同,故只對第一頁面數(shù)據(jù)操作figure(1);subplot(121);imagesc(wmf1);colormap(gray);%顯示原圖象h=fspecial('average',3);wmf1_filted=uint8(round(filter2(h,wmf1)));%均值濾波th1=0.94*max(max(wmf1));%確定閾值th1wmf1th1=(wmf1_filted>th1);%按閾值th1二值化[wmf1th1_labelnumth1_label]=bwlabel(wmf1th1,8);rc=zeros(2,numth1_label);%選擇種子點坐標(biāo)fori=1:numth1_label[rc]=find(wmf1th1_label==i);rc(1,i)=r(2);rc(2,i)=c(2);endr=rc(1,:);c=rc(2,:);coe=1.4;th2=mean2(wmf1)+coe*std2(wmf1);%確定閾值th2wmf1th2=(wmf1>th2);%按閾值th2二值化wmf1th2_select=bwselect(wmf1th2,c,r,8);%保留含有種子點的前景區(qū)域subplot(122);imagesc(wmf1th2_select);colormap(gray);(圖3(d))圖3(d)圖3(d)雙閾值后圖像圖圖3(c)全閾值后圖像以上結(jié)果可以看出:標(biāo)牌采用雙閾值的結(jié)果并沒有全閾值的效果好,因此,采用全閾值圖像進行后一階段分割和識別。3.2邊緣檢測圖像的邊緣是指圖像局部區(qū)域亮度變化顯著的部分。該區(qū)域的灰度剖面一般可以看作一個階躍,即從一個灰度值在很小的緩沖區(qū)域內(nèi)急劇變化到另一個灰度相差較大的灰度值。圖像的邊緣部分集中了圖像的大部分信息,圖像邊緣的確定與提取對于整個圖像場景的識別與理解是非常重要的,同時也是圖像分割所依賴的重要特征。邊緣檢測主要是圖像的灰度變化的度量、檢測和定位,自從1959提出邊緣檢測以來,經(jīng)過五十多年的發(fā)展,已有許多種不同的邊緣檢測方法。邊緣檢測的基本思想是先利用邊緣增強算子,突出圖像中的局部邊緣,然后定義像素的“邊緣強度”,通過設(shè)置閾值的方法提取邊緣點集。但是由于噪聲和圖像模糊,檢測到的邊界可能會有間斷的情況發(fā)生。所以邊緣檢測包含以下兩項內(nèi)容:1)用邊緣算子提取邊緣點集。2)在邊緣點集合中去除某些邊緣點,填充一些邊緣點,將得到的邊緣點集連接為線。一、圖像邊緣檢測的基本步驟:(1)濾波。邊緣檢測算法主要是基于圖像強度的一階和二階導(dǎo)數(shù),但導(dǎo)數(shù)的計算對噪聲很敏感,因此必須使用濾波器來改善與噪聲有關(guān)的邊緣檢測器的性能。需要指出的是,大多數(shù)濾波器在降低噪聲的同時也導(dǎo)致了邊緣強度的損失。因此,增強邊緣和降低噪聲之間需要折中。邊緣檢測主要基于導(dǎo)數(shù)計算,但受噪聲影響。而濾波器在降低噪聲的同時也導(dǎo)致邊緣強度的損失。(2)增強。增強邊緣的基礎(chǔ)是確定圖像各點鄰域強度的變化值。增強算法可以將鄰域(或局部)強度值有顯著變化的點突顯出來。邊緣增強一般是通過計算梯度幅值來完成的。增強算法將鄰域中灰度有顯著變化的點突出顯示。一般通過計算梯度幅值完成。(3)檢測。在圖像中有許多點的梯度幅值比較大,而這些點在特定的應(yīng)用領(lǐng)域中并不都是邊緣,所以應(yīng)該用某種方法來確定哪些點是邊緣點。最簡單的邊緣檢測判據(jù)是梯度幅值閾值判據(jù)。但在有些圖像中梯度幅值較大的并不是邊緣點。最簡單的邊緣檢測是梯度幅值閾值判定。(4)定位。如果某一應(yīng)用場合要求確定邊緣位置,則邊緣的位置可在子像素分辨率上來估計,邊緣的方位也可以被估計出來。二、Canny算子邊緣檢測基本原理(1)圖像邊緣檢測必須滿足兩個條件:一是能有效地抑制噪聲;二是必須盡量精確確定邊緣的位置。(2)根據(jù)對信噪比與定位乘積進行測度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測算子。(3)先平滑后求導(dǎo)數(shù)的方法。三、Canny算子邊緣檢測算法(1)用高斯濾波器平滑圖像。(2)用一階偏導(dǎo)的有限差分來計算梯度的幅值和方向。(3)對梯度幅值進行非極大值抑制。(4)用雙閾值算法檢測和連接邊緣。Canny算子檢測邊緣的方法是尋找圖像梯度的局部極大值,梯度是用高斯濾波器的導(dǎo)數(shù)計算的。Canny方法使用兩個閾值來分別檢測強邊緣和弱邊緣,而且僅當(dāng)弱邊緣與強邊緣相連時,弱邊緣才會包含在輸出中。因此,此方法不容易受噪聲的干擾,能夠檢測到真正的弱邊緣。四、使用canny算子進行邊緣檢測:clear;closeall;i=imread('bae.bmp');imshow(i);Threshold=graythresh(i);BW=im2bw(i,Threshold);figure,imshow(BW);i=imread('bae.bmp');BW1=edge(BW,'canny',0.2);figure,imshow(BW1);(圖3(e))圖像取反:figure,imshow(~BW1);(圖3(f))圖3圖3(f)邊緣檢測取反圖3(e)canny算子邊緣檢測3.3電力設(shè)備標(biāo)牌的圖像分割3.3.1閾值分割:I3=im2bw(I2,140/255);figure,imshow(I3);(圖3(g))圖3圖3(g)閾值分割1.Hough變換Hough變換是圖像處理中從圖像中識別幾何形狀的基本方法之一。Hough變換的基本原理在于利用點與線的對偶性,將原始圖像空間的給定的曲線通過曲線表達形式變?yōu)閰?shù)空間的一個點。這樣就把原始圖像中給定曲線的檢測問題轉(zhuǎn)化為尋找參數(shù)空間中的峰值問題。也即把檢測整體特性轉(zhuǎn)化為檢測局部特性。比如直線、橢圓、圓、弧線等。2.Hough變換的基本思想設(shè)已知一黑白圖像上畫了一條直線,要求出這條直線所在的位置。我們知道,直線的方程可以用y=k*x+b來表示,其中k和b是參數(shù),分別是斜率和截距。過某一點(x0,y0)的所有直線的參數(shù)都會滿足方程y0=kx0+b。即點(x0,y0)確定了一族直線。方程y0=kx0+b在參數(shù)k--b平面上是一條直線,(你也可以是方程b=-x0*k+y0對應(yīng)的直線)。這樣,圖像x--y平面上的一個前景像素點就對應(yīng)到參數(shù)平面上的一條直線。我們舉個例子說明解決前面那個問題的原理。設(shè)圖像上的直線是y=x,我們先取上面的三個點:A(0,0),B(1,1),C(22)??梢郧蟪?,過A點的直線的參數(shù)要滿足方程b=0,過B點的直線的參數(shù)要滿足方程1=k+b,過C點的直線的參數(shù)要滿足方程2=2k+b,這三個方程就對應(yīng)著參數(shù)平面上的三條直線,而這三條直線會相交于一點(k=1,b=0)。同理,原圖像上直線y=x上的其它點(如(3,3),(4,4)等)對應(yīng)參數(shù)平面上的直線也會通過點(k=1,b=0)。這個性質(zhì)就為我們解決問題提供了方法,就是把圖像平面上的點對應(yīng)到參數(shù)平面上的線,最后通過統(tǒng)計特性來解決問題。假如圖像平面上有兩條直線,那么最終在參數(shù)平面上就會看到兩個峰值點,依此類推。簡而言之,Hough變換思想為:在原始圖像坐標(biāo)系下的一個點對應(yīng)了參數(shù)坐標(biāo)系中的一條直線,同樣參數(shù)坐標(biāo)系的一條直線對應(yīng)了原始坐標(biāo)系下的一個點,然后,原始坐標(biāo)系下呈現(xiàn)直線的所有點,它們的斜率和截距是相同的,所以它們在參數(shù)坐標(biāo)系下對應(yīng)于同一個點。這樣在將原始坐標(biāo)系下的各個點投影到參數(shù)坐標(biāo)系下之后,看參數(shù)坐標(biāo)系下有沒有聚集點,這樣的聚集點就對應(yīng)了原始坐標(biāo)系下的直線。3.Hough變換:程序見附錄A,結(jié)果圖如下圖3(h)參數(shù)空間:圖圖3(h)Hough變換參數(shù)空間3.3.2圖像分割:i=I(35+[1:42],1:355,:);figure;imshow(i);(圖3(1)i=I(84+[1:20],1:268,:);figure;imshow(i);(圖3(2))i=I(84+[1:20],268:420,:);figure;imshow(i);(圖3(3))i=I(102+[1:19],1:268,:);figure;imshow(i);(圖3(4))依此方法,可以把此電力設(shè)備標(biāo)牌分割成很多各自獨立又簡單的小模塊,依次為如下結(jié)果(圖3(5)、3(6)、3(7)、3(8)):圖3圖3(2)分割結(jié)果2圖3(1)分割結(jié)果1圖3(3)圖3(3)分割結(jié)果3圖圖3(4)分割結(jié)果4圖3(圖3(6)分割結(jié)果6圖3(5)分割結(jié)果5圖3(8圖3(8)分割結(jié)果8圖3(7)分割結(jié)果7對其中模塊需要的具體數(shù)字等分割開來,用以分別識別:i=I(6+[1:15],1:20,:);figure;imshow(i);圖3(10)字母分割結(jié)果圖3圖3(10)字母分割結(jié)果圖3(8)分割數(shù)字結(jié)果圖3(9)分割數(shù)字結(jié)果在圖像的分割階段,雖然Hough變換的結(jié)果并不理想,但是不予采用的情況下還是得到了比較理想的分割結(jié)果,為后來的字符識別必要的好的基礎(chǔ)。3.4本章小結(jié)在本章中,對電力設(shè)備標(biāo)牌圖像進行了二值化以及圖像的分割。雖然采用了預(yù)計比較理想的雙閾值法進行了二值化,但是結(jié)果并沒有全閾值的結(jié)果好,因此,對于此圖像,采用全閾值才是最可行的二值化方法。邊緣檢測過程采用了性能最好的Canny算子進行,并且結(jié)果良好。圖像分割過程只是采用了簡單的MATLAB算法,結(jié)果即可得到,因此,即使Hough變換非常不適合此圖像沒有提取出適合的直線特征,還是可以從處理的比較好的圖像中直接分割出有效的字符圖像。4電力設(shè)備標(biāo)牌的字符識別4.1OCR軟件識別一、OCR簡介所謂OCR(OpticalCharacterRecognition光學(xué)字符識別)技術(shù),是指電子設(shè)備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。即,對文本資料進行掃描,然后對圖像文件進行分析處理,獲取文字及版面信息的過程。由于OCR是一門與識別率拔河的技術(shù),因此如何除錯或利用輔助信息提高識別正確率,是OCR最重要的課題。OCR識別率決定因素:1.圖片的質(zhì)量,一般建議150dpi以上。2.顏色,一般對彩色識別很差,黑白的圖片較高,因此建議ocr的為黑白tif格式。3.最重要的就是字體,如果是手寫識別率很低。近期,一些大公司意識到OCR的好處,開始在自己的產(chǎn)品中捆綁OCR技術(shù)。Google已經(jīng)啟動OCR軟件的開發(fā)工作,在它的招聘啟示中這樣寫道:“Googlecurrently"reads"almosteverywebpageintheworld.Comehelpusreadalltheprintedmaterialaswell!”(Google現(xiàn)在已經(jīng)能夠“閱讀”世界上幾乎所有網(wǎng)頁,你的到來將讓Google閱讀所有印刷信息!)。隨著google啟動OCR開發(fā)工作,OCR應(yīng)用進入了全面爆發(fā)時代。二、OCR對電力設(shè)備標(biāo)牌圖像的識別結(jié)果:讀取圖像以及識別結(jié)果:圖4.2OCR識別效果圖4.1OCR圖4.2OCR識別效果圖4.1OCR讀取圖像由以上結(jié)果可以初步看出,OCR只是對漢字的識別比較敏感,加上OCR對黑白顏色識別結(jié)果較好,可以接著把二值圖像分割的小模塊進行分別識別。圖4.5識別3圖4.5識別3圖4.4識別圖4.4識別2圖4.3識別1圖4.8識別6圖4.6識別4圖圖4.8識別6圖4.6識別4圖4.7識別54.2數(shù)字識別針對標(biāo)牌圖片中的數(shù)字進行識別采用軟件MATLAB算法根據(jù)數(shù)字輪廓特征識別來實現(xiàn)。由于受噪聲和隨機污點的干擾,以及二值化和粘連字符處理會引起字符的變形。為了盡量減少這種變形對信息特征的干擾,或者從變形的字符中提取可靠的特征信息,將字符的整體輪廓分解為頂部、底部、左側(cè)和右側(cè)4個方向的輪廓特征來描述,使得當(dāng)其中某部位的筆劃發(fā)生變形時,不會改變或者減少對其他部位特征的影響。(1)字符輪廓定義左輪廓(LP(k),k=1,2,…,M)定義為字符最左側(cè)邊界像素點的水平方向坐標(biāo)值。同理,右側(cè)輪廓(RP(k),k=1,2,…,M)定義為字符最右側(cè)邊界像素點的水平方向坐標(biāo)值。相應(yīng)地,頂部輪廓(TP(k),k=1,2,…,N)定義為字符最高邊界像素點的垂直方向坐標(biāo)值。底部輪廓(BP(k),k=1,2,…,N)定義為字符最低邊界像素點的垂直方向坐標(biāo)值。(2)結(jié)構(gòu)基元以及基元的檢測基元共有5個分別為:左斜(L)、右斜(R)、豎直(V)、圓弧(C)和突變(P)。假設(shè)PD(k)表示某側(cè)輪廓的一階微分,k=1,2,…,K,SL,SV和SR分別為檢測到的PD(k)大于零,等于零和小于零的個數(shù),PT、RT和LT為正整數(shù),則:若PD(k)≥PT,則在k處檢測到結(jié)構(gòu)突變(P);若SL<LT,SR<RT,則檢測到結(jié)構(gòu)為豎直(V);若SL>LT,SR<RT,則檢測到結(jié)構(gòu)為左斜(L);若SL<LT,SR>RT,則檢測到結(jié)構(gòu)為右斜(R);若SL>LT,SR>RT,則檢測到結(jié)構(gòu)為圓?。–)。(3)數(shù)字字符的識別算法將數(shù)字字符的頂部、左右兩側(cè)的局部輪廓結(jié)構(gòu)特征和輪廓統(tǒng)計特征組合成特征向量,用以描述10個數(shù)字。根據(jù)特征向量,采用結(jié)構(gòu)語句識別算法識別底部殘缺和完整的數(shù)字字符。由于底部特征丟失,會改變左右兩側(cè)的部分結(jié)構(gòu)特征,但不會影響頂部特征,因此特征描述和結(jié)構(gòu)匹配都從頂部輪廓特征開始。局部結(jié)構(gòu)輪廓特征和統(tǒng)計特征描述數(shù)字:0:TS=C,Size(LS)=Size(RS)=1;S2<M-ST。式中,Size()表示結(jié)構(gòu)集合中有幾個結(jié)構(gòu)元素。1:Wmax≤H/2。2:TS=C,LS(1)≠C,LS(Ln-1)=P,LS(Ln)=L。式中,Ln表示左側(cè)輪廓的結(jié)構(gòu)元素個數(shù)。3:TS=C,LS(1)≠C,P∈LS;或TS=V,RS=C。4:TS(1)=L,P∈TS,RS=V。5:TS=V,P∈RS。6:TS=C,P∈RS,Size(LS)=1;或TS(1)=L,VRS。7:TS=V,P∈LS,Size(RS)=1。8:TS=C,Size(LS)=Size(RS)=1;S2>M-ST。9:TS=C,LS(1)=C,LS(2)=P。(4)MATLAB在圖像處理方面的應(yīng)用MATLAB軟件功能強大,語言簡潔易學(xué),人機界面友好,工具箱具有豐富的技術(shù)支持。MATLAB可以進行圖像的讀取、圖像格式的轉(zhuǎn)換、圖像增強、直方圖的顯示和均勻化以及邊緣檢測甚至字符的識別。以下是對數(shù)字字符的識別結(jié)果,其程序參見附錄B、C。圖4(c)上輪廓圖圖4(c)上輪廓圖4(b)左輪廓圖4(a)讀取字符4圖4(d)右輪廓圖4(e)寬度圖4(d)右輪廓圖4(e)寬度圖4(f)圖4(f)二值化圖4(f)種子填充程序識別結(jié)果:Digit=4t=0.04374.3GUI界面設(shè)計4.3.1GUI介紹1.定義圖形用戶界面(GraphicalUserInterface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受。如Windows是以圖形界面方式操作的,因為你可以用鼠標(biāo)來點擊按鈕來進行操作,很直觀。而DOS就不具備GUI,所以他只能輸入命令。DOS的這種界面叫CUI(CommandlineUserInterface)命令行模式的人機接口。GUI是GraphicalUserInterface的簡稱,即圖形用戶界面,通常人機交互圖形化用戶界面設(shè)計經(jīng)常讀做“goo-ee”,準(zhǔn)確來說GUI就是屏幕產(chǎn)品的視覺體驗和互動操作部分。GUI是一種結(jié)合計算機科學(xué)、美學(xué)、心理學(xué)、行為學(xué),及各商業(yè)領(lǐng)域需求分析的人機系統(tǒng)工程,強調(diào)人—機—環(huán)境三者作為一個系統(tǒng)進行總體設(shè)計。2.GUI特點介紹GUI的廣泛應(yīng)用是當(dāng)今計算機發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用,人們從此不再需要死記硬背大量的命令,取而代之的是可以通過窗口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型、占用資源少、高性能、高可靠性、便于移植、可配置等特點。在應(yīng)用上,減少用戶的認(rèn)知負(fù)擔(dān),保持界面的一致性,滿足不同目標(biāo)用戶的創(chuàng)意需求,用戶界面友好性,圖標(biāo)識別平衡性,圖標(biāo)功能的一致性,建立界面與用戶的互動交流。3.GUI的組成部分1.桌面在啟動時顯示,也是界面中最底層,有時也指代包括窗口、文件瀏覽器在內(nèi)的“桌面環(huán)境”。在桌面上由于可以重疊顯示窗口,因此可以實現(xiàn)多任務(wù)化。一般的界面中,桌面上放有各種應(yīng)用程序和數(shù)據(jù)的圖標(biāo),用戶可以依此開始工作。桌面與既存的文件夾構(gòu)成里面相違背,所以要以特殊位置的文件夾的參照形式來定義內(nèi)容。比如在微軟公司的WindowsXP系統(tǒng)中,各種用戶的桌面內(nèi)容實際保存在系統(tǒng)盤(默認(rèn)為C盤):\DocumentsandSettings\[用戶名]\桌面文件夾里。墻紙,即桌面背景。可以設(shè)置為各種圖片和各種附件,成為視覺美觀的重要因素之一。2.視窗應(yīng)用程序為使用數(shù)據(jù)而在圖形用戶界面中設(shè)置的基本單元。應(yīng)用程序和數(shù)據(jù)在窗口內(nèi)實現(xiàn)一體化。在窗口中,用戶可以在窗口中操作應(yīng)用程序,進行數(shù)據(jù)的管理、生成和編輯。通常在窗口四周設(shè)有菜單、圖標(biāo),數(shù)據(jù)放在中央。在窗口中,根據(jù)各種數(shù)據(jù)/應(yīng)用程序的內(nèi)容設(shè)有標(biāo)題欄,一般放在窗口的最上方,并在其中設(shè)有最大化、最小化(隱藏窗口,并非消除數(shù)據(jù))、最前面、縮進(僅顯示標(biāo)題欄)等動作按鈕,可以簡單地對窗口進行操作。3.單一文件界面在窗口中,一個數(shù)據(jù)在一個窗口內(nèi)完成的方式。在這種情況下,數(shù)據(jù)和顯示窗口的數(shù)量是一樣的。若要在其他應(yīng)用程序的窗口使用數(shù)據(jù),將相應(yīng)生成新的窗口。因此窗口數(shù)量多,管理復(fù)雜。4.多文件界面在一個窗口之內(nèi)進行多個數(shù)據(jù)管理的方式。這種情況下,窗口的管理簡單化,但是操作變?yōu)殡p重管理。5.標(biāo)簽多文件界面的數(shù)據(jù)管理方式中使用的一種界面,將數(shù)據(jù)的標(biāo)題在窗口中并排,通過選擇標(biāo)簽標(biāo)題顯示必要的數(shù)據(jù),這樣使得接入數(shù)據(jù)方式變得更為便捷。上述中,多文件界面主要是微軟視窗系統(tǒng)采用。而在其他環(huán)境中,通常多是單文件界面,所以無所謂單一/多文件界面的稱呼問題。6.菜單將系統(tǒng)可以執(zhí)行的命令以階層的方式顯示出來的一個界面。一般置于畫面的最上方或者最下方,應(yīng)用程序能使用的所有命令幾乎全部都能放入。重要程度一般是從左到右,越往右重要度越低。命定的層次根據(jù)應(yīng)用程序的不同而不同,一般重視文件的操作、編輯功能,因此放在最左邊,然后往右有各種設(shè)置等操作,最右邊往往設(shè)有幫助。一般使用鼠標(biāo)的第一按鈕進行操作。即時菜單(又稱功能表)與應(yīng)用程序準(zhǔn)備好的層次菜單不同,在菜單欄以外的地方,通過鼠標(biāo)的第二按鈕調(diào)出的菜單稱為“即時菜單”。根據(jù)調(diào)出位置的不同,菜單內(nèi)容即時變化,列出所指示的對象目前可以進行的操作。7.圖標(biāo)顯示在管理數(shù)據(jù)的應(yīng)用程序中的數(shù)據(jù),或者顯示應(yīng)用程序本身。數(shù)據(jù)管理程序,即在文件夾中用戶數(shù)據(jù)的管理、進行特定數(shù)據(jù)管理的程序的情況下,數(shù)據(jù)通過圖標(biāo)顯示出來。通常情況下顯示的是數(shù)據(jù)的內(nèi)容或者與數(shù)據(jù)相關(guān)聯(lián)的應(yīng)用程序的圖案。另外,點擊數(shù)據(jù)的圖標(biāo),一般可以之間完成啟動相關(guān)應(yīng)用程序以后再顯示數(shù)據(jù)本身這兩個步驟的工作。應(yīng)用程序的圖標(biāo)只能用于啟動應(yīng)用程序。8.按鈕菜單中,利用程度高的命令用圖形表示出來,配置在應(yīng)用程序中,稱為按鈕。應(yīng)用程序中的按鈕,通常可以代替菜單。一些使用程度高的命令,不必通過菜單一層層翻動才能調(diào)出,極大提高了工作效率。但是,各種用戶使用的命令頻率是不一樣的,因此這種配置一般都是可以由用戶自定義編輯。4.3.2針對電力設(shè)備標(biāo)牌字符識別的GUI界面設(shè)計建立一個簡單的讀取圖像、簡單的處理圖像以及結(jié)果顯示的GUI界面,用以顯示電力設(shè)備標(biāo)牌圖像、灰度處理圖像、邊緣檢測圖像以及識別結(jié)果。如下圖:圖4(g)GUI文件界面圖4(g)GUI文件界面圖4(h)GUI回調(diào)程序界面圖4(h)GUI回調(diào)程序界面圖4(i)圖4(i)GUI界面漢字識別圖4(j)圖4(j)GUI界面數(shù)字識別4.4本章小結(jié)在本階段的識別過程中,由于現(xiàn)在的OCR軟件已經(jīng)很成熟,所以可以很方便的直接應(yīng)用,但是由于其只對漢字比較敏感,也得到了很好的漢字識別效果。故漢字以外的字符需要通過其他的技術(shù)進行識別。本文采用MATLAB算法進行數(shù)字字符的識別,由于數(shù)字的識別需要進行很詳細并嚴(yán)謹(jǐn)?shù)妮喞獧z測,故在數(shù)字4的識別過程由于輪廓的模糊缺陷導(dǎo)致識別結(jié)果會出現(xiàn)錯誤,把4識別成6等其他的數(shù)字。所以在此識別過程中,又加上了神經(jīng)網(wǎng)絡(luò)的種子填充技術(shù)把數(shù)字4的那個沒有連接閉合的地方填充完整,即可獲得正確的識別結(jié)果??偨Y(jié)在本文里,詳細介紹了電力設(shè)備標(biāo)牌識別系統(tǒng)的各個模塊。分析了電力設(shè)備標(biāo)牌識別的重要性。電力設(shè)備標(biāo)牌識別的研究目前還很空洞。通過對其相關(guān)技術(shù)(主要是車牌識別系統(tǒng))的借鑒,搭建了電力設(shè)備標(biāo)牌識別系統(tǒng)。分析設(shè)備標(biāo)牌的特點,對系統(tǒng)的每個模塊給出了相應(yīng)的處理技術(shù)。本論文工作概況:(一)在設(shè)備圖像預(yù)處理階段,由于采集到的設(shè)備標(biāo)牌圖像不可避免的受到噪聲的污染,通過圖像預(yù)處理技術(shù),可以將感興趣的部分突出出來,起到圖像增強的作用。本文對電力設(shè)備標(biāo)牌圖像進行了去噪并通過直方圖的均衡化處理得到了很好的圖像結(jié)果。(二)對電力設(shè)備標(biāo)牌進行二值化和圖像的分割,雖然雙閾值法可以很好的提取鋼印信息,但是得出的最后圖像并不理想,因此并不適合本圖像,采用全閾值二值化后的圖像卻得到了很好的效果,因此本文選擇了全閾值法。采用canny算子進行邊緣檢測。邊緣是指圖像局部強度變化最顯著的部分,是后面的圖像分割的重要基礎(chǔ)。選取最優(yōu)的canny算子并得到了比較清晰有效的結(jié)果圖像。在Hough變換過程中,Hough變換的結(jié)果很混亂,所以在圖像已經(jīng)達到識別要求前提的情況下便不予以采用。(三)最后的識別分別使用了OCR技術(shù)和MATLAB分別針對漢字和數(shù)字識別。然而在本文里,在數(shù)字識別過程中,由于單個的數(shù)字字符并不是很理想的精確識別對象,因此,還根據(jù)實際需要,對其采取了神經(jīng)網(wǎng)絡(luò)的種子填充技術(shù),并得到了想要的識別結(jié)果。由于時間關(guān)系和本人的能力有限,標(biāo)牌上的字母信息由于涉及并應(yīng)用到神經(jīng)網(wǎng)絡(luò)的有關(guān)識別技術(shù),沒有識別。希望在以后的不斷學(xué)習(xí)過程中,把字母字符的識別彌補上,并爭取把整個字符識別系統(tǒng)做的更好。附錄AHough變換:i=imread('bae.jpg');Threshold=graythresh(i);BW=im2bw(i,Threshold);figure,imshow(BW);BW_long=size(BW,1);BW_width=size(BW,2);BW_edge=edge(BW,'robert');BW_hough=zeros(300,300);%創(chuàng)造一個300*300的矩陣theta_step=3.14*2/299;theta=0:theta_step:2*3.14;x_max=1;x_min=1;y_max=1;y_min=1;forx=1:BW_longfory=1:BW_widthifBW_edge(x,y)==1x_max=max(x_max,x);x_min=min(x_min,x);y_max=max(y_max,y);y_min=min(y_min,y);endendendp_min=sqrt(x_min^2+y_min^2);%開平方p_max=sqrt(x_max^2+y_max^2);p_step=2*p_max/299;p=-p_max:p_step:p_max;forx=1:BW_longfory=1:BW_widthifBW_edge(x,y)==1%對于邊緣點進行累加rou=x.*cos(theta)+y.*sin(theta);w=fix(rou./p_step)+151;l=fix(1+theta./theta_step);n=300.*(l-1)+w;BW_hough(n)=BW_hough(n)+1;endendendm=max(max(BW_hough));BW_hough=(BW_hough./m);imshow(BW_hough)附錄B字符識別子程序:function[Stroke]=StrDetect01(LeftD,Y1,Y2,ST,PT)%ST為結(jié)構(gòu)閾值,為了指定高度和寬度結(jié)構(gòu)變化的不同SL=0;SR=0;SV=0;Count=0;%PT=5;%突變的閾值Str='T';%T表示結(jié)構(gòu)未定,Str用于保存當(dāng)前的基本結(jié)構(gòu)Stroke='T';%用于保存基本結(jié)構(gòu)Range=Y2-Y1+1;%字符的寬度或者高度forj=Y1:Y2Count=Count+1;if(abs(LeftD(j))<PT)if(LeftD(j)<0)SL=SL+1;elseif(LeftD(j)>0)SR=SR+1;elseSV=SV+1;endendelse%檢測到突變的決策if((Count>=fix(Range/4)+1))%設(shè)定字符輪廓可能發(fā)生的突變范圍if((SL>=3)&&(SR>=3))Str='C';elseif((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))Str='V';elseif((SL>SR)&&((SL>=0.5*SV)&&((SR<=1)||(SL>(SR+SV)))))Str='L';elseif((SR>SL)&&((SR>=0.5*SV)&&((SL<=1)||(SL>(SR+SV)))))Str='R';elseif(max(SL,SR)>=3)&&(min(SL,SR)>=2)Str='C';endendendendendStroke=[StrokeStr];endif((j>=2+Y1)&&((j<=Y2-2)))Stroke=[Stroke'P'];endSL=0;SR=0;SV=0;Count=0;Str='T';endend%=========提取結(jié)構(gòu)===============%if(Count>=fix(Range/4)+1)%發(fā)生突變后,剩余部分可能無法形成字符結(jié)構(gòu)if((SL>=ST)&&(SR>=ST))Str='C';elseif((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))Str='V';elseif((SL>SR)&&((SL>=0.5*SV)&&((SR<=2)||(SL>=(SR+SV)))))Str='L';elseif((SR>SL)&&((SR>=0.5*SV)&&((SL<=2)||(SL>=(SR+SV)))))Str='R';elseif(max(SL,SR)>=3)&&(min(SL,SR)>=2)Str='C';endendendendendStroke=[StrokeStr];end輪廓結(jié)構(gòu)特征提?。篺unction[Numeral]=Recognition(StrokeTop,StrokeLeft,StrokeRight,StrokeBottom,Comp)%采用四邊的輪廓結(jié)構(gòu)特征和筆劃統(tǒng)計(僅針對0和8)識別殘缺數(shù)字%Comp是用于識別0和8的底部補充信息StrT='T';StrL='T';StrR='T';StrB='T';RStr='T';%用于保存識別出的數(shù)字[tempXT]=size(StrokeTop);[tempXL]=size(StrokeLeft);[tempXR]=size(StrokeRight);%[tempXB]=size(StrokeBottom);forTi=2:XTif(StrokeTop(Ti)=='C')if((XL==2)&&(XR==2))if((Comp>=3)||((StrokeBottom(2)~='C')&&(StrokeLeft(2)=='C')&&(StrokeRight(2)=='C')))RStr='8';elseRStr='0';endelseif((StrokeLeft(XL)=='L')&&(StrokeLeft(XL-1)=='P')&&(StrokeLeft(2)~='C'))RStr='2';elseif((StrokeLeft(2)=='C')&&(XL>=3)&&(StrokeLeft(3)=='P'))RStr='9';elseif(XL>2)forLi=2:XLif(StrokeLeft(Li)=='P')RStr='3';endendelseif(XL==2)forRi=2:XR-1if(StrokeRight(Ri)=='P')RStr='6';endendendendendendendelseif(StrokeTop(Ti)=='V')%Topif((XR==2)&&(StrokeRight(2)=='C'))%數(shù)字3右端只有一個結(jié)構(gòu)RStr='3';elseif((XR==2)&&((StrokeLeft(2)=='P')||(StrokeLeft(3)=='P')||(StrokeLeft(XL)=='V')))RStr='7';elseif(XR>2)forRi=2:XRif(StrokeRight(Ri)=='P')RStr='5';endendendendendelseif((StrokeTop(Ti)=='L'))%Topif((StrokeRight(XR)=='V')&&(XR<=2))RStr='4';elseforRi=2:XRif((StrokeRight(Ri)=='L')||(StrokeRight(Ri)=='C'))RStr='6';endendendendend%對應(yīng)于'V'end%對應(yīng)于'C'end%對應(yīng)于第一個for循環(huán)Numeral=RStr;附錄C字符識別程序:i=imread('41.jpg');Threshold=graythresh(i);I0=im2bw(i,Threshold);figure,imshow(I0);BW5=~I0;figure,imshow(BW5);I1=imfill(BW5,'holes');figure,imshow(I1);I=~I1;[y0x0]=size(I);Range=sum((~I)');Hy=0;forj=1:y0if(Range(j)>=1)Hy=Hy+1;endendRangeX=sum((~I));Wx=0;fori=1:x0if(RangeX(i)>=1)Wx=Wx+1;endendAmp=24/Hy;%將文字圖像歸一化到24像素點的高度。I=imresize(I,Amp);[yx]=size(I);%I=bwmorph(~I,'skel',Inf);%I=~I;tic%======基本結(jié)構(gòu)=======%%第一類:豎(V);左斜(L);右斜(R);突變(P)%第二類:左半圓?。–);右半圓弧(Q)%的三類:結(jié)構(gòu)待定(T);%=====================================%Left=zeros(1,y);%左端輪廓檢測forj=1:yi=1;while((i<=x)&&(I(j,i)==1))i=i+1;endif(i<=x)Left(j)=i;endendforj=1:y-1LeftD(j)=Left(j+1)-Left(j);end%==========結(jié)構(gòu)特征提取=============%j=1;while((Left(j)<1)&&(j<y))j=j+1;endY1=j;j=y;while((Left(j)<1)&&(j>1))j=j-1;endY2=j-1;%去掉急劇變化的兩端%==============右邊==================%Right=zeros(1,y);%左端輪廓檢測forj=1:yi=x;while((i>=1)&&(I(j,i)==1))i=i-1;endif(i>=1)Right(j)=i;endendforj=1:y-1RightD(j)=Right(j+1)-Right(j);end%=====================================%Top=zeros(1,x);%頂端輪廓檢測fori=1:xj=1;while((j<=y)&&(I(j,i)==1))j=j+1;endif(j<=y)Top(i)=j;endendfori=1:x-1TopD(i)=Top(i+1)-Top(i);end%==============================%i=1;while((Top(i)<1)&&(i<x))i=i+1;endX1=i;i=x;while((Top(i)<1)&&(i>1))i=i-1;endX2=i-1;%去掉急劇變化的兩端%===================================%Bottom=zeros(1,x);%底部輪廓檢測fori=1:xj=y;while((j>=1)&&(I(j,i)==1))j=j-1;endif(j>=1)Bottom(i)=j;endendfori=1:x-1BottomD(i)=Bottom(i+1)-Bottom(i);end%==========數(shù)字1的寬度特征=========%Width=zeros(1,y);forj=1:yWidth(j)=Right(j)-Left(j);end

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論