freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

手寫數(shù)字識別畢業(yè)設(shè)計-資料下載頁

2024-11-23 16:58本頁面

【導讀】手寫數(shù)字(字母)識別由于其字形信息量小、筆劃順序信息很難獲取、字。形相差較小等特點成為模式識別領(lǐng)域中一個具有挑戰(zhàn)性的課題。作用,它的研究對于手寫數(shù)字信息的錄入和開發(fā)新的計算機智能輸入系統(tǒng)有重要意義。過對比,本文使用了模板匹配的分類器和基于神經(jīng)網(wǎng)絡(luò)的分類器。果,因此對特征的提取有很大的困難。作為樣本數(shù)據(jù)進行網(wǎng)絡(luò)訓練和特征提取過程的測試。

  

【正文】 可以有幾十成個數(shù)據(jù)。為了對樣品進行準確的識別,需要進行特征選擇或特征壓縮。特征選指對原始數(shù)據(jù)進行抽取,抽取那些對區(qū)別不同類別最為重要的特征,而舍去那些對分類并無多大貢獻的特征,得到能反映分類本質(zhì)的特征。如果區(qū)別不同中類別的特征都能從輸入數(shù)據(jù)中找到 ,這時自動模式識別問題就簡化為匹配和查表。 特征的選擇常常面臨著保留哪些描述量,刪除哪些描述量的決擇,通常要經(jīng)過從多到少的過程,因為在設(shè)計識別方案即階段,應該盡量多地列舉各種可能與分類有關(guān)的特征 ,這樣可以充分利用各種有用的信息,改善分類的結(jié)果。 對數(shù)字的識別特征提取可以有多種方法,有的方法認為從框架的左邊框到數(shù)字之間的距離變化反映了不同數(shù)神出鬼沒不同形狀, 以框架的左邊框到數(shù)字之間的距離用來作為數(shù)字分類的依據(jù)。另外種方法是在每個數(shù)字圖形上提取特征值,定義一個 N*N 的模板。本文中使用第二種方法對數(shù)字進行特征提取 。 其中 N等于 5,即本文中使用一個 5*5 的模板對樣本進行特征提取。 采用模板的好處是,針對同一形狀,不同大小的樣口得到的特征值相差不大,有能力對同一形狀,不同大小的樣品視為同類,因此本文中要求物體至少在寬度的高度要大于 5個像素,否則太小無法正確的分類。 N值越大,模板越大,特征越多,區(qū)分不同物體的能力越強,但同時計算量也會增加,運行時間增大, 而 N值過小不利于不同特征體間的區(qū)別。 位 圖數(shù)據(jù)的提取 位圖數(shù)據(jù)可以直接從文件中的 bmp 文件中取得 。此功能由類 BitMap 完成 。 此類中有如下成員函數(shù) : LoadFile 從文件加載位圖 SaveFile 保存位圖到文件 GetData 返回加載的位圖的數(shù)據(jù)指針 GetWidth 返回圖像的寬度 GetHeight 返回圖像的高度 GetSize 返回圖像的大小 GetNumOfColors 返回顏色表中顏色數(shù) 桂林電子科技大學畢業(yè)設(shè)計(論文)報告用紙 第 18 頁 共 37 頁 通過此類中函數(shù) LoadFile 加載位圖后即可通過 GetData 得到加載的位圖的數(shù)據(jù) 指針 。 位圖數(shù)據(jù)還可以通過鼠標 在 程序界面直接輸入,此功能通過控件 BmpEdit 完成 。此控件通過子類化一個 static 控件實現(xiàn) ,通在自行處理鼠標消息實現(xiàn)在 控件中繪制功能 。此控件中主在用的函數(shù)是 GetData(),它返回繪制的圖像數(shù)據(jù) 。 BmpEdit 使用一個數(shù)組保存存繪制的數(shù)據(jù),在此類的創(chuàng)建時,會把位圖的格式設(shè)為 8位位圖,因為只會用到兩種顏色所以同時會設(shè)置調(diào)色板中只有兩種顏色 。此時位圖數(shù)據(jù)數(shù)組中只會是 0 和 1,指向調(diào)色板中的兩種顏色 。這樣就達到了圖像中的數(shù)據(jù)二值化的目的,簡化了圖像的處理 ,不需要再進行對圖像的二值化,因為在輸入的同時就已經(jīng)處理好了。 特征的提取 本文使用 5*5 的模板特征,如圖所示: 圖像邊緣提取。在同一圖片中, 手寫的數(shù)字 (字母 )不可能在同一位置,大小也不 同 ,此時 首先需提取在一張圖片中 提取手寫的數(shù)字(字母 )的位置,也就是數(shù)字位于圖片中的上下左右四個邊框 。 通過 NgetFeatuer 類中的 如下函數(shù)完成 : void NgetFeature::GetPos(BYTE * data, ...) 。此函數(shù)會在 data 指向的位圖數(shù)據(jù)中 查找此位圖中手寫數(shù)字的上下左右四個邊緣,并將 結(jié)果保存在 NgetFeature 類中的成員變量中 。 取得圖像的邊緣后 , 會將圖片中上下左右四個邊緣組成的框分成 5*5 的 方格 ,然后分別統(tǒng)計這些 框中有用像素 的總數(shù),作為 該圖像數(shù)字 的一個特征。 統(tǒng)計一個小框中的像素個數(shù)由 NgetFeature 類中的函數(shù) GetPixelInBlock 完成。 為了統(tǒng)一圖像的特征值的范圍, 會 將所有的特征值都通過運算,換算成 0 到 1 之間的數(shù)據(jù) 。此過程通過將 5*5 中的每個一小框中的像素總數(shù)除以此方框的寬與高的像素的積。 此時所有的特征值都會在 0到 1之間 變化。 下圖是對圖片進行特征提取的實例 : 原始圖 : 桂林電子科技大學畢業(yè)設(shè)計(論文)報告用紙 第 19 頁 共 37 頁 5 數(shù)字 (字母 )識別軟件的實 現(xiàn) 特征保存與提取 模塊 類 Nfeature, 此類用于保存一個特征,包含了一個從圖片中提取的 5*5 的特征數(shù)組。 在 類的內(nèi)部 對于 特征的保存可以使用兩種方法,一種是真接使用一個 25 維的數(shù)組來進行特征的保存,別一種是使用 c++的 STL 庫中提供的模板庫來進行保存 。 使用數(shù)組的好處很明顯,訪問起來快速 ,而且真接明了,但是使用數(shù)組 對于程序的改進有很大的限制。因為數(shù)組的聲明是大小固定的。本文中使用的是 25維數(shù)組的特征,如果 將來要進行改進, 也許特征會大于 25 維,此時數(shù)組的大小則會不夠,如果要繼續(xù)使 用此類,則要進行代碼的重新編寫,無法重用 。如果使用小于 25 維的特征,則會造成空間的浪費 。 因此沒有使用此種方法 。 本文中使用 STL中的 vector 模板類 。 Vectors 包含著一系列連續(xù)存儲的元素 ,其行為和數(shù)組類似。訪問 Vector 中的任意元素或從末尾添加元素都可以在常量級時間復雜度內(nèi)完成,而查找特定值的元素所處的位置或是在 Vector 中插入元素則是線性時間復雜度。 使用 vector 模板有如下好處: ,所以在訪問時可以像訪問數(shù)組一樣在常量時間訪問到向量的的所有原素 。 中存儲空間的大小是動態(tài)會配的,所以 大小會 自動的根據(jù)保存到類中的數(shù)據(jù)的多少自動的進行調(diào)整 。因為分配時是按塊分配內(nèi)存的,所以也不用太過于擔心過多的內(nèi)存分配 所帶來的 時間花費。 vector 是一個類,但是 stl 庫中對于運算符的重載都做得很全面,所以,對于此類中內(nèi)部的數(shù)據(jù)訪問,都可以和數(shù)組一樣,像對待數(shù)組一樣來對特它 。 還可以根據(jù)自己的需要對類中也有的成員函數(shù)進行簡單的包裝,從而實現(xiàn) 自己特定的功能。 提供了完整的 對數(shù)據(jù)的操作成員函數(shù)。對于數(shù)據(jù)的插入,刪除查找 ,取得指定位置的數(shù)據(jù)都有完整的函數(shù),使 用起來方便簡單,無需使用者去關(guān)注細節(jié),就可以獲得不少的功能 。 Nfeature 類主要是用于保存一個 25 維的數(shù)據(jù)特征,所以此類比較簡單 ,主要有以下成員: std::vectorfloat fea 用于保存 25維特征 + PushBack 插入一個數(shù)據(jù) + SetInPos 設(shè)軒指定位置的數(shù)據(jù) + GetInPos 取得指定位置的數(shù)據(jù) 桂林電子科技大學畢業(yè)設(shè)計(論文)報告用紙 第 20 頁 共 37 頁 + Distance 計算兩個特征之間的距離 + clear 清空數(shù)據(jù) 這些成員函數(shù)的實現(xiàn)也是使用了 stl 中的 vector 中的成員函數(shù),對其進行包裝 。 數(shù) 字特 征類 NumFeature, 此類代表一個數(shù)字的特征 。為什么不用一個 Nfeature 類來保存一個數(shù)字的特征,因為 一 個數(shù)字 ,在進行相似性匹配時也就是模板匹配,并不是只與一個特征進行比較,而是會將一個樣本的特征與多個 標準的模板進行比較,這里的標準模板也是手寫的數(shù)字特征, 這樣一個數(shù)字根據(jù)識別結(jié)果的需要就會有多個特征保存在 程序中,以便隨時進行匹配 ,所以才會專門設(shè)計一個 NumFeature 類用來保存數(shù)字的特征 。 可以看出,此類與 Nfeature 類是組合關(guān)系。 也就是一個 NumFeature 類中會有多個Nfeature 類的實 例 。在類的內(nèi)部同樣是使用一個 vector 模板類來實現(xiàn)此功能。 數(shù)字特征的庫 NumFeatureLib, 數(shù)字特征的庫它保存了所有 10 個數(shù)字的特征,使用這樣一個類是為了便于管理數(shù)字的特征,這是一個數(shù)字特征的集合,可以看是它是由 NumFeature 類聚合而來的。相當于一個容器,用于保存許多的數(shù)字特征。 此類還實現(xiàn)了從文件加載 數(shù)字的特征以及保存 數(shù)字的特征到文件中的功能,這兩個功能在此類中是兩個較重要的函數(shù) ,它可以實時的把識別過程中的各種有用的特征進行永久的保存到文件,并且可以 在下次運行的時候 從 文件重新加載這些特征 。 此類中較重要的兩個函數(shù): a. bool LoadFeatureFromFile(WCHAR* path ) 。 b. bool SaveFeatureToFile( WCHAR * path ) 。 右圖是從文件加載特征的流程圖 ,保存特征與此類似。 從文件加載特征 和保存特征到文件 , path 是特征文件的 路徑 。 本程序設(shè)計了一個得單的 特征文件結(jié)構(gòu) ,它是一個純文本文件 ,可以直接用文本程序打開 。此文本中的每個行代表了某個數(shù)字的特征 。每一行的第一個字符說明了此行代表的是哪一個字符,以空格分開的第二個字符 代表 的是此行所代表的數(shù)字共有幾個特征,然后再以空格分開后的一連串的數(shù)據(jù)則是所有的特征 。 例如: 打開文件 讀取數(shù)字,及特征的個數(shù) 計算數(shù)據(jù)個數(shù) 讀取數(shù)據(jù) 數(shù)據(jù)讀完 到達文件尾 返回 N 桂林電子科技大學畢業(yè)設(shè)計(論文)報告用紙 第 21 頁 共 37 頁 4 2 ?? 意思是 此行所代表的數(shù)字是 4,它共有兩個 25 維的 特征 共 50 個數(shù)據(jù) 。 當從文件加載特征時也是按此規(guī)律進行數(shù)據(jù)的讀取 。 對于 文件的讀取與打開,則直接使用 _wfopen與 fwscanf,而并沒有使用 WINODWS API函數(shù),因為它直接提供了從文件讀取整數(shù)的小數(shù)的功能,使用起來很方便 ,如果使用ReadFile 和 CreateFile 來進行對文件的操作,還要自行對文件進行分析,并將字符串轉(zhuǎn)換成 整數(shù)或小數(shù),使用起來 麻煩 。 模塊 特征提取類基類 XgetFeature, 這是一個純虛類,它 只是用來提供接特征提取的結(jié)口 ,任何一個要具有特征提取功能 的類只要從此類中繼承,并且實現(xiàn)相應的接口函數(shù)即可 。它提供了 3個同名的接口函數(shù),只是參數(shù)不同。 這樣做的好處 如下 : ,并且可以使用基類指針實現(xiàn)動態(tài)鏈接,實現(xiàn)代碼的重用 。 ,從是有新的子類 繼承,從而在不影響原來代碼的情況下,實現(xiàn)一種新的特征提取算法,從而實現(xiàn) 代碼的可擴展性 。 特征提取類 NgetFeature, 此類從 XFeature 繼承而來,并且實現(xiàn)了其中的三個特征提取的虛函數(shù),從而具有特征提取的功能 。 它從基類中繼承了三個同名的函數(shù) ,都是用于特征提取的功能 : virtual NFeature GetFeature(BYTE * data , int width , int height ) 。 virtual NFeature GetFeature( WCHAR * path ) 。 //path 圖像的路徑 virtual NFeature GetFeature( BitMapamp。 bm ) 。 此類中主要還有另外兩個么有的成員函數(shù),都是在特征提取過程中要用到的。GetPos,此函數(shù)會在位圖數(shù)據(jù)中查找手寫數(shù)字的匹域 ,也就是在圖片中手寫數(shù)字的 位置,上下左右邊緣,分別保存在私有成員, left, top,right, bottom 中 。 GetPixelInBlock 此函數(shù)用于統(tǒng)計有用像素的個數(shù),作為特征。 以上各個類之間的關(guān)系圖大概如 右 圖所示: NumatureLib 由多個數(shù)字特征組成的一個庫 Nfeature 保存一個特征 NnmFeature 保存一個數(shù)字的特征,一個數(shù)字可能有多個特征樣本 NGetFeature 數(shù)字特征的提取類 Virtual XgetFeature 特征提取類的基類 桂林電子科技大學畢業(yè)設(shè)計(論文)報告用紙 第 22 頁 共 37 頁 BP 神經(jīng)網(wǎng)絡(luò) 的實現(xiàn) 模塊 神經(jīng)網(wǎng)絡(luò)類主要 有 : Bpfnc 類, Bp類, 2Fnc 類 , Bp2 類。 它們的關(guān)系如下: Bp 類是神經(jīng)網(wǎng)絡(luò)的基類, 對于不同的 神經(jīng)網(wǎng)絡(luò)的改進有不同的算法,當需要時只需從此類中繼承,然后實現(xiàn)相應的算法,就可以在不修改其它的地方的情況下,使用原來的接口 對代碼進行改進,使用基類的指針進行 對象的創(chuàng)建還可以實現(xiàn)動態(tài)綁定 ,即使用基類的指針,指向繼承類的實例,使用基類指針調(diào)用繼承類的具體實現(xiàn)。 這樣做的好處如下: 。在所有使用此類及其子類的地方都使用的是一個接口,雖然它們的實現(xiàn)是不一樣的 。 在進 行改進后可以無需進行原來已經(jīng)做好的代碼,只需進行繼承 ,并實現(xiàn)一個新的算法 ,并使用新的子類進行實例化 。 。對于神經(jīng)網(wǎng)絡(luò)的改進算法有多種方式 ,當需要新的實現(xiàn)時可以很好的人、利用好原來的結(jié)構(gòu)和接口。 。
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1