VC課程設(shè)計(jì)報(bào)告手寫字符識(shí)別_第1頁
VC課程設(shè)計(jì)報(bào)告手寫字符識(shí)別_第2頁
VC課程設(shè)計(jì)報(bào)告手寫字符識(shí)別_第3頁
VC課程設(shè)計(jì)報(bào)告手寫字符識(shí)別_第4頁
VC課程設(shè)計(jì)報(bào)告手寫字符識(shí)別_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、湖 南 農(nóng) 業(yè) 大 學(xué)VC+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告手寫字符識(shí)別學(xué)生姓名:學(xué) 號(hào):年級(jí)專業(yè):指導(dǎo)老師及職稱: 學(xué) 院: 湖南·長(zhǎng)沙提交日期:2010年6月手寫字符識(shí)別學(xué) 生:指導(dǎo)老師:摘 要:本文主要介紹了手寫字符識(shí)別技術(shù)的發(fā)展及應(yīng)用,還詳細(xì)介紹了一個(gè)簡(jiǎn)單的手寫字符識(shí)別程序的設(shè)計(jì)方法,另外還提出了此程序的不足之處和改進(jìn)方法。關(guān)鍵詞:手寫識(shí)別; 類; 函數(shù);1 前言 隨著計(jì)算機(jī)的普及和應(yīng)用,漢字如何有效快速的輸入計(jì)算機(jī),成為一個(gè)難題。自從漢字編碼的方案發(fā)明以來,熟記編碼、鍵盤敲入,曾一度成為漢字輸入的唯一模式。但是,漢字編碼,包括音碼、形碼及其混合類型對(duì)于一般的老百姓來說,有一定的問題:音

2、碼雖然容易掌握,但對(duì)于發(fā)音不準(zhǔn)的人,輸入常會(huì)出錯(cuò),且重碼率太高,不會(huì)讀音的字更是無法輸入;形碼可以高速輸入,特別適合于看稿輸入,對(duì)于無稿輸入的人用來就有一定的不便?,F(xiàn)在形碼無一定的標(biāo)準(zhǔn),種類繁多,且都需要強(qiáng)記大量拆分方案,對(duì)于普通人來說,學(xué)習(xí)起來有困難。另外,不管音碼還是形碼,都是基于鍵盤輸入的,現(xiàn)在一些微機(jī),袖珍到容不下鍵盤的程度,如個(gè)人數(shù)字助理(Personal DigitalAssistant,PDA),編碼輸入就沒有用武之地了。隨著計(jì)算機(jī)技術(shù)的發(fā)展和日益大眾化,一種新的漢字輸入方法聯(lián)機(jī)手寫字符識(shí)別輸入法誕生了。這種輸入方法符合人的手寫習(xí)慣,把要輸入的字符寫在書寫板上書寫板將筆尖走過的軌

3、跡按時(shí)間采樣后發(fā)送到計(jì)算機(jī)中,由計(jì)算機(jī)中相關(guān)軟件自動(dòng)完成識(shí)別,并用機(jī)器內(nèi)部的方式保存、顯示。這種字符輸入方法,具有不需要記憶編碼方案,不需要鍵盤操作的優(yōu)點(diǎn),特別適合于普通人使用,有著極大的市場(chǎng)潛力1。而接下來介紹的程序就是一個(gè)簡(jiǎn)單的字符識(shí)別程序,能識(shí)別一些簡(jiǎn)單的字符。2 本程序功能運(yùn)行程序后,在面板上寫下數(shù)字1到9,大寫字母A到Z的字符,程序就能夠識(shí)別所寫字符。3 程序設(shè)計(jì)步驟3.1 新建工程打開VC6.0,選擇MFC AppWizardexe,新建一個(gè)名為RECCHARACTER的工程。3.2 創(chuàng)建對(duì)話框并添加控件創(chuàng)建一個(gè)對(duì)話框,設(shè)置對(duì)話框資源。如下圖所示:圖1 對(duì)話框資源中間空白畫布為圖像

4、控件,ID號(hào)為IDC_PANEL,類型為矩形,顏色為白色。將按鈕識(shí)別ID 改為IDC_RECOGNISE,標(biāo)題為識(shí)別。3.3 創(chuàng)建對(duì)話框類并定義變量打開類向?qū)?,為?chuàng)建的對(duì)話框創(chuàng)建一個(gè)對(duì)話框類,類名為CRecChar,選擇“Membet Variables”選項(xiàng)卡,為控件IDC_PANEL添加一個(gè)CString類型的變量m_Panel,用于用戶輸入數(shù)字。3.4 自定義主菜單在主菜單中添加一個(gè)彈出式菜單,標(biāo)識(shí)為字符識(shí)別,再為它添加一個(gè)子菜單,標(biāo)明為手寫字符識(shí)別,ID號(hào)為ID_MENURECCHAR。3.5 為類CMainFrame添加函數(shù),使自定義菜單可用打開類向?qū)В瑸轭怌MainFrame中的I

5、D_MENURECCHAR添加COMMAND函數(shù),代碼如下:void CMainFrame:OnMenurecchar() CRecChar ConvertDlg;ConvertDlg.DoModal();3.6 為CRECCHARACTERView類添加代碼,使其顯示提示信息在CRECCHARACTERView類中包含CRecChar的頭文件#include "RECCHARACTER.h"。在OnDraw()函數(shù)中添加如下代碼,使文檔顯示提示信息。代碼如下:pDC->TextOut(200,10,"請(qǐng)輸入 1 2 3 4 5 6 7 8 9")

6、;pDC->TextOut(200,40,"A B C D E F G H I J Q L M N "); pDC->TextOut(200,70,"O P Q R S T U V W X Y Z 中的一個(gè)");3.7 類CRecChar添加WM_INITDIALOG的消息處理函數(shù)打開類向?qū)?,為類CRecChar添加WM_INITDIALOG的消息處理函數(shù),在函數(shù)中實(shí)現(xiàn)創(chuàng)建畫筆,設(shè)置大的鼠標(biāo),獲取面板客戶區(qū),初始化筆畫的功能。代碼如下:BOOL CRecChar:OnInitDialog() CDialog:OnInitDialog();Se

7、tIcon(m_hIcon, TRUE); /設(shè)置大的鼠標(biāo)pen.CreatePen(PS_SOLID,6,RGB(0,255,0); /創(chuàng)建畫筆m_Panel.GetClientRect(m_rect); /獲取面板客戶區(qū)域m_Figure.DotCount = 0; for (int i =0; i<16; i+) /遍歷筆畫方向m_Figure.Directioni= none; /初始化筆畫return TRUE; 3.8 定義結(jié)構(gòu)體Figure定義一個(gè)結(jié)構(gòu)體Figure ,其中有兩個(gè)成員,Dir類型的數(shù)組Direction16,用來表示鼠標(biāo)移動(dòng)的方向,分別有right,down

8、,left,up四個(gè)方向。int類型的變量DotCount,用來表示斷筆數(shù),即筆畫數(shù)。代碼為:struct FigureDir Direction16;int DotCount ; ;3.9 為類CRecChar定義變量在類CRecChar頭文件中定義變量,代碼如下CRect m_rect;BOOL m_Buttondowned; CPen pen;CPoint m_Startpt;CPoint m_Endpt;CPoint m_Prept;Figure m_Figure;int m_curpen; /用于表示當(dāng)前筆數(shù)BOOL m_Isreg; /用于判斷是否開始識(shí)別3.10 為類CRecCh

9、ar添加WM_MOUSEMOVE的鼠標(biāo)消息函數(shù)在按下鼠標(biāo)按鈕并移動(dòng)時(shí),在面板中繪制鼠標(biāo)的軌跡,以表示手寫的數(shù)字,在書寫數(shù)字的過程中記錄筆畫的方向和筆畫數(shù)。根據(jù)坐標(biāo)來判斷鼠標(biāo)是向哪一個(gè)方向并將m_Figure.Directionm_curpen賦值為對(duì)應(yīng)的方向值3.11 為類CRecChar添加鼠標(biāo)消息函數(shù)為類CRecChar添加WM_LBUTTONDOWN及WM_LBUTTONUP的鼠標(biāo)消息函數(shù)OnLButtonDown(),OnLButtonUp()。代碼如下:void CRecChar:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add

10、 your message handler code here and/or call defaultm_Buttondowned = TRUE;m_Startpt = point;m_Prept = point;if(m_rect.PtInRect(point)m_Figure.DotCount += 1;CDialog:OnLButtonDown(nFlags, point);void CRecChar:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call

11、defaultm_curpen +;m_Endpt = point;m_Buttondowned = FALSE;CDialog:OnLButtonUp(nFlags, point);3.12 為控件IDC_RECOGNISE的單擊函數(shù)OnRecgnise()單擊識(shí)別按鈕后,根據(jù)在面板上所寫字符的筆畫方向和斷筆數(shù)來判斷所寫的字符是什么。例如判斷8的代碼如下:if (m_Figure.DotCount=1)/判斷8if ( m_Figure.Direction0=left)if (m_Figure.Direction1=down)if(m_Figure.Direction2=left)if(m_

12、Figure.Direction3=up)if(m_Figure.Direction4=right) if(m_Figure.Direction5=up) MessageBox("8");for (int i =0; i<16; i+)m_Figure.Directioni= none;m_Figure.DotCount = 0;m_Panel.Invalidate();return;if ( m_Figure.Direction0=down)if (m_Figure.Direction1=right)if(m_Figure.Direction2=down)if(m_

13、Figure.Direction3=right)if(m_Figure.Direction4=up)if(m_Figure.Direction5=left)MessageBox("8");for (int i =0; i<16; i+)m_Figure.Directioni= none;m_Figure.DotCount = 0;m_Panel.Invalidate();return;if ( m_Figure.Direction0=left)if (m_Figure.Direction1=down)if(m_Figure.Direction2=right)if(m_

14、Figure.Direction3=down)if(m_Figure.Direction4=left)if(m_Figure.Direction5=up)MessageBox("8");for (int i =0; i<16; i+)m_Figure.Directioni= none;m_Figure.DotCount = 0;m_Panel.Invalidate();return;4 本程序的缺陷及改進(jìn)方法由于本程序是根據(jù)人們習(xí)慣上寫字的筆畫方向和斷筆數(shù)來判斷所寫字符,但實(shí)際上有很多字符的筆畫方向和斷筆數(shù)是相同的,因此并不能準(zhǔn)確識(shí)別每一個(gè)字符。如果所寫字符跟程序判斷的標(biāo)準(zhǔn)稍微有些偏差也會(huì)造成無法識(shí)別。另外也不能判斷多個(gè)字符。對(duì)以上問題,我想到了一些改進(jìn)方法:可以再定義變量,用于判斷不同筆畫的相對(duì)位置來區(qū)分筆畫方向和斷筆數(shù)的字符,如A和H。如果斷筆數(shù)為1,也可以定義一個(gè)變量用來判斷此筆畫是否筆畫來判

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論