




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
]手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要本手寫(xiě)數(shù)字識(shí)別系統(tǒng)是一個(gè)以VISUALSTUDIOC++為編譯環(huán)境,使用MFC進(jìn)行圖形圖像界面開(kāi)發(fā)的系統(tǒng)。主要功能是通過(guò)在點(diǎn)擊手寫(xiě)數(shù)字識(shí)別菜單下的繪制數(shù)字標(biāo)簽彈出的繪制數(shù)字窗口中完成數(shù)字的手寫(xiě),在此窗口中可以進(jìn)行數(shù)字的保存及清屏,然后通過(guò)文件菜單中的打開(kāi)標(biāo)簽打開(kāi)所繪制的數(shù)字,從而進(jìn)行數(shù)字的預(yù)處理,其中包括灰度化及二值化處理,然后進(jìn)行特征提取,最后實(shí)現(xiàn)數(shù)字的識(shí)別。本系統(tǒng)的界面設(shè)計(jì)友好,流程正確,功能也較為完善。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)具有較高的識(shí)別率。關(guān)鍵詞:繪制數(shù)字;預(yù)處理;特征提取;特征庫(kù);數(shù)字識(shí)別/;目錄前言 1概述 21需求分析 4功能需求分析 4,性能需求分析 4數(shù)據(jù)需求分析 5相關(guān)軟件介紹 52手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)與基本原理 6系統(tǒng)整體功能模塊設(shè)計(jì) 6手寫(xiě)數(shù)字識(shí)別系統(tǒng)的基本原理 6數(shù)字圖像的繪制 6圖像的預(yù)處理 6)圖像的特征提取 7特征庫(kù)的建立 8圖像數(shù)字的識(shí)別 83手寫(xiě)數(shù)字識(shí)別系統(tǒng)程序設(shè)計(jì) 8數(shù)字圖像的繪制 8數(shù)字的特征提取 15模板特征庫(kù)的建立 18數(shù)字的識(shí)別 20(總結(jié) 23致謝 24參考文獻(xiàn) 25前言自上世紀(jì)六十年代以來(lái),計(jì)算機(jī)視覺(jué)與圖像處理越來(lái)越受到人們的關(guān)注,并逐漸成為一門(mén)重要的學(xué)科領(lǐng)域。而作為它們的研究對(duì)象的數(shù)字圖像,也因?yàn)樗醒芯磕繕?biāo)的豐富信息而成為越來(lái)越重要的研究對(duì)象。圖像識(shí)別的目標(biāo)是用計(jì)算機(jī)自動(dòng)完成某些信息的處理,用來(lái)替代人工去處理圖像分類(lèi)及識(shí)別的任務(wù)。手寫(xiě)數(shù)字識(shí)別是圖像識(shí)別學(xué)科下的一個(gè)分支,是圖像處理和模式識(shí)別領(lǐng)域研究的課題之一,由于其具有很強(qiáng)的實(shí)用性一直是多年來(lái)的研究熱點(diǎn)。由于手寫(xiě)體數(shù)字的隨意性很大,例如,筆畫(huà)的粗細(xì),字體的大小,傾斜等等都直接影響到字符的正確識(shí)別,所以手寫(xiě)體數(shù)字識(shí)別是一個(gè)很有挑戰(zhàn)性的課題。在過(guò)去的數(shù)十年中,研究者們提出了許多的識(shí)別方法,取得了較大的成果。手寫(xiě)體數(shù)字識(shí)別實(shí)用性很強(qiáng),在大規(guī)模數(shù)據(jù)統(tǒng)計(jì)(如例行年檢,人口普查),財(cái)務(wù),稅務(wù),郵件分揀等等應(yīng)用領(lǐng)域中都有廣闊的應(yīng)用前景。本課題擬研究手寫(xiě)體數(shù)字識(shí)別的理論和方法,開(kāi)發(fā)一個(gè)小型的手寫(xiě)體數(shù)字識(shí)別系統(tǒng)。在研究手寫(xiě)體數(shù)字識(shí)別理論和方法的基礎(chǔ)上,開(kāi)發(fā)這樣一個(gè)小型的手寫(xiě)體數(shù)字識(shí)別系統(tǒng)需要完成以下主要方面的研究與設(shè)計(jì)工作:手寫(xiě)數(shù)字繪制的問(wèn)題、數(shù)字的預(yù)處理問(wèn)題、特征提取問(wèn)題、特征庫(kù)的建立問(wèn)題、數(shù)字識(shí)別問(wèn)題。概述此手寫(xiě)數(shù)字識(shí)別系統(tǒng)的需要實(shí)現(xiàn)手寫(xiě)數(shù)字的繪制功能、手寫(xiě)數(shù)字的特征提取功能、數(shù)字的模板特征庫(kù)的建立功能以及手寫(xiě)數(shù)字的識(shí)別功能。在近幾年國(guó)內(nèi)外對(duì)手寫(xiě)數(shù)字識(shí)別系統(tǒng)的研究已經(jīng)取得了進(jìn)展,一些新的理論例如基于Hopfield神經(jīng)網(wǎng)絡(luò)、基于小波技術(shù)、基于BP神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)的研究應(yīng)用在建立手寫(xiě)數(shù)字識(shí)別系統(tǒng)平臺(tái),并且在多數(shù)數(shù)據(jù)庫(kù)中取得了較好的測(cè)試結(jié)果。但是目前仍然存在亟需深入研究解決的問(wèn)題:1)識(shí)別的準(zhǔn)確度需要達(dá)到較好的水平2)識(shí)別的效率要達(dá)到很高的水平。數(shù)字識(shí)別輸入的數(shù)據(jù)通常是很大的,而高精度與高速度是相互矛盾。這些難點(diǎn)存在的原因是:1)數(shù)字的筆劃簡(jiǎn)單,而且其筆劃差別相對(duì)較小,字形相差不大,使得準(zhǔn)確區(qū)分某些數(shù)字有一些困難;2)數(shù)字雖然只有10種,且筆劃簡(jiǎn)單,但同一數(shù)字寫(xiě)法卻千差萬(wàn)別,全世界的各個(gè)國(guó)家各個(gè)地區(qū)的人都在用,則其書(shū)寫(xiě)上帶有區(qū)域特性,很難做出可以兼顧世界各種寫(xiě)法的、識(shí)別率極高的通用性數(shù)字識(shí)別系統(tǒng)。3)特征庫(kù)的訓(xùn)練不夠,導(dǎo)致識(shí)別率不高。手寫(xiě)數(shù)字識(shí)別的研究不僅存在很大的應(yīng)用價(jià)值,由于手寫(xiě)數(shù)字識(shí)別本身的特點(diǎn),對(duì)它的研究也存在著重要的理論價(jià)值:1)阿拉伯?dāng)?shù)字作為唯一被世界各國(guó)通用的符號(hào),所以對(duì)手寫(xiě)體數(shù)字識(shí)別的研究基本上與文化背景無(wú)關(guān),各地的研究工作者可以說(shuō)是基于同一平臺(tái)開(kāi)展工作的,有利于研究的比較和探討。2)手寫(xiě)數(shù)字識(shí)別應(yīng)用廣泛,如稅表系統(tǒng),銀行支票自動(dòng)處理和郵政編碼自動(dòng)識(shí)別等。在以前,這些工作需要大量的手工錄入,投入的人力物力都相對(duì)較多,而且勞動(dòng)強(qiáng)度較大。為了適應(yīng)無(wú)紙化辦公的需要,大大提高工作效率,研究實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別系統(tǒng)是必須要做的。3)由于數(shù)字類(lèi)別只有0-9共10個(gè),比其他字符識(shí)別率較高,可將其用于驗(yàn)證新的理論或做深入的分析研究。許多機(jī)器學(xué)習(xí)和模式識(shí)別領(lǐng)域的新理論和算法都是先用手寫(xiě)數(shù)字識(shí)別進(jìn)行檢驗(yàn),驗(yàn)證其理論的有效性,然后才會(huì)將其應(yīng)用到更為復(fù)雜的領(lǐng)域當(dāng)中。在這方面的典型例子就是人工神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)。4)手寫(xiě)數(shù)字的識(shí)別方法很容易將其推廣到其它一些相關(guān)的問(wèn)題上,如對(duì)英文之類(lèi)拼音文字的識(shí)別。事實(shí)上,有許多學(xué)者就是把數(shù)字和英文字母的識(shí)別放在一起研究的。在過(guò)去的數(shù)幾年中,研究者提出了許許多多的識(shí)別方法,按提取的數(shù)字特征的不同,可以將這些方法分為兩類(lèi):基于結(jié)構(gòu)特征的方法和基于統(tǒng)計(jì)特征的方法。統(tǒng)計(jì)特征通常包括點(diǎn)密度的測(cè)量、矩、特征區(qū)域等;結(jié)構(gòu)特征通常包括圓、端點(diǎn)、交叉點(diǎn)、筆劃、輪廓等,一般來(lái)說(shuō),兩類(lèi)特征各有優(yōu)勢(shì)。例如,使用統(tǒng)計(jì)特征的分類(lèi)器易于訓(xùn)練,而且對(duì)于使用統(tǒng)計(jì)特征的分類(lèi)器,在給定的訓(xùn)練集上能夠得到相對(duì)較高的識(shí)別率;而結(jié)構(gòu)特征的主要優(yōu)點(diǎn)之一是能描述字符的結(jié)構(gòu),在識(shí)別過(guò)程中能有效地結(jié)合幾何和結(jié)構(gòu)的知識(shí),因此能夠得到可靠性較高的識(shí)別結(jié)果。在此次的設(shè)計(jì)中使用的是統(tǒng)計(jì)特征?;谝陨纤?,本次畢業(yè)設(shè)計(jì)課題為手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。其功能是將人工手繪的數(shù)字圖像轉(zhuǎn)換成可編輯的文本信息。該系統(tǒng)包括手寫(xiě)數(shù)字繪制模塊、圖像預(yù)處理模塊、特征提取模塊、訓(xùn)練模塊和識(shí)別模塊。涉及模式識(shí)別、圖像處理、人工智能、統(tǒng)計(jì)學(xué)、心理學(xué)和計(jì)算機(jī)科學(xué)等相關(guān)內(nèi)容。通過(guò)對(duì)圖像處理和識(shí)別算法進(jìn)行不斷地研究和實(shí)踐,以降低誤識(shí)率和拒識(shí)率。本文主要介紹手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),首先需要了解手寫(xiě)數(shù)字識(shí)別系統(tǒng)現(xiàn)階段的發(fā)展情況和研究現(xiàn)狀,然后對(duì)系統(tǒng)進(jìn)行分析,主要從功能需求分析、性能需求分析、數(shù)據(jù)需求分析和相關(guān)軟件介紹四方面入手,從而使得對(duì)系統(tǒng)有初步的認(rèn)識(shí),然后對(duì)系統(tǒng)的整體設(shè)計(jì)模塊進(jìn)行介紹,進(jìn)而對(duì)系統(tǒng)的各個(gè)功能模塊具體的設(shè)計(jì)原理進(jìn)行詳細(xì)介紹,之后對(duì)本次所設(shè)計(jì)出的系統(tǒng)進(jìn)行介紹并對(duì)相關(guān)代碼進(jìn)行說(shuō)明,最后總結(jié)本系統(tǒng)的優(yōu)缺點(diǎn)及今后工作展望等,整篇文章通俗易懂,條理清晰,可以使讀者輕松閱讀,并理解實(shí)現(xiàn)過(guò)程。1需求分析綜合用戶(hù)在實(shí)際應(yīng)用中的需求,對(duì)系統(tǒng)的運(yùn)作流程進(jìn)行了整理,并通過(guò)對(duì)流程的分析得出了如下的需求分析。功能需求分析根據(jù)對(duì)用戶(hù)需求的分析,系統(tǒng)應(yīng)包含以下功能:數(shù)字的繪制在繪制數(shù)字的窗口中實(shí)現(xiàn)數(shù)字的手寫(xiě),并對(duì)其坐標(biāo)值進(jìn)行保存,利用復(fù)位按鈕可實(shí)現(xiàn)數(shù)字的清除工作。數(shù)字的預(yù)處理在手寫(xiě)數(shù)字圖像識(shí)別系統(tǒng)中,圖像的預(yù)處理跟一般圖像系統(tǒng)不同,我們不需要對(duì)圖像進(jìn)行灰度化處理、去噪處理等基本操作,我們利用程序保存的坐標(biāo)值就可以對(duì)生成一張二值化圖像,相當(dāng)于圖像處理系統(tǒng)的二值化處理。特征的提取在第二步中我們得到了手寫(xiě)數(shù)字的二值化圖像,進(jìn)行特征提取前需要對(duì)此圖像的數(shù)據(jù)區(qū)域進(jìn)行定位,在程序中我們遍歷此二值化圖像,找到手寫(xiě)數(shù)字區(qū)域的上、下、左、右邊界,重新生成一張數(shù)字圖片,利用新生成的數(shù)字圖片分成8*8的區(qū)域,統(tǒng)計(jì)每個(gè)區(qū)域的目標(biāo)像素個(gè)數(shù)和整個(gè)小區(qū)域像素個(gè)數(shù),計(jì)算目標(biāo)像素個(gè)數(shù)與整個(gè)小區(qū)域像素的比值,得到64個(gè)特征值,作為這個(gè)手寫(xiě)數(shù)字的特征值。特征庫(kù)的訓(xùn)練我們需要訓(xùn)練一個(gè)特征庫(kù),作為識(shí)別的標(biāo)準(zhǔn)。系統(tǒng)中我們手寫(xiě)一個(gè)數(shù)字提取出它的特征值,再輸入此手寫(xiě)數(shù)字,將數(shù)字與這些特征值相對(duì)應(yīng)存儲(chǔ)到特征庫(kù)里面,特征庫(kù)我們使用的是Access數(shù)據(jù)庫(kù),字段是數(shù)字及這個(gè)數(shù)字所對(duì)應(yīng)所有特征值。特征庫(kù)越豐富,識(shí)別率越高。數(shù)字識(shí)別在手寫(xiě)數(shù)字識(shí)別中,我們使用的方法是模板匹配法,其實(shí)質(zhì)就是提取出手寫(xiě)數(shù)字的特征值,利用這些特征值與特征庫(kù)的數(shù)字的特征值進(jìn)行比對(duì),找出待識(shí)別數(shù)字特征值與特征庫(kù)里存儲(chǔ)的特征值最接近的數(shù)字,作為識(shí)別結(jié)果。性能需求分析正確性:根據(jù)手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)流程,流程中的每個(gè)步驟在系統(tǒng)中都必須有所體現(xiàn),以保證程序的正確性。精確性:根據(jù)手寫(xiě)數(shù)字識(shí)別系統(tǒng)的應(yīng)用領(lǐng)域,該系統(tǒng)的識(shí)別結(jié)果必須有很高的識(shí)別精度,這樣才能真正的實(shí)現(xiàn)該系統(tǒng)的價(jià)值。效率性:根據(jù)該系統(tǒng)的應(yīng)用領(lǐng)域可知,系統(tǒng)一旦投入應(yīng)用需要處理大量的數(shù)據(jù),所以對(duì)系統(tǒng)的處理速度也有很高的要求。數(shù)據(jù)需求分析根據(jù)手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)步驟可知該系統(tǒng)采用的是模板匹配法進(jìn)行手寫(xiě)體數(shù)字識(shí)別。模板匹配法是圖像識(shí)別中最具有代表性的方法之一。它是將從待識(shí)別的圖像提取的若干特征量與模板對(duì)應(yīng)的特征量進(jìn)行比較,計(jì)算圖像和模板特征量之間的距離,用最小距離法判定所屬類(lèi)。而模板匹配通常需要事先建立標(biāo)準(zhǔn)模板庫(kù)。這里,模板庫(kù)中的標(biāo)準(zhǔn)模板是數(shù)字樣本的特征向量。特征庫(kù)的存儲(chǔ)是利用Access數(shù)據(jù)庫(kù),并且利用MFCADO技術(shù)連接數(shù)據(jù)庫(kù),不需要進(jìn)行硬件配置。數(shù)據(jù)庫(kù)如圖所示。圖數(shù)據(jù)庫(kù)相關(guān)軟件介紹本課題是基于VisualC++的,它是Microsoft公司開(kāi)發(fā)的VisualStudio集成開(kāi)發(fā)環(huán)境中功能最為強(qiáng)大、代碼效率最高的開(kāi)發(fā)工共。利用VisualC++可以?xún)煞N方式編寫(xiě)Win32應(yīng)用程序,一種方式是基于WindowsAPI的C編程方式,另一種是基于MFC的C++編程方式。本系統(tǒng)采用的是基于MFC的編程方式。2手寫(xiě)數(shù)字識(shí)別系統(tǒng)的設(shè)計(jì)與基本原理系統(tǒng)整體功能模塊設(shè)計(jì)整體模塊如圖所示:數(shù)字圖像的繪制數(shù)字圖像的繪制訓(xùn)練特征庫(kù)二值化處理特征提取數(shù)字識(shí)別主界面圖整體模塊手寫(xiě)數(shù)字識(shí)別系統(tǒng)的基本原理下面分別介紹各部分工作的基本原理:2.2.1數(shù)字圖像的繪制手寫(xiě)數(shù)字繪制功能的實(shí)現(xiàn)方案是:通過(guò)VisualC++中的CStatic控件來(lái)建立畫(huà)布,用MFC中的封裝類(lèi)CDC實(shí)現(xiàn)手寫(xiě)數(shù)字功能。在對(duì)話框中,響應(yīng)鼠標(biāo)事件的消息,分別是鼠標(biāo)按下事件MouseDown,鼠標(biāo)移動(dòng)事件MouseMove,鼠標(biāo)抬起事件MouseUp,判斷當(dāng)前鼠標(biāo)點(diǎn)是否在CStatic控件上,在的話程序?qū)⒋它c(diǎn)的坐標(biāo)值保存。手寫(xiě)數(shù)字的繪制開(kāi)始是鼠標(biāo)按下事件,結(jié)束是以左鼠標(biāo)抬起為標(biāo)志。2.2.2圖像的預(yù)處理圖像的預(yù)處理是為了突出手寫(xiě)體數(shù)字的特征。在本次設(shè)計(jì)中主要包括:圖像二值化處理。圖像的二值化處理就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果。在手寫(xiě)數(shù)字識(shí)別系統(tǒng)中,我們?cè)赩C可視化編程界面中在一個(gè)固定大小的控件中手寫(xiě)了一個(gè)數(shù)字,在程序中獲得的只是以這個(gè)控件左上角為原點(diǎn)的一系列坐標(biāo)。在內(nèi)存中我們開(kāi)辟一個(gè)大小跟這個(gè)控件區(qū)域大小相同的二維數(shù)組(以像素為單位,即生成一張圖片的長(zhǎng)跟寬跟這個(gè)矩形區(qū)域相等),這樣內(nèi)存中圖像的數(shù)據(jù)區(qū)域的二維數(shù)組就跟手寫(xiě)區(qū)域的坐標(biāo)相同,我們?cè)偃〕鍪謱?xiě)區(qū)域的坐標(biāo)值,將這些坐標(biāo)值對(duì)應(yīng)到圖像圖像數(shù)據(jù)區(qū)域中,并且將它的灰度值置為255(白色),將圖像數(shù)據(jù)區(qū)域的其它坐標(biāo)值下的灰度值置為0(黑色),這樣我們就得到了一張手寫(xiě)數(shù)字的二值化圖像。在數(shù)字圖像處理中,二值圖像占有非常重要的地位,圖像的二值化有利于圖像的進(jìn)一步處理,使圖像變得簡(jiǎn)單,而且數(shù)據(jù)量減小,能凸顯出感興趣的目標(biāo)的輪廓。2.2.3圖像的特征提取若直接把預(yù)處理后的數(shù)據(jù)作為輸入量,進(jìn)行分類(lèi)計(jì)算時(shí)數(shù)據(jù)時(shí)數(shù)據(jù)量大,同時(shí)由于手寫(xiě)字體的多樣化及圖像本身和預(yù)處理過(guò)程中附帶的某些干擾的影響,對(duì)系統(tǒng)的容錯(cuò)能力要求較高。特征提取的目的就是從分析數(shù)字的拓?fù)浣Y(jié)構(gòu)入手,把它的某些結(jié)構(gòu)特征提取出來(lái),使數(shù)字的位移、大小變化、字形畸形等干擾相對(duì)較小,也就是把那些反映數(shù)字特征的關(guān)鍵信息提供給系統(tǒng),這樣就等于間接地增加了系統(tǒng)的容錯(cuò)能力,而且經(jīng)過(guò)特征提取后數(shù)據(jù)量也大大減少了,這樣就提高了識(shí)別的效率。手寫(xiě)數(shù)字識(shí)別的特征提取極大程度地影響著分類(lèi)器的設(shè)計(jì)和性能,以及識(shí)別的效果和效率。為了保證所要求的分類(lèi)識(shí)別的正確率和節(jié)省資源,希望依據(jù)最少的特征達(dá)到所要求的分類(lèi)識(shí)別的正確率。在進(jìn)行手寫(xiě)數(shù)字識(shí)別的過(guò)程中,特征提取應(yīng)遵循以下原則:特征應(yīng)能盡量包含字符的有用信息。特征的提取方法應(yīng)簡(jiǎn)單而且提取快速。各個(gè)特征之間的相關(guān)性應(yīng)盡可能小。特征數(shù)量盡可能少。特征應(yīng)有較好的抗干擾能力??紤]到算法的實(shí)時(shí)性、快速性和準(zhǔn)確性,在此次設(shè)計(jì)中采用的是一種簡(jiǎn)單的模板法對(duì)待測(cè)樣本進(jìn)行特征提取。步驟為:1、搜索數(shù)據(jù)區(qū)域,找出手寫(xiě)體數(shù)字的上下左右邊界。2、將搜索到的數(shù)字區(qū)域平分成8*8共64個(gè)小區(qū)域。3、計(jì)算8*8的每一個(gè)小區(qū)域中白色像素所占比例,即用每一個(gè)小區(qū)域內(nèi)的白色像素個(gè)數(shù)除以該小區(qū)域的面積總數(shù)(總像素?cái)?shù)),即得特征值,第一行的8個(gè)比例值是特征的前8特征值,第二行對(duì)應(yīng)著特征的9~16個(gè),以此類(lèi)推。2.2.4特征庫(kù)的建立在手寫(xiě)數(shù)字識(shí)別系統(tǒng)中,我們首先要建立一個(gè)特征庫(kù),我們手寫(xiě)一個(gè)數(shù)字,并且取得這個(gè)數(shù)字的特征值,然后再想程序輸入這個(gè)數(shù)字,在程序中將此輸入數(shù)字與所有特征值相對(duì)應(yīng),作為模板庫(kù)的一條記錄,初始化模板庫(kù)之后,就可以對(duì)手寫(xiě)數(shù)字進(jìn)行識(shí)別,在識(shí)別的過(guò)程中我們不斷的豐富模板庫(kù),如果手寫(xiě)數(shù)字識(shí)別成功則不需要將此數(shù)字存儲(chǔ)到模板庫(kù)中,如果識(shí)別失敗就需要將此數(shù)字存儲(chǔ)到模板庫(kù)中,這樣我們的模板庫(kù)將越來(lái)越豐富。2.2.5圖像數(shù)字的識(shí)別在手寫(xiě)數(shù)字圖像特征提取結(jié)束后,即可進(jìn)行數(shù)字的識(shí)別。這也是手寫(xiě)數(shù)字識(shí)別系統(tǒng)設(shè)計(jì)的最后一個(gè)環(huán)節(jié),在本次設(shè)計(jì)中采用模板匹配法進(jìn)行手寫(xiě)體數(shù)字識(shí)別。模板匹配法是圖像識(shí)別中最具有代表性的方法之一。它是將從待識(shí)別的圖像提取的若干特征量與模板對(duì)應(yīng)的特征量進(jìn)行比較,計(jì)算圖像和模板特征量之間的距離,用最小距離法判定所屬類(lèi)。模板匹配通常事先建立標(biāo)準(zhǔn)模板庫(kù)。這里,模板庫(kù)中的標(biāo)準(zhǔn)模板是數(shù)字樣本的特征向量。具體過(guò)程是:對(duì)于一個(gè)待測(cè)試的樣本X,計(jì)算X和訓(xùn)練集中的某樣本Xj(0<j<m,m為訓(xùn)練集中的樣本數(shù))之間的距離。循環(huán)計(jì)算待測(cè)樣本和訓(xùn)練集中各已知樣本之間的距離,比較所有的距離值,找出距離待測(cè)樣本最近的已知樣本,其中所對(duì)應(yīng)的樣本所屬的類(lèi)別就是待測(cè)樣本X所屬的類(lèi)別。3手寫(xiě)數(shù)字識(shí)別系統(tǒng)程序設(shè)計(jì)本次設(shè)計(jì)使用VisualC++語(yǔ)言來(lái)實(shí)現(xiàn)該系統(tǒng),其用戶(hù)界面分別介紹如下:數(shù)字圖像的繪制運(yùn)行程序后得到系統(tǒng)的初始界面,如圖所示。在繪圖區(qū)域通過(guò)響應(yīng)鼠標(biāo)事件來(lái)完成手寫(xiě)數(shù)字的繪制問(wèn)題,如圖所示,通過(guò) CPen創(chuàng)建對(duì)象pen并進(jìn)行相關(guān)值的設(shè)置如pen(PS_SOLID,3,RGB(0,0,255))可以創(chuàng)建出不同顏色和粗細(xì)的畫(huà)筆,消息響應(yīng)事件是通過(guò)函數(shù)OnLButtonDown(UINTnFlags,CPointpoint)、OnMouseMove(UINTnFlags,CPointpoint)、OnLButtonUp(UINTnFlags,CPointpoint)來(lái)實(shí)現(xiàn)的。手寫(xiě)數(shù)字的繪制過(guò)程中通過(guò)建立堆棧即可實(shí)現(xiàn)手寫(xiě)數(shù)字的保存,所用函數(shù)為AddPointStack(constCPoint&point)。繪制數(shù)字后還可以對(duì)所繪制數(shù)字進(jìn)行清除,通過(guò)函數(shù)OnButtonRset()即可實(shí)現(xiàn),點(diǎn)擊系統(tǒng)見(jiàn)面上的復(fù)位按鈕即可實(shí)現(xiàn)此功能。點(diǎn)擊顯示按鈕即可得到二值化后的黑白圖像,如圖所示。圖系統(tǒng)初始界面圖手寫(xiě)數(shù)字的繪制圖二值化結(jié)果具體實(shí)現(xiàn)代碼為:1.手寫(xiě)數(shù)字的繪制voidCNumShiBieDlg::OnLButtonDown(UINTnFlags,CPointpoint){ CRectrect,rect1,rect2; CStringstr; this->GetClientRect(rect); (rect1);寫(xiě)數(shù)字的存儲(chǔ)boolCNumShiBieDlg::AddPointStack(constCPoint&point){ CStringstr; boolb=false; if!= { *+=point; +=1;寫(xiě)數(shù)字的清除voidCNumShiBieDlg::OnButtonRset(){ 值化后的顯示voidCNumShiBieDlg::OnButtonShownum(){ 到64個(gè)區(qū)域的特征值double*CNumShiBieDlg::Get64Feature(BYTE*pd,intw,inth){ double*pFeature=newdouble[64]; if((w%8==0)&&(h%8==0)) { inthc=h/8; intwc=w/8; intjishu=0; intj=0;到每個(gè)小區(qū)域的特征值doubleCNumShiBieDlg::GetOneFeature(intbrow,interow,intbcol,intecol,BYTE*pdata,intw){ intpixAim=0; intpixSum=0; for(inti=brow;i<erow;i++) for(intj=bcol;j<ecol;j++) if(pdata[i*w+j]==255) pixAim++; else pixSum++; doubledf; df=(double)pixAim/(double)pixSum; returndf;}模板特征庫(kù)的建立點(diǎn)擊系統(tǒng)界面上的訓(xùn)練按鈕即可實(shí)現(xiàn)特征庫(kù)的建立,訓(xùn)練的次數(shù)越多特征庫(kù)越豐富,識(shí)別結(jié)果就越準(zhǔn)確。在此系統(tǒng)的特征庫(kù)是存儲(chǔ)在Access數(shù)據(jù)庫(kù)中,如圖所示。在此利用MFCADO技術(shù)連接數(shù)據(jù)庫(kù),并且建立記錄集對(duì)象并通過(guò)函數(shù)OnButtonInitialize()來(lái)實(shí)現(xiàn)特征庫(kù)的訓(xùn)練。圖特征庫(kù)具體實(shí)現(xiàn)代碼為:1.連接數(shù)據(jù)庫(kù)CStringstrSql; strSql="select*fromFeature64"; (__uuidof(Recordset)); m_rsetPtr->Open(_bstr_t(strSql),(),adOpenStatic,adLockOptimistic,adCmdText);2.訓(xùn)練特征庫(kù)voidCNumShiBieDlg::OnButtonInitialize()um=; doubled[64]; for(inti=0;i<64;i++) { CStringtemp; ("Feature%d",i+1); var=m_rsetPtr->GetCollect(_bstr_t(temp)); temp=(LPCSTR)(_bstr_t)var; d[i]=::atof(temp); } doublesum=; for(i=0;i<64;i++) { sum+=(pfeature[i]-d[i])*(pfeature[i]-d[i]); }eature=sum; count++; m_rsetPtr->MoveNext(); } doublemin=pN[0].feature; intindex=0; for(intk=1;k<count;k++) { if(min>pN[k].feature) { min=pN[k].feature; index=k; } } m_rsetPtr->Close();um); AfxMessageBox(str); delete[]pN; }}總結(jié)本文對(duì)基于VC++的手寫(xiě)數(shù)字識(shí)別系統(tǒng)的基本原理及方法進(jìn)行了介紹。手寫(xiě)體數(shù)字識(shí)別是一個(gè)極具研究?jī)r(jià)值的課題,手寫(xiě)數(shù)字的樣品類(lèi)別總共只有0一9十類(lèi),與其它的大字符集的識(shí)別(漢字識(shí)別)相比要相對(duì)容易。本文所采用的模板匹配分類(lèi)器既節(jié)省時(shí)間,簡(jiǎn)便易行,也
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級(jí)下冊(cè)數(shù)學(xué)教案- 撥一撥 北師大版
- 2025年中學(xué)職務(wù)崗位聘用合同
- 五年級(jí)下冊(cè)數(shù)學(xué)教案-6.5 圖形與幾何(平面圖形的周長(zhǎng)和面積(復(fù)習(xí))) ▏滬教版
- 人教版數(shù)學(xué)三年級(jí)上冊(cè)單元練習(xí)卷(易錯(cuò)題)-第五單元-倍的認(rèn)識(shí)(含答案)
- 2024年快速熱處理設(shè)備項(xiàng)目資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 2024年灌裝包裝設(shè)備項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年廣西金融職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)審定版
- 2025年貴州建設(shè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)帶答案
- 2025屆黑龍江省“六校聯(lián)盟”高三上學(xué)期聯(lián)考生物試題及答案
- 別墅家裝保障合同范本
- 《物權(quán)法》本科題集
- 新能源汽車(chē)驅(qū)動(dòng)電機(jī)及控制系統(tǒng)檢修課件 學(xué)習(xí)情境6:電機(jī)控制系統(tǒng)檢修
- 廚房菜品出品標(biāo)準(zhǔn)培訓(xùn)
- 2024年福建省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 【基于單片機(jī)的超市自動(dòng)存儲(chǔ)柜的設(shè)計(jì)與實(shí)現(xiàn)(論文)8700字】
- 保證金退還協(xié)議書(shū)
- 2024年銀行考試-商業(yè)銀行考試近5年真題附答案
- 招聘筆試題與參考答案(某大型央企)2024年
- 全國(guó)裝配式建筑職業(yè)技能競(jìng)賽考試題庫(kù)
- Nikon尼康D3100中文說(shuō)明書(shū)
- 2023年廣西職業(yè)院校技能大賽高職組《Python程序開(kāi)發(fā)》賽項(xiàng)競(jìng)賽樣題
評(píng)論
0/150
提交評(píng)論