版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 第一章 概述…………………………………………………………4</p><p> 第(一)節(jié) 引言………………………………………………4</p><p> 犯得上法境………………………………6</p><p> 第(一)節(jié) 數(shù)字圖像處理技術(shù)…………………………………6</p><p> 1. 圖像全 處理的基
2、本內(nèi)A ………………………………………6</p><p> 2. 主要的圖像處理技術(shù) ………………………………………… 6</p><p> 第(二)節(jié) 圖像格式-BMP格式………………………… 7</p><p> 第三節(jié) 算法及數(shù)學(xué)基礎(chǔ)……………………………………………8</p><p> 1. 霍夫變換(Hough Tr
3、ansform)……………………………… 8</p><p> 2. 基于單義域的直線(xiàn)及圓識(shí)別算法……………………………11</p><p> 3. 主要技術(shù)………………………………………………………14</p><p> 第三章 直線(xiàn)和圓的識(shí)別和編輯的實(shí)現(xiàn)……………………………15</p><p> 第(一)節(jié) 系統(tǒng)的層次結(jié)構(gòu)
4、的圖示……………………………15</p><p> 第(二)節(jié) 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)及類(lèi)的設(shè)計(jì)…………………………16</p><p> 1. 主要類(lèi)的層次結(jié)構(gòu)………………………………………………16</p><p> 2. 圖形基類(lèi)(CShape)…………………………………………17</p><p> 3. 圖形類(lèi)(CLine、CC
5、ircle)…………………………………18</p><p> 4. 圖形容器類(lèi)(CShapes)………………………………………20</p><p> 5. 點(diǎn)類(lèi)(CPoint)………………………………………………21</p><p> 6. 單義域類(lèi)(CSegment)………………………………………21</p><p> 7.
6、 基于單義域識(shí)別類(lèi)(CSegments)……………………………22</p><p> 8. 霍夫變換識(shí)別直線(xiàn)類(lèi)(CHTLine)……………………………23</p><p> 9. 霍夫變換識(shí)別圓類(lèi)(CHTCircle)…………………………… 23</p><p> 第(三)節(jié) 系統(tǒng)功能介紹……………………………………… 24</p><
7、;p> 第四章 總結(jié)及展望…………………………………………………29</p><p> 附錄1:參考文獻(xiàn)……………………………………………………30</p><p> 附錄2: 結(jié)束語(yǔ)……………………………………………………32</p><p><b> 概述</b></p><p><b>
8、 引言</b></p><p> 本論文實(shí)現(xiàn)的是基礎(chǔ)的圖形識(shí)別,bmp圖像文件格式中對(duì)圖形的矢量化。識(shí)別基本的圖元直線(xiàn)和圓。直線(xiàn)和圓是二值圖像中最基本的組成元素,也是最常見(jiàn)的圖形元素。在工程圖的數(shù)字化識(shí)別中有很大的應(yīng)用。</p><p> 關(guān)于理想情況的幾點(diǎn)說(shuō)明:</p><p> 所識(shí)別的bmp圖像文件是經(jīng)過(guò)處理的,沒(méi)有“噪音”等,在本論文中直
9、接采用的是用Windows中的畫(huà)圖軟件畫(huà)出的圖像。</p><p> 本論文中圖像中的圖元都是單一的線(xiàn)性,即線(xiàn)寬是一個(gè)象素的情況。</p><p> 在工程圖的識(shí)別中常用的方法</p><p> 圖形的識(shí)別最主要的是圖形特征的提取,在這個(gè)階段,常用的方法是全局特征方法(包括:不變距,自回歸模型、傅立葉描述符、霍夫變換等),全局特征的特征提取方法是理論比較完善的
10、,計(jì)算過(guò)程比較清楚。針對(duì)不同的特征提取處理,采用相對(duì)應(yīng)的模式匹配方法來(lái)將圖形分類(lèi),模式識(shí)別迄今已有很多方法,有模板匹配、統(tǒng)計(jì)模式識(shí)別、句法模式識(shí)別、模糊識(shí)別和神經(jīng)網(wǎng)絡(luò)識(shí)別等。</p><p> 在二值圖像的處理中,人們常用的數(shù)據(jù)結(jié)果有游程編碼-考慮了掃描行上相鄰象素間的相關(guān)性;行相鄰圖法(Line Adjeceney Gragh),是由Pavlidis提出的一種二值圖的數(shù)據(jù)結(jié)構(gòu),LAG還考慮了相鄰行黑游程之間的
11、相鄰關(guān)系,遍歷時(shí)很方便;BAG(Bloek Adjeceney Gragh)是由余斌提出的,它是相鄰圖LAG在兩個(gè)方向上的推廣。在本論文中就是利用了LAG的數(shù)據(jù)結(jié)構(gòu)思想與c++ builder的數(shù)據(jù)結(jié)構(gòu)相結(jié)合的方法即:用下一個(gè)象素點(diǎn)是與鏈表頭相鄰還是和尾相鄰來(lái)描述其相鄰的關(guān)系。</p><p> 本論文中對(duì)交點(diǎn)的處理。目前對(duì)交點(diǎn)的處理有下面幾類(lèi)算法:</p><p> 基于網(wǎng)格算法,該
12、算法是通過(guò)網(wǎng)格加大搜索步長(zhǎng)來(lái)跳過(guò)交點(diǎn)。</p><p> 基于圖段合并的算法,是根據(jù)交點(diǎn)處行程段的連通性,以交點(diǎn)為界將圖線(xiàn)分割成圖段,記錄各段之間的連接及從屬關(guān)系,然后連接或延長(zhǎng)各分支圖段,然后得到整條圖線(xiàn)。</p><p> 在本論文中采用了第二種方法,基于圖段合并的算法。</p><p> 當(dāng)然現(xiàn)下有很多更好的算法和數(shù)據(jù)結(jié)構(gòu),但是大部分是針對(duì)具體的結(jié)構(gòu)或者
13、研究方向不具有一般性,所以本論文的實(shí)現(xiàn)用了上述的數(shù)據(jù)結(jié)構(gòu)和方法。</p><p> 論文的工作基礎(chǔ)和工作環(huán)境</p><p><b> 數(shù)字圖像處理技術(shù)</b></p><p> 將客觀(guān)世界實(shí)體或圖片等通過(guò)不同的量化(數(shù)字化)手段送入計(jì)算機(jī),由計(jì)算機(jī)按使用要求進(jìn)行圖像的平滑、增強(qiáng)、復(fù)原、分割、重建、編碼、存儲(chǔ)、傳輸?shù)确N種不同的處理,需要時(shí)
14、把加工處理后的圖像重新輸出,這個(gè)過(guò)程稱(chēng)為圖像處理。因此,圖像處理的含義是用計(jì)算機(jī)對(duì)圖像進(jìn)行加工處理以得到某種預(yù)期的效果,它本質(zhì)上是一種二維數(shù)字信號(hào)處理技術(shù)。</p><p><b> 圖像處理的基本內(nèi)容</b></p><p> 圖像處理的基本內(nèi)容可以歸結(jié)為:</p><p> 對(duì)圖像進(jìn)行增強(qiáng)或修改。</p><p&g
15、t; 以改變或強(qiáng)調(diào)圖像信息的某些特點(diǎn)(增強(qiáng)有用信息,無(wú)用信息),改善圖像的視覺(jué)質(zhì)量;</p><p> 描述圖像的特征并進(jìn)行特征抽取和分析。</p><p> 例如提取圖像的紋理特征、頻譜特征、邊界特征和顏色特征等;對(duì)像素用某個(gè)標(biāo)準(zhǔn)衡量并進(jìn)行分類(lèi)比較,將抽取的特征歸結(jié)為一定的模式,這屬于模式識(shí)別的范圍;</p><p> 圖像的重建(Reconstructi
16、on)。</p><p> 對(duì)圖像的某些部分合并或進(jìn)行重新組織,這種技術(shù)是從N—1維的信息用某種算法得到N維的圖像,例如計(jì)算機(jī)視覺(jué)就是這樣的一種技術(shù)。</p><p><b> 主要的圖像處理技術(shù)</b></p><p><b> 圖像的增強(qiáng)和恢復(fù)</b></p><p> 圖像增強(qiáng)所追求的
17、目標(biāo)是改善圖像的視覺(jué)質(zhì)量,符合人們的主觀(guān)要求,它不追究圖像客觀(guān)質(zhì)量的降低原因。圖像的視覺(jué)質(zhì)量是因人而異的,其質(zhì)量的高低和好壞受觀(guān)看者的心理、愛(ài)好和文化素質(zhì)等因素的影響。圖像的恢復(fù)則致力于探索圖像質(zhì)量降低的原因,并盡可能消除圖像質(zhì)量的降低,恢復(fù)圖像的本來(lái)面目。</p><p><b> 圖像的壓縮編碼</b></p><p> 彩色數(shù)字圖像通常是由三個(gè)二維數(shù)組組成的
18、,其信息量相當(dāng)大,這給圖像的傳輸、處理、存儲(chǔ)和顯示等帶來(lái)很大的負(fù)擔(dān)。但問(wèn)題的另一方面是圖像中又往往存在很多冗余信息,在傳輸和存儲(chǔ)時(shí)可以對(duì)數(shù)字圖像進(jìn)行一定方式的編碼,刪除圖像中的冗余信息,以提高圖像傳輸和存儲(chǔ)的效率。</p><p><b> 圖像重建</b></p><p> 在醫(yī)學(xué)和工程應(yīng)用中,利用超聲波、x射線(xiàn)等技術(shù)取得物體的多幅來(lái)自不同角度的投影圖,通過(guò)計(jì)算
19、可得到物缽內(nèi)部的圖像,這種技術(shù)稱(chēng)為投影重建,例如CT就是圖像重建的一個(gè)應(yīng)用。</p><p><b> 圖像的分割和描述</b></p><p> 計(jì)算機(jī)按照一定的客觀(guān)測(cè)度(例如灰度、顏色和幾何性質(zhì)等)將圖像中包含的物體和區(qū)域從圖像中區(qū)分出來(lái),稱(chēng)為圖像的分割。用適當(dāng)?shù)臄?shù)學(xué)語(yǔ)言來(lái)表示被分割出來(lái)的物體或區(qū)域的結(jié)構(gòu)和統(tǒng)計(jì)特性,或用數(shù)學(xué)語(yǔ)言表示區(qū)域問(wèn)的關(guān)系,稱(chēng)為描述。圖像
20、經(jīng)分別和描述后,可較為容易地分類(lèi)和識(shí)別。</p><p> 圖像格式-BMP格式</p><p> BMP(Bitmap-File)圖形文件是Windows采用的圖形文件格式,在Windows環(huán)境下運(yùn)行的所有圖像處理軟件都支持BMP圖像文件格式。Windows系統(tǒng)內(nèi)部各圖像繪制操作都是以BMP為基礎(chǔ)的。Windows 3.0以前的BMP圖文件格式與顯示設(shè)備有關(guān),因此把這種BMP圖像文件
21、格式稱(chēng)為設(shè)備相關(guān)位圖DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP圖像文件與顯示設(shè)備無(wú)關(guān),因此把這種BMP圖像文件格式稱(chēng)為設(shè)備無(wú)關(guān)位圖DIB(device-independent bitmap)格式,目的是為了讓W(xué)indows能夠在任何類(lèi)型的顯示設(shè)備上顯示所存儲(chǔ)的圖像。BMP位圖文件默認(rèn)的文件擴(kuò)展名是BMP或者bmp(有時(shí)它也會(huì)以.DIB或.RLE作擴(kuò)展名)。</p>
22、<p><b> 文件結(jié)構(gòu)</b></p><p> 位圖文件可看成由4個(gè)部分組成:位圖文件頭(bitmap-file header)、位圖信息頭(bitmap-information header)、彩色表(color table)和定義位圖的字節(jié)陣列,它具有如下所示的形式。 </p><p><b> 算法及數(shù)學(xué)基礎(chǔ)</b>&
23、lt;/p><p> 霍夫變換(Hough Transform)</p><p> 霍夫變換是圖像處理中從圖像中識(shí)別幾何形狀的基本方法之一。其基本思想就是把圖像平面上的點(diǎn)對(duì)應(yīng)到參數(shù)平面上的曲線(xiàn),最后通過(guò)統(tǒng)計(jì)特性來(lái)解決問(wèn)題。自1962年Hough公布了該算法以來(lái),由于其良好的抗噪聲性能和對(duì)部分遮蓋的不敏感等特性,霍夫變換在模式識(shí)別領(lǐng)域得到廣泛的應(yīng)用,如直線(xiàn)、圓、橢圓、矩形等幾何圖形檢測(cè),任意
24、形狀區(qū)域的邊界提取,二維或三維運(yùn)動(dòng)的參數(shù)估計(jì)等。</p><p> 下面就于本論文相關(guān)的直線(xiàn)和圓的識(shí)別進(jìn)行簡(jiǎn)單的介紹。</p><p><b> 霍夫變換識(shí)別直線(xiàn)</b></p><p> 霍夫變換識(shí)別直線(xiàn),是將圖像空間中的一點(diǎn)變換為參數(shù)空間中的一條直線(xiàn)。圖像空間中同一直線(xiàn)上的點(diǎn),經(jīng)霍夫變換所形成的直線(xiàn)相交于參數(shù)空間中的一點(diǎn),該點(diǎn)坐標(biāo)代表
25、圖像空間中直線(xiàn)的斜率及截距。利用累加數(shù)組累計(jì)參數(shù)空間中通過(guò)該點(diǎn)的直線(xiàn)條數(shù),即代表圖像空間中直線(xiàn)上的點(diǎn)數(shù)。</p><p> 圖1.1 霍夫變換識(shí)別直線(xiàn)(1)</p><p> 設(shè)已知一黑白圖像上畫(huà)了一條直線(xiàn),要求出這條直線(xiàn)所在的位置。我們知道,直線(xiàn)的方程可以用來(lái)表示,其中k和b是參數(shù),分別是斜率和截距。過(guò)某一點(diǎn)的所有直線(xiàn)的參數(shù)都會(huì)滿(mǎn)足方程。即圖像空間中的一點(diǎn)確定了參數(shù)空間中的一族直線(xiàn)。
26、方程在參數(shù)k--b平面上是一條直線(xiàn)。這樣,圖像x--y平面上的一個(gè)前景像素點(diǎn)就對(duì)應(yīng)到參數(shù)平面上的一條直線(xiàn)。</p><p> 霍夫變換識(shí)別直線(xiàn)的算法描述如下:</p><p> Step1. 初始化一塊緩沖區(qū),對(duì)應(yīng)于參數(shù)平面,將其所有數(shù)據(jù)置為0。</p><p> Step2. 對(duì)于圖像上每一前景點(diǎn),求出參數(shù)平面對(duì)應(yīng)的直線(xiàn),把這直線(xiàn)上的所有點(diǎn)的值都加1。<
27、;/p><p> Step3. 找到參數(shù)平面上峰值點(diǎn)的位置,這些位置的坐標(biāo)就是原圖像上直線(xiàn)的參數(shù),每個(gè)位置對(duì)應(yīng)于原圖像上的一條直線(xiàn)。</p><p> 上面是霍夫變換識(shí)別直線(xiàn)的基本思想。在實(shí)際應(yīng)用中,形式的直線(xiàn)方程沒(méi)有辦法表示x=c形式的直線(xiàn)(這時(shí)候,直線(xiàn)的斜率為無(wú)窮大)。所以實(shí)際應(yīng)用中,是采用參數(shù)方程:</p><p> 這樣,圖像平面(x, y)空間上的一個(gè)點(diǎn)
28、就對(duì)應(yīng)到參數(shù)空間中的一條正弦曲線(xiàn)上。在變換后的空間中這條正弦曲線(xiàn)上的任意一點(diǎn)對(duì)應(yīng)于原始圖像平面(x, y)空間的一條直線(xiàn),這條直線(xiàn)必通過(guò)這個(gè)點(diǎn),而(x, y)空間中所有共線(xiàn)的點(diǎn)經(jīng)過(guò)變換后所對(duì)應(yīng)的各正弦曲線(xiàn)都相交于一點(diǎn)。</p><p> 圖1.2 霍夫變換識(shí)別直線(xiàn)(2)</p><p><b> 霍夫變換識(shí)別圓</b></p><p>
29、1) 半徑已知的圓的識(shí)別</p><p> 利用霍夫變換檢測(cè)出半徑已知的圓形,是將圖像平面上的每一點(diǎn)對(duì)應(yīng)到參數(shù)平面上的一個(gè)以已知半徑為半徑的圓。經(jīng)過(guò)霍夫變換,在參數(shù)平面上得到圓相交于一點(diǎn),這個(gè)點(diǎn)的坐標(biāo)即為原圖形坐標(biāo)平面上待識(shí)別的圓心坐標(biāo)。</p><p> 算法可以簡(jiǎn)單描述為:取和圖像平面一樣的參數(shù)平面,以圖像上每一個(gè)前景點(diǎn)為圓心,以已知的半徑在參數(shù)平面上畫(huà)圓,并把結(jié)果進(jìn)行累加。最后找
30、出參數(shù)平面上的峰值點(diǎn),這個(gè)位置就對(duì)應(yīng)了圖像上的圓心。</p><p> 2) 未知半徑的圓的識(shí)別</p><p> 在第一個(gè)問(wèn)題基礎(chǔ)上,把參數(shù)平面擴(kuò)大稱(chēng)為三維空間,即x--y--R三維,對(duì)應(yīng)圓的圓心和半徑。圖像平面上的每一點(diǎn)就對(duì)應(yīng)于參數(shù)空間中每個(gè)半徑下的一個(gè)圓,在參數(shù)的三維空間中得到一個(gè)圓錐。最后找出參數(shù)空間中的峰值點(diǎn),即得到待識(shí)別的圓的圓心和半徑。</p><p&
31、gt; 由于霍夫變換具有良好的抗噪聲性能和對(duì)部分遮蓋的不敏感等特性,又不受圖像旋轉(zhuǎn)的影響,在很多領(lǐng)域都有廣泛的應(yīng)用,有關(guān)霍夫變換的研究和改進(jìn)也很多。例如廣義霍夫變換、隨機(jī)霍夫變換、快速霍夫變換等等,就是針對(duì)直線(xiàn)的霍夫變換也有很多改進(jìn)算法。由于時(shí)間的原因,在本軟件中,只是使用了標(biāo)準(zhǔn)的霍夫變換算法。</p><p> 基于單義域的直線(xiàn)及圓識(shí)別算法</p><p> 霍夫變換為幾何圖形的識(shí)
32、別的一個(gè)重要算法,但是由于該標(biāo)準(zhǔn)算法的時(shí)間復(fù)雜度和空間復(fù)雜度都是,其中m是參數(shù)坐標(biāo)的維數(shù),雖然有不少針對(duì)具體問(wèn)題(例如直線(xiàn)識(shí)別)的改進(jìn)算法,其在實(shí)際使用中也存在計(jì)算量大的問(wèn)題。針對(duì)本論文的工作的實(shí)際情況,參考文獻(xiàn)【1】,并進(jìn)行了適當(dāng)?shù)暮?jiǎn)化,完成了論文的識(shí)別部分。下面就對(duì)這個(gè)基于單義域的識(shí)別算法進(jìn)行簡(jiǎn)單的介紹。</p><p><b> 多義域的獲得</b></p><p
33、> 單義域是指對(duì)待識(shí)別的圖形進(jìn)行分割得到的具有單一的幾何意義(線(xiàn)段或圓弧)點(diǎn)的集合。對(duì)圖片進(jìn)行從上往下、從左往右的掃描,根據(jù)交點(diǎn)進(jìn)行分割得到多義域,多義域中的點(diǎn)構(gòu)成一個(gè)連通區(qū)域。對(duì)多義域進(jìn)行識(shí)別并分割得到單義域。</p><p><b> 多義域由鏈表實(shí)現(xiàn)。</b></p><p><b> 算法描述如下:</b></p>
34、<p> 對(duì)圖形進(jìn)行從上往下、從左往右的掃描;</p><p> 對(duì)每一個(gè)前景點(diǎn),判斷其是否為交點(diǎn);</p><p> 將該點(diǎn)與現(xiàn)有的多義域的頭(如果其頭節(jié)點(diǎn)不是交點(diǎn))、尾(如果其尾節(jié)點(diǎn)不是交點(diǎn))節(jié)點(diǎn)進(jìn)行比較,如果與頭節(jié)點(diǎn)相鄰,將其插入到該多義域的頭節(jié)點(diǎn)之前;如果與尾節(jié)點(diǎn)相鄰,將其插入到該多義域的尾節(jié)點(diǎn)之后。</p><p> 如果該前景點(diǎn)不屬
35、于任何現(xiàn)有多義域,則以該點(diǎn)為頭節(jié)點(diǎn)生成新的多義域。</p><p><b> 直到圖形掃描完畢。</b></p><p><b> 注:交點(diǎn)的判斷。</b></p><p> 由此得到的多義域?qū)⑹且粋€(gè)線(xiàn)段、一個(gè)圓弧或者線(xiàn)段和圓弧的組合。在后續(xù)的識(shí)別過(guò)程中將把不是單義域的進(jìn)行分裂。</p><p&g
36、t; 最小二乘法擬合直線(xiàn)和圓</p><p> 最小二乘法首先由Karl Gauss為進(jìn)行行星軌道預(yù)測(cè)的研究而提出的。現(xiàn)在最小二乘法已經(jīng)變成從實(shí)驗(yàn)數(shù)據(jù)來(lái)進(jìn)行參數(shù)估計(jì)的主要手段。由最小二乘法獲得的估計(jì)在一定條件下有最佳的統(tǒng)計(jì)特性:一致、無(wú)偏、有效。它提供給我們一個(gè)數(shù)學(xué)程式,通過(guò)它能獲得一個(gè)在最小方差意義上與實(shí)驗(yàn)數(shù)據(jù)最好擬合助模型。</p><p> 運(yùn)用最小二乘法進(jìn)行圓的擬合公式如下:
37、</p><p> 其中,為樣點(diǎn),為所求圓心,為半徑,為平均徑向誤差, 為最大徑向誤差。</p><p> 多義域分裂和單義域的識(shí)別</p><p> 對(duì)2.1中得到的多義域,運(yùn)用最小二乘法進(jìn)行擬合,對(duì)于擬合不成功的多義域運(yùn)用首尾相連最大距離法進(jìn)行分裂,得到單義域,并記錄下各單義域的擬合結(jié)果,供全局考慮,識(shí)別直線(xiàn)和圓用。</p><p>
38、;<b> 算法描述如下:</b></p><p> 從2.1得到的多義域列表里取第一個(gè)多義域;</p><p> 對(duì)選中的多義域運(yùn)用最小二乘法進(jìn)行圓的擬合;如果得到的平均徑向誤差和最大徑向誤差小于指定閾值,則認(rèn)為擬合成功,該多義域?yàn)橐粓A弧的單義域;記錄擬合的結(jié)果,作為總體識(shí)別的種子圓,轉(zhuǎn)向5執(zhí)行,否則執(zhí)行3。</p><p> 對(duì)選中
39、的多義域運(yùn)用最小二乘法進(jìn)行直線(xiàn)擬合;如果得到的平均距離誤差和最大距離誤差小于指定閾值,則認(rèn)為擬合成功,該多義域?yàn)橐痪€(xiàn)段的單義域;記錄擬合結(jié)果,作為總體識(shí)別的種子直線(xiàn),轉(zhuǎn)向5執(zhí)行,否則執(zhí)行4。</p><p> 該多義域?yàn)槎鄠€(gè)線(xiàn)段或圓弧的組合。將該多義域的頭尾節(jié)點(diǎn)連接,計(jì)算該多義域中各點(diǎn)與頭尾節(jié)點(diǎn)連線(xiàn)的距離,取距離最大的點(diǎn),對(duì)該多義域進(jìn)行分裂,得到兩個(gè)新的多義域,取代原先的多義域;轉(zhuǎn)向2執(zhí)行。</p>
40、<p> 取多義域列表中的下一個(gè),轉(zhuǎn)向2執(zhí)行。</p><p> 由此,所有的多義域都分裂為單義域,并對(duì)各單義域進(jìn)行了擬合。</p><p> 總體整合,識(shí)別直線(xiàn)和圓</p><p> 對(duì)2.3得到的單義域列表進(jìn)行總體的整合,得到直線(xiàn)和圓。</p><p> 選取單義域列表中的第一個(gè)單義域,將其擬合的圖形(直線(xiàn)或圓)作
41、為種子圖形;</p><p> 將列表中其他單義域的識(shí)別結(jié)果與種子圖形進(jìn)行比較,如果誤差小于指定閾值,則屬于同一直線(xiàn)或同一圓,將其與選定單一域進(jìn)行合并,從列表中刪除該單義域;</p><p> 計(jì)算選定單義域的幾何數(shù)據(jù),得到圖形;</p><p> 選取列表中的下一個(gè)單義域,轉(zhuǎn)動(dòng)2執(zhí)行。</p><p><b> 主要技術(shù)&
42、lt;/b></p><p> Borland C++ Builder</p><p> 本論文的編程環(huán)境之所以選用c++ builder 是因?yàn)樗幸韵碌膬?yōu)點(diǎn):</p><p> ?、牛敵鋈虢涌谠O(shè)計(jì)簡(jiǎn)單</p><p> ?、疲峁┮涣鞯拈_(kāi)發(fā)環(huán)境</p><p> ?、牵峁┳顦?biāo)準(zhǔn)的C/C++魯開(kāi)發(fā)工具&
43、lt;/p><p> ⑷.提供豐富的組件與最強(qiáng)勁的調(diào)試工具VCL類(lèi)庫(kù)中封裝了Windows的圖形設(shè)備接口(GDI),使得用戶(hù)很方便地在應(yīng)用程序添加圖像或處理圖像。</p><p> 圖像類(lèi)主要有Tbitmap、TBrush、TCanves、TFont、TgraphakControl、Tgraphic、Ticon、TJPEGImage、TPen和Tpictur以Tmatifile類(lèi)。<
44、/p><p><b> 虛類(lèi)及虛方法的使用</b></p><p> 虛類(lèi)和虛方法的使用在本論文中主要是Cshapes基類(lèi)及虛方法的實(shí)現(xiàn)。</p><p> 直線(xiàn)和圓的識(shí)別和編輯的實(shí)現(xiàn)</p><p> 系統(tǒng)的層次結(jié)構(gòu)的圖示</p><p> 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)及類(lèi)的設(shè)計(jì)</p>&
45、lt;p><b> 主要類(lèi)的層次結(jié)構(gòu)</b></p><p><b> 圖形處理類(lèi):</b></p><p><b> 識(shí)別用類(lèi):</b></p><p> 圖形基類(lèi)(CShape)</p><p><b> 描述</b></p>
46、;<p> 圖形基類(lèi),提供所有圖形的標(biāo)準(zhǔn)屬性和方法。其他圖形類(lèi)(直線(xiàn)、圓)等都是該類(lèi)的子類(lèi),繼承其所有的public屬性和方法,對(duì)其中的虛方法(virtual)進(jìn)行重定義和實(shí)現(xiàn)。</p><p> 該類(lèi)為虛類(lèi),其成員函數(shù)主要為虛函數(shù),為其所有子類(lèi)提供統(tǒng)一的接口,但是沒(méi)有實(shí)現(xiàn)。其他模塊對(duì)圖形進(jìn)行操作時(shí),除非生成新的實(shí)例(Instance),都無(wú)須知道所操作的是哪個(gè)具體的圖形,而統(tǒng)一使用Cshape
47、類(lèi)型,為程序的實(shí)現(xiàn)、擴(kuò)充和維護(hù)提供很大方便。</p><p><b> 實(shí)現(xiàn)</b></p><p> class CShape {</p><p><b> public:</b></p><p> /* 屬性定義 */</p><p> //前景色(由于時(shí)間等的
48、限制,本系統(tǒng)暫時(shí)只定義該圖形的屬性,其</p><p> // 他如:填充色,線(xiàn)條型,填充型等可擴(kuò)充)</p><p> TColor color;</p><p> /* 編輯用屬性 */</p><p> //編輯時(shí)標(biāo)志該圖形是否被選擇</p><p> bool isSelected;&l
49、t;/p><p> //編輯操作所選中的點(diǎn)</p><p> TPoint * editP</p><p> /* 識(shí)別用屬性 */</p><p> // 識(shí)別的效果描述,值越小說(shuō)明識(shí)別效果越好</p><p> // 最小二乘法的平均誤差;</p><p> // 霍
50、夫變換:1 - 參數(shù)空間中該圖形的值/最大值</p><p> double chance;</p><p><b> //圖形上點(diǎn)的數(shù)量</b></p><p> int pointCount;</p><p> /* 成員函數(shù)定義 */</p><p> /* 顯示和描述用方法 */
51、</p><p> // 顯示圖形:在指定的位圖上顯示圖形 </p><p> virtual void draw(Graphics::TBitmap * argDest);</p><p> // 描述圖形:作為T(mén)treeView的節(jié)點(diǎn)(主窗體使用)</p><p> virtual void discript(int index,
52、 TTreeView * tree);</p><p> // 描述圖形:返回描述圖形的字符串</p><p> virtual String discript();</p><p><b> /* 識(shí)別用 */</b></p><p> // 比較兩個(gè)圖形,如果是同一個(gè)圖形,返回True,否則False。<
53、;/p><p> // 直線(xiàn)上的兩個(gè)線(xiàn)段;圓上面的兩個(gè)圓弧</p><p> virtual bool similarWith(CShape * argShape);</p><p><b> // 合并兩個(gè)圖形</b></p><p> // 經(jīng)過(guò)判斷為相同的圖形進(jìn)行合并,返回True;否則返回Fa
54、lse。</p><p> virtual bool mergeWith(CShape * argShape);</p><p> // 判斷圖形存在的可能性(利用具體圖形的幾何規(guī)則)</p><p> virtual bool checkPossible();</p><p><b> /* 編輯用 */</b>
55、;</p><p> // 判斷是否點(diǎn)擊該圖形,若選中則當(dāng)前編輯的圖形改為當(dāng)前圖形</p><p> virtual bool isClickOnShape(int x, int y);</p><p> // 取得鼠標(biāo)形狀:鼠標(biāo)移動(dòng)到選中圖形的可操作點(diǎn)上時(shí),顯示為編輯形狀</p><p> virtual TCursor getCu
56、rsor(int x, int y);</p><p> // 更新圖形:將編輯點(diǎn)移動(dòng)到(x, y)點(diǎn)。更新成功返回True,否則False。</p><p> virtual bool update(int x, int y);</p><p><b> };</b></p><p> 圖形類(lèi)(CLine、CC
57、ircle)</p><p><b> 描述</b></p><p> 圖形類(lèi)是幾何圖形的具體實(shí)現(xiàn),實(shí)現(xiàn)對(duì)應(yīng)幾何圖形的描述和相關(guān)操作。圖形類(lèi)有共同的父類(lèi)CShape,對(duì)父類(lèi)中定義的虛方法根據(jù)本幾何圖形的特征進(jìn)行實(shí)現(xiàn)。</p><p> 根據(jù)要求,本系統(tǒng)中實(shí)現(xiàn)了直線(xiàn)(CLine)和圓(CCircle)兩個(gè)圖形類(lèi)。其他簡(jiǎn)單的幾何圖形如橢圓、矩
58、形等也可以類(lèi)似的方法實(shí)現(xiàn),作為本系統(tǒng)的一個(gè)擴(kuò)充。</p><p> 本系統(tǒng)中,直線(xiàn)類(lèi)采用直觀(guān)的的形式來(lái)描述直線(xiàn)(既避免點(diǎn)斜式不能描述豎直直線(xiàn),也避免極坐標(biāo)方程轉(zhuǎn)換的問(wèn)題)。因?yàn)槌杀壤膬山M和表示同一條直線(xiàn),所以規(guī)定,如果B參數(shù)不為0,則,否則A必定不為0,則。由于要識(shí)別圖像中的線(xiàn)段,所以增加兩個(gè)端點(diǎn)進(jìn)行限制。</p><p> 直線(xiàn)類(lèi)有三個(gè)點(diǎn)可以編輯:1)兩個(gè)端點(diǎn),選中一個(gè)端點(diǎn)并移動(dòng),
59、是以另一端點(diǎn)為軸進(jìn)行旋轉(zhuǎn);2)線(xiàn)段的中點(diǎn),選中中點(diǎn)并移動(dòng),是平移整個(gè)直線(xiàn)。</p><p> 圓類(lèi)采用的形式描述(其中為圓心,R為半徑),直觀(guān)方便。圓上有兩個(gè)點(diǎn)支持編輯操作:1)圓心,選中圓心并移動(dòng),是平移整個(gè)圓;2)圓上的一個(gè)點(diǎn),選中該點(diǎn)并移動(dòng),是改變圓的半徑,圓心不變。</p><p><b> 實(shí)現(xiàn)</b></p><p> 直線(xiàn)類(lèi)
60、(CLine)</p><p> class CLine: public CShape {</p><p><b> public:</b></p><p><b> /* 初始化 */</b></p><p> CLine(double argA, double argB, double
61、argC);</p><p> /* 直線(xiàn)的屬性 */</p><p> // 線(xiàn)段的兩個(gè)端點(diǎn)</p><p> TPoint *startP, *endP;</p><p> // 直線(xiàn)方程的參數(shù):A,B,C</p><p> double A, B, C;</p><p> /*
62、 對(duì)父類(lèi)虛方法的實(shí)現(xiàn) */</p><p> // 在目標(biāo)位圖上畫(huà)出直線(xiàn)(本系統(tǒng)中的實(shí)現(xiàn)為畫(huà)線(xiàn)段)</p><p> void draw(Graphics::TBitmap * argDest);</p><p> // 在TTreeView中描述</p><p> void discript(int index, TTreeView
63、 * tree);</p><p> // 返回描述用字符串</p><p> String discript();</p><p> // 判斷該直線(xiàn)是否與指定圖形相同</p><p> // 將指定圖形強(qiáng)制轉(zhuǎn)化為CLine類(lèi)型,比較其參數(shù)A, B, C,</p><p> // 若小
64、于指定閾值,則返回Ture,否則返回False。</p><p> bool similarWith(CShape * argShape);</p><p> // 合并同一直線(xiàn)上的兩個(gè)線(xiàn)段</p><p> // 若目標(biāo)圖形與該圖形屬同一直線(xiàn),進(jìn)行合并,返回True;</p><p> // 否則返回False。&l
65、t;/p><p> void mergeWith(CShape * argShape);</p><p> // 判斷是否選擇該直線(xiàn)進(jìn)行編輯。</p><p> // 判斷指定點(diǎn)(x, y)到該直線(xiàn)的距離,</p><p> // 如果小于指定閾值則返回True,否則False。</p><p>
66、 bool isClickOnShape(int x, int y);</p><p> // 取得鼠標(biāo)形狀。</p><p> // 端點(diǎn)時(shí)返回45度,135度的雙向箭頭形狀表示旋轉(zhuǎn);</p><p> // 中點(diǎn)時(shí)返回垂直的四個(gè)方向箭頭的形狀表示移動(dòng)</p><p> TCursor getCursor(int x
67、, int y);</p><p><b> // 更新直線(xiàn)</b></p><p> bool update(int x, int y);</p><p><b> };</b></p><p> 圓類(lèi)(CCircle)</p><p> class CCircl
68、e: public CShape {</p><p><b> public:</b></p><p><b> /* 初始化 */</b></p><p> CCircle(int argX, int argY, int argR);</p><p> /* 圓的屬性 */</p&g
69、t;<p><b> // 圓心</b></p><p> TPoint * centerP;</p><p><b> // 半徑</b></p><p><b> int R;</b></p><p> /* 對(duì)父類(lèi)虛方法的實(shí)現(xiàn) */</p&g
70、t;<p> // 在目標(biāo)位圖上畫(huà)出圓</p><p> void draw(Graphics::TBitmap * argDest);</p><p> // 在TTreeView中描述</p><p> void discript(int index, TTreeView * tree);</p><p> //
71、返回描述用字符串</p><p> String discript();</p><p> // 判斷該圓是否與指定圖形相同</p><p> // 將指定圖形強(qiáng)制轉(zhuǎn)化為CCircle類(lèi)型,比較其參數(shù)圓心坐標(biāo)和半徑,</p><p> // 若小于指定閾值,則返回Ture,否則返回False。</p>
72、<p> bool similarWith(CShape * argShape);</p><p> // 合并同一圓上的兩個(gè)圓弧</p><p> // 若目標(biāo)圖形與該圖形屬同一圓,進(jìn)行合并,返回True;</p><p> // 否則返回False。</p><p> void mergeWith(
73、CShape * argShape);</p><p> // 判斷是否選擇該圓進(jìn)行編輯。</p><p> // 計(jì)算指定點(diǎn)(x, y)到圓心的距離,并與半徑比較,</p><p> // 如果小于指定閾值則返回True,否則False。</p><p> bool isClickOnShape(int x, int
74、 y);</p><p> // 取得鼠標(biāo)形狀。</p><p> // 圓上點(diǎn)時(shí)返回水平的雙向箭頭形狀表示改變半徑;</p><p> // 圓心時(shí)返回垂直的四個(gè)方向箭頭的形狀表示移動(dòng)</p><p> TCursor getCursor(int x, int y);</p><p><
75、b> // 更新圓</b></p><p> bool update(int x, int y);</p><p><b> };</b></p><p> 圖形容器類(lèi)(CShapes)</p><p><b> 描述</b></p><p>
76、圖形容器類(lèi)是圖形類(lèi)的集合類(lèi),由C++ Builder的TList繼承得到。用來(lái)組織對(duì)圖像的識(shí)別結(jié)果、組織當(dāng)前編輯工作的圖形對(duì)象集。提供添加圖形、刪除圖形、圖形編輯等接口。</p><p><b> 實(shí)現(xiàn)</b></p><p> class CShapes : public TList {</p><p><b> public
77、:</b></p><p><b> /* 初始化 */</b></p><p> CShapes();</p><p> // 從TreeView得到Shapes</p><p> CShapes(TTreeView * tree);</p><p> //在目標(biāo)位圖上畫(huà)出
78、所有的圖形</p><p> void drawShapes(Graphics::TBitmap * argDest);</p><p><b> //描述圖形</b></p><p> void discript(TTreeView * tree);</p><p><b> };</b>
79、</p><p> 點(diǎn)類(lèi)(CPoint)</p><p><b> 描述</b></p><p> 點(diǎn)類(lèi)對(duì)于與圖像上的前景點(diǎn)。由于識(shí)別時(shí)需要判斷是否為交點(diǎn),在一般的點(diǎn)的基礎(chǔ)上增加是否為交點(diǎn)的屬性。由C++ Builder的TPoint繼承得到。</p><p><b> 實(shí)現(xiàn)</b><
80、/p><p> class CPoint : public TPoint {</p><p><b> public:</b></p><p><b> /* 初始化 */</b></p><p> CPoint() {isCrossPoint = false; };</p>&l
81、t;p> CPoint(int argx, int argy, bool isCross);</p><p> CPoint(int argx, int argy, Graphics::TBitmap * argImg);</p><p> /* 屬性:是否為交點(diǎn) */</p><p> bool isCrossPoint;</p>&l
82、t;p><b> };</b></p><p> 單義域類(lèi)(CSegment)</p><p><b> 描述</b></p><p> 在“基于單義域的圖形識(shí)別算法”中,單義域和多義域的唯一區(qū)別就是多義域不是單一的幾何元素,其在存儲(chǔ)結(jié)構(gòu)上是一樣的,在本系統(tǒng)中,都由CSegment類(lèi)實(shí)現(xiàn),姑且命名為單義域類(lèi)。
83、</p><p> 單義域類(lèi)為點(diǎn)的集合類(lèi),由C++ Builder的TList類(lèi)繼承得到。提供添加點(diǎn)、刪除點(diǎn)、判斷該單義域是否有識(shí)別價(jià)值、識(shí)別該單義域等接口和方法。</p><p><b> 實(shí)現(xiàn)</b></p><p> class CSegment : public TList {</p><p><b&
84、gt; public:</b></p><p><b> /* 初始化 */</b></p><p> CSegment(CPoint * p);</p><p> /* 識(shí)別該單義域:實(shí)現(xiàn)算法中對(duì)單義域的識(shí)別部分 */</p><p> // 如果識(shí)別成功(得到圓或線(xiàn)段)返回True,否則返回F
85、alse</p><p> bool recognize();</p><p> /* 嘗試添加新的點(diǎn)到該單義域 */</p><p> // 判斷該點(diǎn)是否屬于該單義域并確定是在頭部還是在尾部,并將其插入到適當(dāng)位置;如果該點(diǎn)為交點(diǎn),則將相應(yīng)的方向關(guān)閉增長(zhǎng);若加入成功返回True,否則返回False。</p><p> bool ad
86、dNewPoint();</p><p> /* 判斷該單義域是否有識(shí)別價(jià)值 */</p><p> // 如果該單義域含有的點(diǎn)數(shù)太少,則沒(méi)有價(jià)值返回False,否則返回True。</p><p> bool checkValue();</p><p> /* 屬性:識(shí)別出的圖形 */</p><p> CS
87、hape * shape;</p><p><b> };</b></p><p> 基于單義域識(shí)別類(lèi)(CSegments)</p><p><b> 描述</b></p><p> 基于單義域識(shí)別類(lèi)是實(shí)現(xiàn)“基于單義域的直線(xiàn)和圓識(shí)別算法”的主要類(lèi)。它實(shí)現(xiàn)了對(duì)目標(biāo)圖像的分割、對(duì)分割結(jié)果的顯示、
88、對(duì)識(shí)別得到的多義域進(jìn)行分割、對(duì)單義域識(shí)別結(jié)果的總體考慮,最終得到識(shí)別結(jié)果集。</p><p> 基于單義域識(shí)別類(lèi)同時(shí)是單義域的集合類(lèi),由C++ Builder的TList類(lèi)繼承得到。用來(lái)組織對(duì)圖像的單義域分割后的結(jié)果。。</p><p><b> 實(shí)現(xiàn)</b></p><p> class CSegments : public TList
89、 {</p><p><b> public:</b></p><p> /* 構(gòu)造和析構(gòu)函數(shù) */</p><p> CSegments();</p><p> ~CSegments();</p><p> /* 掃描圖像,得到多義域 */</p><p>
90、// 從上往下,從左往右掃描圖像,對(duì)于每一個(gè)前景點(diǎn)</p><p> // 1。生成新的CPoint實(shí)例</p><p> // 2。對(duì)于本類(lèi)中的所有單義域,將該點(diǎn)嘗試加入</p><p> // 3。如果加入失敗,以該點(diǎn)為頭生成新的單義域并加入。</p><p> void segmentize(Graphi
91、cs::TBitmap * argSrc);</p><p> /* 在指定的位圖上顯示分割得到的多義域、單義域 */</p><p> void displaySegments(Graphics::TBitmap * argDes);</p><p> /* 識(shí)別該集合中的元素 */</p><p> // 1。調(diào)用單義域的che
92、ckValue(),如果得到False,刪除該單義域;</p><p> // 2。調(diào)用單義域的recognize(),如果返回False,對(duì)該單義域進(jìn)行分割;</p><p> // 將新得到的2個(gè)單義域取代當(dāng)前的單義域,并進(jìn)行識(shí)別</p><p> // 3。所有的單義域識(shí)別完畢后,對(duì)各個(gè)單義域的識(shí)別結(jié)果進(jìn)行合并</p><
93、p> // 4。返回得到的圖形容器類(lèi)。</p><p> CShapes * recognize();</p><p> /* 刪除集合中的指定位置的元素 */</p><p> void removeItemOnly(int index);</p><p> void removeItemAndFreePoints(int
94、 index);</p><p><b> };</b></p><p> 霍夫變換識(shí)別直線(xiàn)類(lèi)(CHTLine)</p><p><b> 描述</b></p><p> 實(shí)現(xiàn)霍夫變換識(shí)別直線(xiàn)算法。</p><p><b> 實(shí)現(xiàn)</b><
95、;/p><p> class CHTLine {</p><p><b> public:</b></p><p> /* 構(gòu)造和析構(gòu)函數(shù) */</p><p> CHTLine ();</p><p> ~ CHTLine ();</p><p> /* 對(duì)源位圖
96、按照直線(xiàn)識(shí)別算法進(jìn)行霍夫變換 */</p><p> // argRho, argTheta分別是對(duì) ? 和 ? 的分割的份數(shù)。</p><p> void recognize(Graphics::TBitmap * argSource, int argRho, int argTheta);</p><p> /* 在目標(biāo)位圖上顯示參數(shù)坐標(biāo)的信息 */<
97、;/p><p> // 以參數(shù)坐標(biāo)的最大值為灰度最大值,按比例灰度在位圖上顯示。</p><p> void displayPramater(Graphics::TBitmap * argDest);</p><p> /* 按照argRate指定的概率取得識(shí)別出的直線(xiàn)列表 */</p><p> void getLines(TList
98、 * argList, double argRate);</p><p><b> };</b></p><p> 霍夫變換識(shí)別圓類(lèi)(CHTCircle)</p><p><b> 描述</b></p><p> 實(shí)現(xiàn)霍夫變換識(shí)別圓算法。</p><p><b&
99、gt; 實(shí)現(xiàn)</b></p><p> class CHTCircle {</p><p><b> public:</b></p><p> /* 構(gòu)造和析構(gòu)函數(shù) */</p><p> CHTCircle ();</p><p> ~ CHTCircle ();<
100、/p><p> /* 對(duì)源位圖按照?qǐng)A的識(shí)別算法進(jìn)行霍夫變換 */</p><p> void recognize(Graphics::TBitmap * argRes);</p><p> /* 在目標(biāo)位圖上顯示參數(shù)坐標(biāo)的信息 */</p><p> // 以參數(shù)坐標(biāo)的最大值為灰度最大值,按比例灰度在位圖上顯示參數(shù)坐標(biāo)中指定半徑的二維平
101、面的數(shù)據(jù)。</p><p> void displayPramater(Graphics::TBitmap * argDest, int argR);</p><p> /* 按照argRate指定的概率取得識(shí)別出的直線(xiàn)列表 */</p><p> void getCircles(TList * argList, double argRate);</p&
102、gt;<p><b> };</b></p><p><b> 系統(tǒng)功能介紹</b></p><p><b> 1.識(shí)別部分</b></p><p> (1).基于霍夫變換下的識(shí)別</p><p> 啟動(dòng)recognize.exe</p>
103、<p> File->open 打開(kāi)要識(shí)別的bmp文件</p><p> Hough Trans->ling recognize得到識(shí)別出的直線(xiàn)的霍夫變換圖,圖中的每個(gè)亮點(diǎn)代表一條直線(xiàn);</p><p> 識(shí)別的圓的概率圓,在下面的Edit控件中是你想要顯示的圓的直徑,輸入后點(diǎn)display后就可以看到霍夫變換的結(jié)果</p><p>
104、注:由于霍夫變換是一個(gè)三維的循環(huán),消耗內(nèi)存較多,速度較慢,所以圖像的原圖的大小直接影響到速度。</p><p> 下面是幾幅圖象的實(shí)驗(yàn)結(jié)果:</p><p> 圖3.1 只含有直線(xiàn)的bpm文件</p><p> 圖3.2 圖4.1的Hough Trans->line recognize的結(jié)果</p><p><b>
105、再如另一個(gè)例子:</b></p><p><b> 圖3.3 </b></p><p> 圖3.4 對(duì)上圖顯示直徑為30 圖3.5 對(duì)上圖顯示直徑為60</p><p> (2). 基于分區(qū)-聯(lián)合下的識(shí)別</p><p><b> 1、2步如上</b></p
106、><p> 3,Segment->step1:Segmentize將整幅圖像分區(qū)的結(jié)果</p><p> 4,Segment->step2:Segment recognize識(shí)別分區(qū)后的各個(gè)部分</p><p> 5,Segment->step3:recognize shape 對(duì)step2的結(jié)果進(jìn)行整體識(shí)別,得到我們想要的結(jié)果</p>
107、;<p> 6,Segment->step1-3:Segment recognize 如果不想看實(shí)現(xiàn)的過(guò)程只想得到結(jié)果時(shí)執(zhí)行此操作</p><p> 下面用幾個(gè)例子來(lái)說(shuō)明</p><p><b> 圖3.1的識(shí)別過(guò)程</b></p><p> 圖3.6 圖3.1的Segment結(jié)果(第一步)</p>
108、<p> 圖3.7 圖3.1的Segment recognize結(jié)果(第二步)</p><p> 圖3.8 對(duì)上圖recognize shape的結(jié)果</p><p> 圖3.8也是step1-3的結(jié)果。在form右邊的Edit Box中是識(shí)別出的圖元的相關(guān)信息:</p><p> 直線(xiàn)時(shí)的A,B,C分別是方程Ax+By+C=0中的系數(shù);<
109、;/p><p> 圓的時(shí)候,X,Y是圓心的坐標(biāo),R是圓的半徑。</p><p> 再如圖3.3的識(shí)別過(guò)程:</p><p> 圖3.9 step1的執(zhí)行結(jié)果</p><p> 圖3.10 step2的識(shí)別結(jié)果 圖3.11 step3的識(shí)別結(jié)果</p><p><b>
110、 圖3.12</b></p><p> 其中最下面的line:0,Circle:1,Circle:2,…,Circle:4就是識(shí)別出的直線(xiàn)和圓的相關(guān)信息。</p><p> Line:0中的P1,P2是指直線(xiàn)的兩個(gè)端點(diǎn)坐標(biāo)、chance和count是對(duì)點(diǎn)的總體統(tǒng)計(jì)參數(shù)</p><p> Circle:1中的Center、r分別是圓的圓心和半徑坐標(biāo)。
111、</p><p><b> 總結(jié)及展望</b></p><p> 計(jì)算機(jī)技術(shù)的發(fā)展,使人類(lèi)社會(huì)進(jìn)入了信息化和自動(dòng)化,計(jì)算機(jī)智能識(shí)別也隨著計(jì)算機(jī)的發(fā)展得到了迅速的發(fā)展。特別是圖形圖像的計(jì)算機(jī)處理技術(shù)更是有了前所未有的進(jìn)步和應(yīng)用。計(jì)算機(jī)識(shí)別也逐漸的從圖形圖像處理的大環(huán)境下分離出來(lái)作為一門(mén)新的高科技研究領(lǐng)域出現(xiàn)。圖形圖像的識(shí)別涉及到的學(xué)科很多,包括數(shù)字信號(hào)處理、工程數(shù)學(xué)
112、、信息論、運(yùn)籌學(xué)、等,它與計(jì)算機(jī)、自動(dòng)化、生物學(xué)、關(guān)學(xué)、視覺(jué)心里和生理學(xué)、人工智能、智能信息處理等眾多領(lǐng)域交叉、綜合集成,有廣泛的應(yīng)用。</p><p> 實(shí)現(xiàn)的是基礎(chǔ)的圖形識(shí)別,bmp圖像文件格式中對(duì)圖形的矢量化。識(shí)別基本的圖元直線(xiàn)和圓。直線(xiàn)和圓是二值圖像中最基本的組成元素,也是最常見(jiàn)的圖形元素。在工程圖的數(shù)字化識(shí)別中有很大的應(yīng)用。</p><p><b> 附錄1:參考文
113、獻(xiàn)</b></p><p> ·[1] 張習(xí)文、歐宗瑛.基于單義域鄰接圖的圓弧與圓識(shí)別[M].中國(guó)圖像圖形學(xué)報(bào) 2000版</p><p> ·[2]王耀南、李書(shū)濤、毛建旭.計(jì)算機(jī)圖像處理與識(shí)別技術(shù)[M].高等教育出版社.2005年版.</p><p> ·[3]阮球琦.數(shù)字圖像處理學(xué)[M].電子工業(yè)出版社. 2007
114、年版.</p><p> ·[4]夏德深、傅德勝.現(xiàn)代圖像處理與應(yīng)用[M].東南大學(xué)出版社. 2001年版.</p><p> ·[5] 孫增圻. 計(jì)算機(jī)控制理論與應(yīng)用系統(tǒng)辨識(shí)-最小二乘原理[M]. 清華大學(xué)出版社.2008版</p><p> ·[6]朱時(shí)銀.c++ builder 編程實(shí)例與技巧[M].機(jī)械工業(yè)出版社. 200
115、1年版.</p><p><b> 附錄2:結(jié)束語(yǔ)</b></p><p> 在當(dāng)今高科技發(fā)展的環(huán)境下,圖像處理的需求和應(yīng)用愈來(lái)愈廣泛,技術(shù)亦愈來(lái)愈高,本人通過(guò)本論文的編寫(xiě)及實(shí)現(xiàn)過(guò)程對(duì)圖像處理和模式識(shí)別有了很多的理解和更深刻的認(rèn)識(shí)。</p><p> 綜上所述,本系統(tǒng)達(dá)到了預(yù)期的目標(biāo),并具有很大的擴(kuò)展性。經(jīng)過(guò)必要的完善和補(bǔ)充,將可以成為一
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- [vc++畢設(shè)]vc++簡(jiǎn)單幾何圖形的識(shí)別和編輯系統(tǒng)+論文
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)69delphi圖形識(shí)別和編輯
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)69delphi圖形識(shí)別和編輯
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)69Delphi圖形識(shí)別和編輯.doc
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)69Delphi圖形識(shí)別和編輯.doc
- 畢業(yè)論文計(jì)算機(jī)圖形學(xué)——opengl
- 計(jì)算機(jī)信管畢業(yè)論文-計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)答疑系統(tǒng)
- 計(jì)算機(jī)應(yīng)用畢業(yè)論文
- 計(jì)算機(jī)應(yīng)用畢業(yè)論文
- 計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)的畢業(yè)論文
- 計(jì)算機(jī)畢業(yè)論文范文畢業(yè)論文計(jì)算機(jī)專(zhuān)業(yè)
- 手繪幾何圖形的識(shí)別研究.pdf
- 關(guān)于計(jì)算機(jī)應(yīng)用基礎(chǔ)的論文計(jì)算機(jī)應(yīng)用基礎(chǔ)論文淺析技工院校計(jì)算機(jī)應(yīng)用基礎(chǔ)課程教學(xué)
- 計(jì)算機(jī)基礎(chǔ)-職業(yè)學(xué)院畢業(yè)論文
- 計(jì)算機(jī)畢業(yè)論文
- 計(jì)算機(jī)畢業(yè)論文
- 計(jì)算機(jī)應(yīng)用軟件畢業(yè)論文
- 畢業(yè)論文——計(jì)算機(jī)建模和仿真
- 幾何圖形
- 計(jì)算機(jī)應(yīng)用畢業(yè)論文--計(jì)算機(jī)組裝與維護(hù)
評(píng)論
0/150
提交評(píng)論