幾何圖形的識別和編輯_第1頁
幾何圖形的識別和編輯_第2頁
幾何圖形的識別和編輯_第3頁
幾何圖形的識別和編輯_第4頁
幾何圖形的識別和編輯_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

類型:課程設計題目:幾何圖形的識別和編輯主要是直線和圓的識別,這在工程圖的識別和其他領域中都 4 4第二節(jié)在工程圖的識別中常用的方法 4第三章論文的工作基礎和工作環(huán)境 6第一節(jié)數(shù)字圖像處理技術 6 6 6第二節(jié)圖像格式-BMP格式 7第三節(jié)算法及數(shù)學基礎 8 82.基于單義域的直線及圓識別算法 第四章直線和圓的識別和編輯的實現(xiàn) 第一節(jié)系統(tǒng)的層次結構的圖示 第二節(jié)系統(tǒng)數(shù)據(jù)結構及類的設計 第三節(jié)主程序實現(xiàn) 第四節(jié)系統(tǒng)功能介紹 第五節(jié)總結及展望 錯誤!未定義書簽。第一章概述計算機技術的發(fā)展,使人類社會進入了信息化和自動化,計算機智能識別也隨著計算機的發(fā)展得到了迅速的發(fā)展。特別是圖形圖像的計算機處理技術更是有了前所未有的進步和應用。計算機識別也逐漸的從圖形圖像處理的大環(huán)境下分離出來作為一門新的高科技研究領域出現(xiàn)。圖形圖像的識別涉及到的學科很多,包括數(shù)字信號處理、工程數(shù)學、信息論、運籌學、等,它與計算機、自動化、生物學、關學、視覺心里和生理學、人工智能、智能信息處理等眾多領域交叉、綜合集成,有廣泛的應用。識別基本的圖元直線和圓。直線和圓是二值圖像中最基本的組成元素,也是最常見的圖形元素。在工程圖的數(shù)字化識別中有很大的應用。2.本論文中圖像中的圖元都是單一的線性,即線寬是一個象素的情況。第二節(jié)在工程圖的識別中常用的方法圖形的識別最主要的是圖形特征的提取,在這個階段,常用的方法是全局特征方法(包括:不變距,自回歸模型、傅立葉描述符、霍夫變換等),全局特征的特征提取方法是理論比較完善的,計算過程比較清楚。針對不同的特征在二值圖像的處理中,人們常用的數(shù)據(jù)結果有游程編碼-考慮了掃描行上),在兩個方向上的推廣。在本論文中就是利用了LAG的數(shù)據(jù)結構思想與c++builder的數(shù)據(jù)結構相結合的方法即:用下一個象素點是與鏈表頭相鄰還是和尾本論文中對交點的處理。目前對交點的處理有下面幾類算法:1.基于網(wǎng)格算法,該算法是通過網(wǎng)格加大搜索步長來跳過交點。2.基于圖段合并的算法,是根據(jù)交點處行程段的連通性,以交點為界將圖線分割成圖段,記錄各段之間的連接及從屬關系,然后連接或延長各分支圖段,然后得到整條圖線。在本論文中采用了第二種方法,基于圖段合并的算法。第二章論文的工作基礎和工作環(huán)境第一節(jié)數(shù)字圖像處理技術將客觀世界實體或圖片等通過不同的量化(數(shù)字化)手段送入計算機,由計算機按使用要求進行圖像的平滑、增強、復原、分割、重建、編碼、存儲、傳輸?shù)确N種不同的處理,需要時把加工處理后的圖像重新輸出,這個過程稱為圖像處理。因此,圖像處理的含義是用計算機對圖像進行加工處理以得到某種預期的效果,它本質(zhì)上是一種二維數(shù)字信號處理技術。1.圖像處理的基本內(nèi)容以改變或強調(diào)圖像信息的某些特點(增強有用信息,無用信息),改善圖2.描述圖像的特征并進行特征抽取和分析。用某個標準衡量并進行分類比較,將抽取的特征歸結為一定的模式,這屬于模式識別的范圍;對圖像的某些部分合并或進行重新組織,這種技術是從N—1維的信息用某種算法得到N維的圖像,例如計算機視覺就是這樣的一種技術。2.主要的圖像處理技術它不追究圖像客觀質(zhì)量的降低原因。圖像的視覺質(zhì)量是因人而異的,其質(zhì)量的高低和好壞受觀看者的心理、愛好和文化素質(zhì)等因素的影響。圖像的恢復則致力于探索圖像質(zhì)量降低的原因,并盡可能消除圖像質(zhì)量的降低,恢復圖彩色數(shù)字圖像通常是由三個二維數(shù)組組成的,其信息量相當大,這給圖像的傳輸、處理、存儲和顯示等帶來很大的負擔。但問題的另一方面是圖像中又往往存在很多冗余信息,在傳輸和存儲時可以對數(shù)字圖像進行一定方式的編碼,刪除圖像中的冗余信息,以提高圖像傳輸和存儲的效率。不同角度的投影圖,通過計算可得到物缽內(nèi)部的圖像,這種技術稱為投影重計算機按照一定的客觀測度(例如灰度、顏色和幾何性質(zhì)等)將圖像中包含的物體和區(qū)域從圖像中區(qū)分出來,稱為圖像的分割。用適當?shù)臄?shù)學語言來表示被分割出來的物體或區(qū)域的結構和統(tǒng)計特性,或用數(shù)學語言表示區(qū)域問的關系,稱為描述。圖像經(jīng)分別和描述后,可較為容易地分類和識別。第二節(jié)圖像格式-BMP格式式與顯示設備有關,因此把這種BMP圖像文件格式稱為設備相關位圖位圖文件的組成位圖文件的組成位圖文件頭BITMAPFILEHEADER位圖信息頭BITMAPINFOHEADERBYTE第三節(jié)算法及數(shù)學基礎1.霍夫變換(HoughTransform)霍夫變換是圖像處理中從圖像中識別幾何形狀的基本方法之一。其基本思想就是把圖像平面上的點對應到參數(shù)平面上的曲線,最后通過統(tǒng)計特性來解決分遮蓋的不敏感等特性,霍夫變換在模式識別領域得到廣泛的應用,如直線、下面就于本論文相關的直線和圓的識別進行簡單的介紹。圖像空間中同一直線上的點,經(jīng)霍夫變換所形成的直線相交于參數(shù)空間中的一點,該點坐標代表圖像空間中直線的斜率及截距。利用累加數(shù)組累計參數(shù)空間中通過該點的直線條數(shù),即代表圖像空間中直線上的點數(shù)。設已知一黑白圖像上畫了一條直線,要求出這條直線所在的位置。我們知和截距。過某一點(x,y)的所有直線的參數(shù)都會滿足方程y=kxx+b。即圖像空間中的一點(x,y)確定了參數(shù)空間中的一族直線。方程y=kxx+b在參數(shù)k--b平面上是一條直線。這樣,圖像x--y平面上的一個前景像素點就對應到參數(shù)平面上的一條直線。Step2.對于圖像上每一前景點,求出參數(shù)平面對應的直線,把這直線上的所有點的值都加1。Step3.找到參數(shù)平面上峰值點的位置,這些位置的坐標就是原圖像上直線的參數(shù),每個位置對應于原圖像上的一條直線。的直線方程沒有辦法表示x=c形式的直線(這時候,直線的斜率為無窮大)。上。在變換后的空間中這條正弦曲線上的任意一點對應于原始圖像平面(x,y)空過變換后所對應的各正弦曲線都相交于一點。利用霍夫變換檢測出半徑已知的圓形,是將圖像平面上的每一點對應到參數(shù)平面上的一個以已知半徑為半徑的圓。經(jīng)過霍夫變換,在參數(shù)平面上得到圓相交于一點,這個點的坐標即為原圖形坐標平面上待識別的圓心坐標。算法可以簡單描述為:取和圖像平面一樣的參數(shù)平面,以圖像上每一個前景點為圓心,以已知的半徑在參數(shù)平面上畫圓,并把結果進行累加。最后找出參數(shù)平面上的峰值點,這個位置就對應了圖像上的圓心。應圓的圓心和半徑。圖像平面上的每一點就對應于參數(shù)空間中每個半徑下的一個圓,在參數(shù)的三維空間中得到一個圓錐。最后找出參數(shù)空間中的峰值點,即得到待識別的圓的圓心和半徑。受圖像旋轉的影響,在很多領域都有廣泛的應用,有關霍夫變換的研究和改進也很多。例如廣義霍夫變換、隨機霍夫變換、快速霍夫變換等等,就是針對直線的霍夫變換也有很多改進算法。由于時間的原因,在本軟件中,只是使用了2.基于單義域的直線及圓識別算法霍夫變換為幾何圖形的識別的一個重要算法,但是由于該標準算法的時間復雜度和空間復雜度都是O(Nm),其中m是參數(shù)坐標的維數(shù),雖然有不少針對具體問題(例如直線識別)的改進算法,其在實際使用中也存在計算量大的問題。針對本論文的工作的實際情況,參考文獻【1】,并進行了適當?shù)暮喕瑔瘟x域是指對待識別的圖形進行分割得到的具有單一的幾何意義(線段或圓?。c的集合。對圖片進行從上往下、從左往右的掃描,根據(jù)交點進行分割得到多義域,多義域中的點構成一個連通區(qū)域。對多義域進行識別并分割得到多義域由鏈表實現(xiàn)。算法描述如下:尾節(jié)點不是交點)節(jié)點進行比較,如果與頭節(jié)點相鄰,將其插入到該多義域的頭節(jié)點之前;如果與尾節(jié)點相鄰,將其插入到該多義域的尾節(jié)點之后。注:交點的判斷。續(xù)的識別過程中將把不是單義域的進行分裂。2.2最小二乘法擬合直線和圓最小二乘法首先由KarlGauss為進行行星最小二乘法已經(jīng)變成從實驗數(shù)據(jù)來進行參數(shù)估計的主要手段。由最小二乘法獲一個數(shù)學程式,通過它能獲得一個在最小方差意義上與實驗數(shù)據(jù)最好擬合助模運用最小二乘法進行圓的擬合公式如下:運用最小二乘法進行直線擬合的公式如下:2.3多義域分裂和單義域的識別對2.1中得到的多義域,運用最小二乘法進行擬合,對于擬合不成功的多義域運用首尾相連最大距離法進行分裂,得到單義域,并記錄下各單義域的擬合結果,供全局考慮,識別直線和圓用。2.對選中的多義域運用最小二乘法進行圓的擬合;如果得到的平均徑向弧的單義域;記錄擬合的結果,作為總體識別的種子圓,轉向5執(zhí)行,3.對選中的多義域運用最小二乘法進行直線擬合;如果得到的平均距離段的單義域;記錄擬合結果,作為總體識別的種子直線,轉向5執(zhí)行,4.該多義域為多個線段或圓弧的組合。將該多義域的頭尾節(jié)點連接,計域進行分裂,得到兩個新的多義域,取代原先的多義域;轉向2執(zhí)行。由此,所有的多義域都分裂為單義域,并對各單義域進行了擬合。2.4總體整合,識別直線和圓對2.3得到的單義域列表進行總體的整合,得到直線和圓。1.選取單義域列表中的第一個單義域,將其擬合的圖形(直線或圓)作2.將列表中其他單義域的識別結果與種子圖形進行比較,如果誤差小于指定閾值,則屬于同一直線或同一圓,將其與選定單一域進行合并,3.主要技術3.1BorlandC++Builder++圖形設備接口(GDI),使得用戶很方便地在應用程序添加圖像或處理圖像。第三章直線和圓的識別和編輯的實現(xiàn)第一節(jié)系統(tǒng)的層次結構的圖示第二節(jié)系統(tǒng)數(shù)據(jù)結構及類的設計1.主要類的層次結構圖形基類,提供所有圖形的標準屬性和方法。其他圖形類(直線、圓)等都是該類的子類,繼承其所有的public屬性和方法,對其中的虛方法(virtual)該類為虛類,其成員函數(shù)主要為虛函數(shù),為其所有子類提供統(tǒng)一的接口,但是沒有實現(xiàn)。其他模塊對圖形進行操作時,除非生成新的實例(Instance現(xiàn)、擴充和維護提供很大方便。public:/*屬性定義*///前景色(由于時間等的限制,本系統(tǒng)暫時只定義該圖形的屬性,其//他如:填充色,線條型,填充型等可擴充)/*編輯用屬性*///編輯時標志該圖形是否被選擇//編輯操作所選中的點/*識別用屬性*///識別的效果描述,值越小說明識別效果越好//最小二乘法的平均誤差;//霍夫變換:1-參數(shù)空間中該圖形的值/最大值//圖形上點的數(shù)量/*成員函數(shù)定義*//*顯示和描述用方法*///顯示圖形:在指定的位圖上顯示圖形//描述圖形:作為TtreeView的節(jié)點(主窗體使用)/*識別用*///直線上的兩個線段;圓上面的兩個圓弧//合并兩個圖形//經(jīng)過判斷為相同的圖形進行合并,返回True;否則返回False。//判斷圖形存在的可能性(利用具體圖形的幾何規(guī)則)/*編輯用*///判斷是否點擊該圖形,若選中則當前編輯的圖形改為當前圖形//取得鼠標形狀:鼠標移動到選中圖形的可操作點上時,顯示為編輯形狀//更新圖形:將編輯點移動到(x,y)點。更新成功返回True,否則False。};3.圖形類(CLine、CCircle)圖形類是幾何圖形的具體實現(xiàn),實現(xiàn)對應幾何圖形的描述和相關操作。圖根據(jù)要求,本系統(tǒng)中實現(xiàn)了直線(CLine)和圓(CCircle)兩個圖形類。其他簡單的幾何圖形如橢圓、矩形等也可以類似的方法實現(xiàn),作為本系統(tǒng)的一斜式不能描述豎直直線,也避免極坐標方程轉換的問題)。因為成比例的兩組端點為軸進行旋轉;2)線段的中點,選中中點并移動,是平移整個直線。publicpublic:/*初始化*//*直線的屬性*///線段的兩個端點/*對父類虛方法的實現(xiàn)*///在目標位圖上畫出直線(本系統(tǒng)中的實現(xiàn)為畫線段)//在TTreeView中描述//返回描述用字符串//判斷該直線是否與指定圖形相同//將指定圖形強制轉化為CLine類型,比較其參數(shù)A,B,C,//若小于指定閾值,則返回Ture,否則返回False。//合并同一直線上的兩個線段//若目標圖形與該圖形屬同一直線,進行合并,返回True;//判斷是否選擇該直線進行編輯。//判斷指定點(x,y)到該直線的距離,//如果小于指定閾值則返回True,否則False。//取得鼠標形狀。//中點時返回垂直的四個方向箭頭的形狀表示移動//更新直線};public:/*初始化*/CCircle(intargX,intargY,intargR);/*圓的屬性*///圓心//半徑intR;/*對父類虛方法的實現(xiàn)*///在目標位圖上畫出圓//在TTreeView中描述//返回描述用字符串////判斷該圓是否與指定圖形相同//將指定圖形強制轉化為CCircle類型,比較其參數(shù)圓心坐標和半徑,//若小于指定閾值,則返回Ture,否則返回False。//合并同一圓上的兩個圓弧//若目標圖形與該圖形屬同一圓,進行合并,返回True;//判斷是否選擇該圓進行編輯。//計算指定點(x,y)到圓心的距離,并與半徑比較,//如果小于指定閾值則返回True,否則False。//取得鼠標形狀。//圓上點時返回水平的雙向箭頭形狀表示改變半徑;//圓心時返回垂直的四個方向箭頭的形狀表示移動//更新圓};織對圖像的識別結果、組織當前編輯工作的圖形對象集。提供添加圖形、刪除public:/*初始化*///在目標位圖上畫出所有的圖形//描述圖形};5.點類(CPoint)點類對于與圖像上的前景點。由于識別時需要判斷是否為交點,在一般的public:/*初始化*//*屬性:是否為交點*/};在“基于單義域的圖形識別算法”中,單義域和多義域的唯一區(qū)別就是多義域不是單一的幾何元素,其在存儲結構上是一樣的,在本系統(tǒng)中,都由刪除點、判斷該單義域是否有識別價值、識別該單義域等接口和方法。public:/*初始化*//*識別該單義域:實現(xiàn)算法中對單義域的識別部分*///如果識別成功(得到圓或線段)返回True,否則返回False/*嘗試添加新的點到該單義域*///判斷該點是否屬于該單義域并確定是在頭部還是在尾部,并將其插入到適當位置;如果該點為交點,則將相應的方向關閉增長;若加入成功返回True,/*/*判斷該單義域是否有識別價值*///如果該單義域含有的點數(shù)太少,則沒有價值返回False,否則返回True。/*屬性:識別出的圖形*/};基于單義域識別類是實現(xiàn)“基于單義域的直線和圓識別算法”的主要類。它實現(xiàn)了對目標圖像的分割、對分割結果的顯示、對識別得到的多義域進行分割、對單義域識別結果的總體考慮,最終得到識別結果集。得到。用來組織對圖像的單義域分割后的結果。。public:/*構造和析構函數(shù)*//*掃描圖像,得到多義域*///從上往下

溫馨提示

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

評論

0/150

提交評論