版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、. 摘 要伴隨著電子計算機(jī)技術(shù)的進(jìn)步,通信技術(shù)日新月異的更新與開展,圖像處理技術(shù)近年來得到突飛猛進(jìn)的開展,并成功的應(yīng)用到幾乎所有與成像有關(guān)的領(lǐng)域,并發(fā)揮著相當(dāng)重要的作用。它利用計算機(jī)對數(shù)字圖像進(jìn)展一系列的操作,從而獲得*種預(yù)期的結(jié)果,對圖像進(jìn)展處理時,經(jīng)常運(yùn)用圖像處理技術(shù)以改善圖像的質(zhì)量?,F(xiàn)在圖像處理仍然在不斷的開展,延伸出更多的應(yīng)用領(lǐng)域,相信數(shù)字圖像處理技術(shù)的逐步開展定會讓我們的信息生活變得更好。在圖像處理中,數(shù)學(xué)形態(tài)學(xué)的理論根底在數(shù)字圖像信號處理領(lǐng)域中得到廣泛應(yīng)用,圖像形態(tài)學(xué)的用途主要是獲取物體拓?fù)浜蜆?gòu)造信息,通過物體和構(gòu)造元素相互作用的*些運(yùn)算,得到物體更本質(zhì)的形態(tài)。在圖像處理中形態(tài)學(xué)主
2、要應(yīng)用是:1利用形態(tài)學(xué)的根本運(yùn)算,對圖像進(jìn)展觀察和處理,從而到達(dá)改善圖像質(zhì)量的目的;2描述和定義圖像的幾何參數(shù)和特征,如面積、周長、連通度、顆粒度、骨架和方向性等。而腐蝕與膨脹是數(shù)學(xué)形態(tài)學(xué)最根本的算法,使得腐蝕與膨脹方法的研究價值得到更大的提升。圖像形態(tài)學(xué)腐蝕與膨脹方法在很多方面被應(yīng)用,本文以圖像的腐蝕與膨脹方法的理論分析為重點(diǎn),圍繞著其在眾多圖像處理方案中的出色表現(xiàn),逐漸聯(lián)系到圖像的容。用多層次的介紹手法展現(xiàn)出圖像腐蝕與膨脹方法研究的重要涵。本文主要的工作包括:1掌握Visual C+6.0軟件的使用。2深入學(xué)習(xí)圖像形態(tài)學(xué)腐蝕與膨脹的根底理論,研究腐蝕與膨脹在圖像處理中的應(yīng)用。3針對圖像形態(tài)
3、學(xué)腐蝕與膨脹方法進(jìn)展研究,通過Visual C+6.0軟件實現(xiàn)腐蝕與膨脹算法,掌握腐蝕與膨脹算法的實現(xiàn)過程。本文集中闡述腐蝕與膨脹是如何進(jìn)展水平腐蝕、垂直腐蝕、全方位腐蝕、水平膨脹、垂直膨脹、全方位膨脹、開運(yùn)算以及閉運(yùn)算的完成原理、步驟和它們的具體實現(xiàn)過程。通過一系列的研究才能更加明確腐蝕與膨脹方法處理在圖像信息處理的開展歷程中發(fā)揮了不可替代的作用。關(guān)鍵詞:圖像處理;數(shù)學(xué)形態(tài)學(xué);腐蝕;膨脹AbstractWith the advance in puter technology, munication technology changes rapidly updated and develope
4、d, image processing technology has make a spurt of progress of development in recent years, and successfully applied to almost all domains related to the formation of image, and play a very important role. It uses the puter to carry out a series of operation on the digital image, so as to obtain som
5、e e*pected results, image processingoften using image processing technology to improve the quality of the image. Now the image processing is still in constant development, e*tending more application fields, believe that the gradual development of the digital image processing technology will make our
6、 life better.In image processing, the theory foundation of mathematical morphology is applied widely in the field of digital image signal processing, use of image morphology is the main access to the object topology and structure information, some operational through the object and the structural el
7、ements of interaction, obtained the object state of nature. In image processing, morphological main applications are: (1) by using basic operation of morphology, were observed and the processing of the image, so as to achieve the purpose of improving the image quality. (2)The definition and descript
8、ion of image geometric parameters and characteristics, such as area, perimeter, connectivity, particle size, frame and direction etc. The corrosion and e*pansion is the basic algorithm of mathematical morphology which makes the research value of corrosion and e*pansion method for the greater increas
9、e. Method of image morphology of corrosion and e*pansion is used in many aspects, this paper with the method of image corrosion e*pansion theory analysis as the key point, around its e*cellent performance in many images processing scheme, gradually linked to the content of the image. To show the ima
10、ge of corrosion and e*pansion method research important content of multi-level presentation techniques. The main work of this paper includes: (1) using Visual C+6.0 Software. (2) Study the basic theory and the e*pansion of the image morphology of corrosion depth, application and e*pansion of researc
11、h in image processing corrosion. (3) According to a study on the method of image morphology of corrosion and e*pansion, realization of erosion and dilation algorithm by Visual C+6.0 Software, master the implementation process of erosion and dilation algorithm. This paper focuses on how the level of
12、corrosion and e*pansion of corrosion, a full range of vertical horizontal e*pansion, vertical e*pansion, a full range e*pansion, open operation and close operation to plete the principle, steps and their realization.Through the research to a series of more clear corrosion and e*pansion method has pl
13、ayed an irreplaceable role in the development of image processing.Key words: Image processing; mathematical morphology; corrosion; e*pansion目 錄 TOC o 1-3 h z u HYPERLINK l _Toc359314055 1 緒論 PAGEREF _Toc359314055 h 1HYPERLINK l _Toc359314056 1.1 引言 PAGEREF _Toc359314056 h 1HYPERLINK l _Toc359314057
14、1.2 課題研究現(xiàn)狀 PAGEREF _Toc359314057 h 1HYPERLINK l _Toc359314058 1.3 課題目的和意義 PAGEREF _Toc359314058 h 2HYPERLINK l _Toc359314059 2 開發(fā)環(huán)境Visual C+介紹 PAGEREF _Toc359314059 h 3HYPERLINK l _Toc359314060 2.1 Visual C+6.0介紹 PAGEREF _Toc359314060 h 3HYPERLINK l _Toc359314061 2.2 Visual C+軟件平臺介紹 PAGEREF _Toc3593
15、14061 h 4HYPERLINK l _Toc359314062 2.2.1 單文檔格式 PAGEREF _Toc359314062 h 4HYPERLINK l _Toc359314063 2.2.2 界面板局部 PAGEREF _Toc359314063 h 5HYPERLINK l _Toc359314064 2.2.3 程序控制局部 PAGEREF _Toc359314064 h 5HYPERLINK l _Toc359314065 2.3 設(shè)計中的MFC介紹 PAGEREF _Toc359314065 h 5HYPERLINK l _Toc359314066 3 腐蝕與膨脹的根本
16、原理 PAGEREF _Toc359314066 h 7HYPERLINK l _Toc359314067 3.1 圖像的腐蝕 PAGEREF _Toc359314067 h 7HYPERLINK l _Toc359314068 3.2 圖像的膨脹 PAGEREF _Toc359314068 h 8HYPERLINK l _Toc359314069 3.3 開運(yùn)算 PAGEREF _Toc359314069 h 10HYPERLINK l _Toc359314070 3.4 閉運(yùn)算 PAGEREF _Toc359314070 h 11HYPERLINK l _Toc359314071 4 圖像
17、腐蝕與膨脹處理 PAGEREF _Toc359314071 h 12HYPERLINK l _Toc359314072 4.1 CDIB類庫的建立 PAGEREF _Toc359314072 h 12HYPERLINK l _Toc359314073 4.1.1 CDIB類庫的功能 PAGEREF _Toc359314073 h 12HYPERLINK l _Toc359314074 4.1.2 CDIB類的構(gòu)造 PAGEREF _Toc359314074 h 12HYPERLINK l _Toc359314075 4.2 圖像腐蝕與膨脹處理的實現(xiàn) PAGEREF _Toc359314075
18、h 15HYPERLINK l _Toc359314076 4.2.1 水平腐蝕處理實現(xiàn) PAGEREF _Toc359314076 h 15HYPERLINK l _Toc359314077 4.2.2 垂直腐蝕處理實現(xiàn) PAGEREF _Toc359314077 h 17HYPERLINK l _Toc359314078 4.2.3 全方向腐蝕處理實現(xiàn) PAGEREF _Toc359314078 h 19HYPERLINK l _Toc359314079 4.2.4 水平膨脹處理實現(xiàn) PAGEREF _Toc359314079 h 22HYPERLINK l _Toc359314080 4
19、.2.5 垂直膨脹處理實現(xiàn) PAGEREF _Toc359314080 h 24HYPERLINK l _Toc359314081 4.2.6 全方位膨脹處理實現(xiàn) PAGEREF _Toc359314081 h 26HYPERLINK l _Toc359314082 5 實驗結(jié)果及討論 PAGEREF _Toc359314082 h 29HYPERLINK l _Toc359314083 5.1 腐蝕處理結(jié)果 PAGEREF _Toc359314083 h 29HYPERLINK l _Toc359314084 5.2 膨脹處理結(jié)果 PAGEREF _Toc359314084 h 31HYPE
20、RLINK l _Toc359314085 5.3 開閉運(yùn)算處理結(jié)果 PAGEREF _Toc359314085 h 32HYPERLINK l _Toc359314086 5.3 結(jié)果討論 PAGEREF _Toc359314086 h 34HYPERLINK l _Toc359314087 結(jié)論 PAGEREF _Toc359314087 h 35HYPERLINK l _Toc359314088 致 PAGEREF _Toc359314088 h 37HYPERLINK l _Toc359314089 參考文獻(xiàn) PAGEREF _Toc359314089 h 38HYPERLINK l
21、_Toc359314090 附錄A英文原文 PAGEREF _Toc359314090 h 39HYPERLINK l _Toc359314099 附錄B 漢語翻譯 PAGEREF _Toc359314099 h 47. 1 緒論1.1 引言隨著計算機(jī)技術(shù)的日益開展,圖像信息已成為人類認(rèn)識世界的重要知識來源,人們研究發(fā)現(xiàn),人類從外界獲得的信息約有75來自圖像。在圖像形成、傳輸或變換的過程中,由于受到其它客觀因素諸如系統(tǒng)噪聲、曝光缺乏或過量、相對運(yùn)動等影響,獲取圖像往往會與原始圖像之間產(chǎn)生*種差異稱為降質(zhì)或退化。退化后的圖像通常模糊不清或者經(jīng)過機(jī)器提取的信息量減少甚至錯誤,因此必須對其采取一些手
22、段進(jìn)展改善。利用計算機(jī)對圖像進(jìn)展各種形式的處理,促進(jìn)了圖像處理技術(shù)的開展。圖像形態(tài)學(xué)腐蝕與膨脹方法本身就是圖像處理中最具有吸引力的領(lǐng)域之一,而圖像的灰度是進(jìn)展圖像識別與處理的根底,在對其進(jìn)展分析處理時,我們需要完成:a.讀取數(shù)字圖像的根底數(shù)據(jù),b.對灰度圖像和24位圖像進(jìn)展分析與處理,完成圖像腐蝕與膨脹變換。實驗說明,該程序可以較準(zhǔn)確地對圖像進(jìn)展腐蝕與膨脹變換,到達(dá)了研究腐蝕與膨脹方法的預(yù)期目的1。該文介紹了用不同的構(gòu)造元素對圖像進(jìn)展水平腐蝕、垂直腐蝕、全方位腐蝕、水平膨脹、垂直膨脹、全方位膨脹、開運(yùn)算以及閉運(yùn)算的圖像處理,從而等到不同的處理結(jié)果。并且利用VC+6.0執(zhí)行效率高,可繼承、封裝等
23、方法,對腐蝕與膨脹算法實現(xiàn)。1.2 課題研究現(xiàn)狀數(shù)學(xué)形態(tài)學(xué)是一門建立在集論根底上的學(xué)科,是幾何形態(tài)學(xué)分析和描述的有力工具。數(shù)學(xué)形態(tài)學(xué)的歷史可回溯到19世紀(jì)。1964年法國的Matheron和Serra在積分幾何的研究成果上,將數(shù)學(xué)形態(tài)學(xué)引入圖像處理領(lǐng)域,并研制了基于數(shù)學(xué)形態(tài)學(xué)的圖像處理系統(tǒng)。1982年出版的專著“Image Analysis and Mathematical Morphology“是數(shù)學(xué)形態(tài)學(xué)開展的重要里程碑,說明數(shù)學(xué)形態(tài)學(xué)在理論上趨于完備及應(yīng)用上不斷深入。數(shù)學(xué)形態(tài)學(xué)蓬勃開展,由于其并行快速,易于硬件實現(xiàn),已引起了人們的廣泛關(guān)注。目前,數(shù)學(xué)形態(tài)學(xué)已在計算機(jī)視覺、信號處理與圖像分
24、析、模式識別、計算方法與數(shù)據(jù)處理等方面得到了極為廣泛的應(yīng)用2。數(shù)學(xué)形態(tài)學(xué)可以用來解決抑制噪聲、特征提取、邊緣檢測、圖像分割、形狀識別、紋理分析、圖像恢復(fù)與重建、圖像壓縮等圖像處理問題3。1.3 課題目的和意義近年來,形態(tài)學(xué)圖像處理已經(jīng)開展成為圖像處理的一個主要研究領(lǐng)域。數(shù)學(xué)形態(tài)學(xué)是一門建立在嚴(yán)格數(shù)學(xué)理論根底上的學(xué)科,其根本思想和方法對圖像處理的理論和技術(shù)產(chǎn)生了重大影響。許多非常成功的理論模型和視覺檢測系統(tǒng)都采用了數(shù)學(xué)形態(tài)學(xué)算法作為其理論根底或組成局部。事實上,數(shù)學(xué)形態(tài)學(xué)已經(jīng)構(gòu)成一種新型的圖像處理方法和理論,形態(tài)學(xué)圖像處理已成為計算機(jī)數(shù)字圖像處理的一個主要研究領(lǐng)域。這門學(xué)科在計算機(jī)文字識別,計算
25、機(jī)顯微圖像分析(如定量金分析,顆粒分析),醫(yī)學(xué)圖像處理,工業(yè)檢測(如印刷電路自動檢測),機(jī)器人視覺等方面都取得了許多非常成功的應(yīng)用一些形態(tài)學(xué)的算法,已經(jīng)做成了計算機(jī)芯片,許多研究成果已經(jīng)作為專利出售,其影響已涉及到與計算機(jī)圖像處理有關(guān)的各個領(lǐng)域,包括圖像增強(qiáng)、分割、恢復(fù)、邊緣檢測、紋理分析、顆粒分析、特征生成、骨架化、形狀分析、壓縮、成分分析及細(xì)化等諸多領(lǐng)域。目前,有關(guān)形態(tài)學(xué)的技術(shù)和應(yīng)用正在不斷地開展和擴(kuò)大4。所以,對數(shù)學(xué)形態(tài)學(xué)的理論研究是非常有意義的。隨著計算機(jī)技術(shù)的開展,圖像及信號處理技術(shù)越來越為群眾所需求。數(shù)學(xué)形態(tài)學(xué)不僅提供了描述和分析圖像幾何及形狀特征的多種技術(shù)和方法,同時它對于經(jīng)典的
26、圖像處理技術(shù)也產(chǎn)生了極大的影響并擴(kuò)展了原有的技術(shù)?;跀?shù)學(xué)形態(tài)學(xué)的圖像處理技術(shù)是一種采用集合的概念表示圖像、非線性疊加方式描述圖像的非線性系統(tǒng)技術(shù),稱之為形態(tài)系統(tǒng), 它廣泛地應(yīng)用于生物醫(yī)學(xué)和電子顯微鏡圖像的分析以及數(shù)字圖像處理和計算機(jī)視覺等領(lǐng)域,并已開展成為一種新型的圖像處理方法和理論。用于圖像處理的形態(tài)系統(tǒng), 具有完備的構(gòu)造和理論體系,是進(jìn)展非線性性態(tài)分析和描述的有力工具。本文結(jié)合目前的研究進(jìn)展,對圖像形態(tài)學(xué)的腐蝕與膨脹理論研究及其應(yīng)用進(jìn)展進(jìn)展了綜合性闡述。目前已經(jīng)有很多圖像處理的方法,但是由于圖像形態(tài)學(xué)的腐蝕與膨脹是基于集合論的方法,屬于非線性處理,實際上相比傳統(tǒng)的多種線性算法更加適合數(shù)字
27、圖像的處理。圖像形態(tài)學(xué)的腐蝕與膨脹可以通過對構(gòu)造元素的調(diào)整實現(xiàn)各種場合條件下的應(yīng)用,且容易用硬件實現(xiàn),所以利用圖像形態(tài)學(xué)的腐蝕與膨脹進(jìn)展圖像處理已經(jīng)漸漸開展為與線性方法并行的主流方向。2 開發(fā)環(huán)境Visual C+介紹2.1 Visual C+6.0介紹Visual C+是Microsoft公司在1998年推出的基于windows 9*和windows NT的優(yōu)秀集成開發(fā)環(huán)境。該開發(fā)環(huán)境為用戶提供良好的可視化編程環(huán)境,程序員可以利用該開發(fā)環(huán)境輕松地訪問C+源代碼編輯器、資源編輯器和使用部調(diào)試器,并且可以創(chuàng)立工程文件。Visual C+6.0不僅包括編譯器,而且它還包括了許多有用組件,通過這些組
28、件的協(xié)同工作,可以在Visual C+6.0 集成環(huán)境中輕松地完成創(chuàng)立源文件,編輯資源,以及對程序的編譯連接和調(diào)試等各項工作.實際中,更多的是以Visual C+6.0為平臺。Visual C+6.0不僅是一個C+編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境integrated development environment, IDE。Visual C+6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Visual C+可以分成兩個
29、最主要的局部:1Developer StudioDeveloper Studio包含一個功能強(qiáng)大的編輯器,可以編輯將被編譯成Windows程序的Visual C+源文件。這個編輯器有點(diǎn)象字處理器,但是沒有字處理器具備的復(fù)雜的排版、文本格式等功能,它注重的是如何幫助程序員快速高效地編制程序。它具有以下特點(diǎn):(1)自動語法。用高亮度和不同顏色的字來顯示不同的語法成分,如注釋、關(guān)鍵字和一般代碼用不同的顏色顯示。(2)自動縮進(jìn)。幫助你排列源代碼,使其可讀性更強(qiáng)。(3)參數(shù)幫助。在編輯時用到預(yù)定義的windows函數(shù)時,可以自動為你顯示函數(shù)參數(shù)。(4)集成的關(guān)鍵字幫助。能夠使你快速得到任何關(guān)鍵字、MFC
30、類或Windows函數(shù)的幫助信息。(5)拖放編輯。能夠用鼠標(biāo)選擇文本并自由拖動到任意位置。(6)自動錯誤定位。能自動將光標(biāo)移動到有編譯錯誤的源代碼處。2MFC微軟根底類(Microsoft Foundation Classes),實際上是微軟提供的,用于在C+環(huán)境下編寫應(yīng)用程序的一個框架和引擎,VC+是Win OS下開發(fā)人員使用的專業(yè)C+ SDK(專業(yè)軟件開發(fā)平臺),MFC就是掛在它之上的一個輔助軟件開發(fā)包,MFC作為與VC+血肉相連的局部(注意C+和VC+的區(qū)別:C+是一種程序設(shè)計語言,是一種大家都成認(rèn)的軟件編制的通用規(guī),而VC+只是一個編譯器,或者說是一種編譯器+源程序編輯器的IDE ,W
31、S ,Plat Form ,這跟Pascal和Dephi的關(guān)系一個道理,Pascal是Dephi的語言根底,Dephi使用Pascal規(guī)來進(jìn)展Win下應(yīng)用程序的開發(fā)和編譯,卻不同于Basic語言和VB的關(guān)系,Basic語言在VB開發(fā)出來被應(yīng)用的年代已經(jīng)成了Basic語言的新規(guī),VB新加的Basic語言要素,如面向?qū)ο蟪绦蛟O(shè)計的要素,是一種性質(zhì)上的飛躍,使VB既是一個IDE,又成長成一個新的程序設(shè)計語言),MFC同BC+集成的VCL一樣是一個非外掛式的軟件包,類庫,只不過MFC類是微軟為VC+專配的。Developer Studio和MFC把所有的Visual C+工具結(jié)合在一起,集成為一個整體
32、,它具有如下特點(diǎn):(1) 開發(fā)環(huán)境 Developer Studio 由一套集成工具組成,用于開發(fā)Windows 32環(huán)境下運(yùn)行的應(yīng)用程序。(2) 提供強(qiáng)大的類庫工具M(jìn)FC AppWizard、Class Wizard等。(3) Developer Studio以工程工作區(qū)組織元件、工程及工程的配置等。(4) MFC類庫支持多線程應(yīng)用程序開發(fā)。(5) 提供了最快的集成數(shù)據(jù)庫訪問,能讓用戶開發(fā)出功能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序。(6) 具有強(qiáng)有力的Internet支持。(7) 對OLE提供強(qiáng)有力的支持5。2.2 Visual C+軟件平臺介紹VC+6.0軟件主要有編譯局部,運(yùn)行局部,面版局部組成由于平滑
33、處理所用的界面并不是一般的頭文件和源文件而是用單文檔格式利用面板來編寫界面和程序的。2.2.1 單文檔格式單文檔格式是基于VC+6.0編程的一種格式,它允許建立對話框并在對話框?qū)?yīng)的函數(shù)中進(jìn)展編程如圖2.1所示。圖2.1 單文檔格式2.2.2 界面板局部界面板局部是一個很直觀的控制板,用戶在設(shè)計時可以直接在控制板上添加按扭文本對話框但是在設(shè)計按扭和文本對話框的同時要為他們定義ID,如果一個按扭或者文本沒有ID則他們就不會生效,換句話說,沒有ID的界面板是一個空的面板,是沒有任何意義的。2.2.3 程序控制局部程序控制局部是基于界面控制面板前提下建立的,它把面板局部對話框,按扭等功能附在里面使得
34、按扭對話框控件生效,程序控制局部初始是分為四大局部:虛擬覆蓋函數(shù);框架函數(shù);視類;文檔函數(shù)。這些函數(shù)分別負(fù)責(zé)界面的局部。2.3 設(shè)計中的MFC介紹MFC是Microsoft Foundation Class微軟根底類的縮寫。從物理角度看,它是一個龐大的類庫,包含可控制計算機(jī)系統(tǒng)方方面面的類庫,它對應(yīng)的是Windows系統(tǒng)目錄下的一系列mfc*.dll文件;從邏輯角度看,它是一個面向?qū)ο蟮膽?yīng)用程序框架,程序員可以使用這一框架創(chuàng)立Windows應(yīng)用程序。MFC的組織是以C+類的層次形式組織在一起的,幾個高層類提供一般功能,而低層類實現(xiàn)更具體的功能,每一個低層類都從高層類派生而來,因此繼承了高層類的
35、功能。例如,CWnd類是所有Windows窗口的大多類的高層類,此類具備的功能包括打印文本、繪制圖形及處理用戶的輸入等。CsplitterWnd類是從CWnd類派生而來的,因此就具有CWnd類的功能。CsplitterWnd類實現(xiàn)一種可拆分的窗口,用戶通過它可以將一個窗口拆分為多個窗口,Windows下的資源管理器就是使用拆分窗口來顯示有關(guān)計算機(jī)資源信息的。MFC處理很多與Windows相關(guān)的常見任務(wù)。如,在后臺做消息處理及對消息進(jìn)展路由選擇,無需程序員在每一個開發(fā)的Windows應(yīng)用程序中編寫一樣的消息處理循環(huán),MFC已經(jīng)實現(xiàn)了這一消息循環(huán),并對大多數(shù)常見的消息提供了易學(xué)易用的消息響應(yīng)函數(shù)。
36、例如,On Paint ()就是CWnd類的一個成員函數(shù),是對WM_PAINT消息進(jìn)展響應(yīng)的一個虛成員函數(shù)6。除了類的層次外,MFC也提供了一個應(yīng)用程序開發(fā)框架,此框架被稱為文檔/視圖架構(gòu)。文檔/視圖架構(gòu)是將應(yīng)用程序所需數(shù)據(jù)的處理與顯示相別離的一種編程模式,該框架容許這兩局部程序獨(dú)立存在,當(dāng)修改其中一局部的時候,不會大量改動另一局部。. 3 腐蝕與膨脹的根本原理3.1 圖像的腐蝕腐蝕是數(shù)學(xué)形態(tài)學(xué)的兩種最為根本的運(yùn)算之一,腐蝕在數(shù)學(xué)形態(tài)學(xué)中的作用是消除物體邊界點(diǎn),使邊界向部收縮的過程,可以把小于構(gòu)造元素的物體去除。這樣選取不同大小的構(gòu)造元素,就可以去除不同大小的物體。如兩個物體間有細(xì)小的連通,通
37、過腐蝕可將兩個物體分開。腐蝕的數(shù)學(xué)表達(dá)式見式3.1。S = *B = *, y | B * y* (3.1)在公式中S 表示腐蝕后的二值圖像集合, B表示用來進(jìn)展腐蝕的構(gòu)造元素, 構(gòu)造元素的每一個元素取值為0 或1,它可以組成任何一種形狀的圖形,在B 圖形中有一個中心點(diǎn);* 表示原圖像經(jīng)過二值化后的像素集合。此公式的含義是用B 來腐蝕* 得到的集合S,S 是由B 完全包括在* 中時B 的當(dāng)前位置的集合。通常是拖動構(gòu)造元素在* 圖像域移動,橫向移動間隔取1 個像素,縱向移動間隔取1 個掃描行。在每一個位置上, 當(dāng)構(gòu)造元素B 的中心點(diǎn)平移到* 圖像上的*一點(diǎn)( * ,y ),如果構(gòu)造元素的每一個像
38、素都與以( * , y )為中心的一樣鄰域中對應(yīng)像素完全一樣 則就保存( * ,y ) 像素點(diǎn),對于原圖中不滿足條件的像素點(diǎn)則全部刪除,從而到達(dá)使物體邊界向收縮的效果。為了進(jìn)一步說明腐蝕的原理,下面通過圖3.2 來說明。圖3.2 *B示意圖如圖3.2所示左邊是被處理的圖像二值圖像,針對的是黑點(diǎn), 中間是構(gòu)造元素B, 標(biāo)有1 的點(diǎn)是中心點(diǎn), 即當(dāng)前處理元素的位置,用B 的中心點(diǎn)和* 上的點(diǎn)一個一個地比照, 如果B 上的所有對應(yīng)的點(diǎn)都在* 的圍,則該點(diǎn)保存,否則將該點(diǎn)去掉;右邊是腐蝕后的結(jié)果。可以看出,它仍在原來* 的圍,且比* 包含的點(diǎn)要少,就像* 被腐蝕掉了一層。a原圖 b構(gòu)造元素 c腐蝕示意
39、圖圖3.3 腐蝕示意圖如圖3.3所示用構(gòu)造元素B(如圖(b )所示)對目標(biāo)圖像*(如圖( a )所示)進(jìn)展腐蝕運(yùn)算并得到運(yùn)算結(jié)果(如圖( c)所示)的過程。圖( a )中白色的局部代表背景,灰色的局部代表目標(biāo)圖像*。圖( b)中黑色的方格代表構(gòu)造元素的中心點(diǎn),灰色的方格代表鄰域。圖( c )中黑色的局部表示腐蝕后的結(jié)果,灰色的局部表示目標(biāo)圖像被腐蝕掉的局部。在腐蝕處理過程中,將構(gòu)造元素在圖像中移動,如果構(gòu)造元素完全包含在目標(biāo)圖像* 中,則保存目標(biāo)圖像中對應(yīng)于中心點(diǎn)的像素點(diǎn),否則刪除像素點(diǎn)。通過這個例子我們可以看出,腐蝕實際上是把圖像的外圍去掉,同時保存圖像部的局部1。3.2 圖像的膨脹膨脹是數(shù)
40、學(xué)形態(tài)學(xué)中除腐蝕之外的另一種根本運(yùn)算。膨脹在數(shù)學(xué)形態(tài)學(xué)中的作用與腐蝕的作用正好相反,它是對二值化物體邊界點(diǎn)進(jìn)展擴(kuò)大,將與物體接觸的所有背景點(diǎn)合并到該物體中,使邊界向外部擴(kuò)的過程。如果兩個物體之間的距離比擬近,則膨脹運(yùn)算可能會把兩個物體連通到一起,膨脹對填補(bǔ)圖像分割后物體中的空洞很有用。膨脹的數(shù)學(xué)表達(dá)式見式(3.2)。S = *B = * , y | B * y * (3.2)在公式中S 表示膨脹后的二值圖像集合, B表示用來進(jìn)展膨脹的構(gòu)造元素, 構(gòu)造元素的每一個元素取值為0或1,它可以組成任何一種形狀的圖形,在圖形中有一個中心點(diǎn);*表示原圖像經(jīng)過二值化后的像素集合。此公式的含義是用B來膨脹*得
41、到的集合S,S是由B映像的位移與* 至少有一個像素一樣時B的中心點(diǎn)位置的集合。通常是拖動構(gòu)造元素在* 圖像域移動,橫向移動間隔取一個像素,縱向移動間隔取一個掃描行。在每一個位置上,當(dāng)構(gòu)造元素B的中心點(diǎn)平移到* 圖像上的*一點(diǎn)(*,y ),如果構(gòu)造元素的像素與目標(biāo)物體至少有一個像素相交,則就保存(* ,y) 像素點(diǎn),從而到達(dá)使物體邊界向外擴(kuò)的效果。 * B *B圖3.4 *B示意圖如圖3.4所示左邊是被處理的二值圖像,針對的是黑點(diǎn),中間是構(gòu)造元素B。膨脹的方法是,拿B的中心點(diǎn)和*上的點(diǎn)及*周圍的點(diǎn)一個一個地對,如果B上有一個點(diǎn)落在*的圍,則該點(diǎn)就為黑;右邊是膨脹后的結(jié)果。可以看出,它包括* 的所
42、有圍,就像*膨脹了一圈似的。a原圖 (b)構(gòu)造元素圖 c膨脹示意圖圖3.5 膨脹示意圖如圖3.5所示用構(gòu)造元素B(如圖(b)所示)對目標(biāo)圖像*(如圖(a)所示)進(jìn)展膨脹運(yùn)算并得到運(yùn)算結(jié)果(如圖(c)所示)的過程。圖(a)中白色的局部代表背景,灰色的局部代表目標(biāo)圖像*。圖(b)中黑色的方格代表構(gòu)造元素的中心點(diǎn),灰色的方格代表鄰域。圖(c)中灰色的局部表示原目標(biāo)圖像,黑色的局部表示膨脹出來的結(jié)果。在膨脹處理過程中,將構(gòu)造元素在圖像中移動,如果構(gòu)造元素的鄰域與目標(biāo)圖像* 有局部重合,則保存圖像中對應(yīng)于中心點(diǎn)的像素點(diǎn)。23.3 開運(yùn)算在上兩節(jié)中介紹的腐蝕和膨脹,看上去好似是一對互逆的操作,實際上,這兩
43、種操作不具有互逆的關(guān)系。開運(yùn)算和閉運(yùn)算正是依據(jù)腐蝕和膨脹的不可逆性演變而來的。先腐蝕后膨脹的過程就稱為開運(yùn)算。原圖經(jīng)過開運(yùn)算后, 能夠去除孤立的小點(diǎn)、毛刺和小橋( 即連通兩塊區(qū)域的小點(diǎn)),消除小物體、平滑較大物體的邊界,同時并不明顯改變其面積。開運(yùn)算的數(shù)學(xué)表達(dá)式見式3.3。S = *B = ( *B) B (3.3)在公式中S 表示進(jìn)展開運(yùn)算后的二值圖像集合,B 表示用來進(jìn)展開運(yùn)算的構(gòu)造元素,構(gòu)造元素的每一個元素取值為0 或1,它可以組成任何一種形狀的圖形,在圖形中有一個中心點(diǎn); * 表示原圖像經(jīng)過二值化后的像素集合。此公式的含義是用B 來開啟* 得到集合S,S 是所有在集合構(gòu)造上不小于構(gòu)造元
44、素B 的局部的集合,也就是選出了* 中的*些與B相匹配的點(diǎn),而這些點(diǎn)則可以通過完全包含在* 中的構(gòu)造元素B 的平移來得到。* B *B (*B)B圖3.6 (*B)B如圖3.6所示左邊是被處理的二值圖像,針對的是黑點(diǎn),中間是構(gòu)造元素B,那個標(biāo)有1 的點(diǎn)是中心點(diǎn),即當(dāng)前處理元素的位置,我們在介紹模板操作時也有過類似的概念。拿B 的中心點(diǎn)和* 上的點(diǎn)一個一個地比照。對于腐蝕運(yùn)算:如果B 上的所有點(diǎn)都在* 的圍,則該點(diǎn)保存,否則將該點(diǎn)去掉。對于膨脹運(yùn)算:如果B 上有一個點(diǎn)落在* 的圍,則該點(diǎn)就為黑??梢钥吹剑?dāng)使用圓盤構(gòu)造元素時,開運(yùn)算對邊界進(jìn)展了平滑,去掉凸角。在凸角點(diǎn)周圍,圖像的集合構(gòu)造無法容納
45、給定圓盤,從而使凸角點(diǎn)被開運(yùn)算刪除。而當(dāng)使用線段構(gòu)造元素沿線段寬度方向較大的局部才能夠保存下來。而較小的凸局部將被刪除。因此,經(jīng)過開運(yùn)算后,能夠去除孤立的小點(diǎn),毛刺和小橋,平滑較大物體的邊界,同時并不明顯改變其面積。3.4 閉運(yùn)算閉運(yùn)算是通過對腐蝕和膨脹的另一種不同次序的執(zhí)行而得到的,閉運(yùn)算是先膨脹后腐蝕的過程,其功能是用來填充物體細(xì)小空洞、連接鄰近物體、平滑其邊界,同時不明顯改變其面積。開運(yùn)算的數(shù)學(xué)表達(dá)式見式 (3.4)。S = *B = (* B) B (3.4)在公式中S 表示進(jìn)展閉運(yùn)算后的二值圖像集合, B 表示用來進(jìn)展閉運(yùn)算的構(gòu)造元素,構(gòu)造元素的每一個元素取值為0 或1,它可以組成任
46、何一種形狀的圖形,在圖形中有一個中心點(diǎn); * 表示原圖像經(jīng)過二值化后的像素集合。此公式的含義是用B 來閉合* 得到的集合S,就是圖像* 與經(jīng)過映射和平移的構(gòu)造元素B 的交集不為空的點(diǎn)的集合。* B *B *BB圖3.7 *BB如圖3.7所示左邊是被處理的二值圖像,針對的是黑點(diǎn),右邊是構(gòu)造元素B,可以看到原圖經(jīng)過閉運(yùn)算后,斷裂的地方被彌合了。. 4 圖像腐蝕與膨脹處理4.1 CDIB類庫的建立 CDIB類庫的功能大多數(shù)圖像處理都是基于與設(shè)備無關(guān)位圖DIB來進(jìn)展討論的,而MFC中沒有處理DIB位圖的類,這就給編程帶來了許多困難。所以需要定義一個處理DIB位圖的專用類CDIB類,在其中封裝必要而有效
47、的DIB數(shù)據(jù)成員和處理函數(shù)。該類具有的功能如下:Void Load file(CString m_ file Name);/裝載BMP位圖文件BOOL Save File(const char * psz File name);/存儲BMP位圖文件Char * Get File Name();/返回位圖文件名DWORD Get Size();/返回位圖文件的大小UINT Get Width();/返回位圖的寬度UINT Get Height();/返回位圖的高度UINT Number Of Colors();/返回位圖顏色數(shù)目RGBQUAD * Get RGB();/返回顏色表首地址BITMA
48、PINFO * Get Info;/返回圖像信息構(gòu)造首地址BYIE * Get Data();/返回圖像數(shù)據(jù)首地址 CDIB類的構(gòu)造創(chuàng)立CDIB類,其接口文件和實現(xiàn)文件分別為DIB.H和DIB.CPP。文件DIB.H包含了CDIB類的類聲明有關(guān)的所有信息。CDIB類的聲明如下:#ifndef_CDIB_H#ifine_CDIB_HClass CDib : public CObjectpublic:RGBQUAD * m_pRGB;BYTE * m_pData;UINT m_numberOfColors;BOOL m_valid;BITMAPFILEHEADER bitmapFileHeader
49、;BITMAPINFOHEADER * m_pBitmapInfoHeader;BITMAPINFO * m_pBitmapInfo;BYTE * pDib;DWORD size;int byBitcount;DWORD dwWidthBytes;public:CDib ();CDib ();Char m_fileName 256;Char * GetFileName ();BOOL ISValid ();DWORD GetSize (); UINT GetWidth (); UINT GetHeight (); UINT NumberOfColors (); RGBQUAD * GetRGB
50、 (); BYTE * GetData ();BITMAPINFO * GetInfo ();DWORD GetDibWidthBytes ();WORD PaletteSize (LPBYTE lpDIB);WORD DIBNumColors(LPBYTE lpDIB);void SaveFile(const CString filename);public:void LoadFile(const char * dibFileName);#endif文件DIB.CPP包含了CDib類中的各函數(shù)的實現(xiàn)。對于6位位圖,在顯示方面調(diào)用了調(diào)色板技術(shù),而真彩色24位位圖不需要調(diào)用調(diào)色板。設(shè)備無關(guān)位圖讀
51、取及顯示的方法流程圖如圖4.1和4.2所示。得到文件的完整路徑名翻開位圖文件開場讀取BITMAPEILEHEADER構(gòu)造文件是BMP格式嗎?得到位圖大小,并分配相應(yīng)的內(nèi)存空間讀取BITMAPINFOHEADER構(gòu)造計算像素數(shù)據(jù)的起始位置,保存像素數(shù)據(jù)起始位置指針完畢NY圖4.1 圖像讀取流程圖開場從DOC對象中得到位圖數(shù)據(jù)起始位置指針,并得到圖像的寬、高等信息是否帶有顏色索引表使用文件中顏色表數(shù)據(jù)創(chuàng)立調(diào)色板把新創(chuàng)立的調(diào)色板作為設(shè)備環(huán)境的調(diào)色板,并保存原調(diào)色板設(shè)定顯示參數(shù),顯示位圖恢復(fù)原調(diào)色板完畢設(shè)定顯示參數(shù),顯示位圖NY圖4.2 圖像顯示流程圖4.2 圖像腐蝕與膨脹處理的實現(xiàn)4.2.1 水平腐
52、蝕處理實現(xiàn)1、 實現(xiàn)步驟(1)獲得原圖像的首地址及圖像的寬和高,二值化為1背景為白,物體為黑;(2)開辟一塊存緩沖區(qū),并初始化為255;(3)使用1*5構(gòu)造元素 0,0,0,0,0,為防越界,不處理最左邊兩列最右邊兩列的像素,從第2行第3列開場,將像素點(diǎn)賦0,檢查這個像素點(diǎn)的前兩點(diǎn)和后兩點(diǎn)中是否有背景點(diǎn),有將檢測的像素點(diǎn)灰度值賦為255,否則保持不變;(4)循環(huán)步驟(3),直到處理完原圖的全部像素點(diǎn);(5)將結(jié)果暫存在存緩沖區(qū)中;(6)將結(jié)果從存復(fù)制到原圖的數(shù)據(jù)區(qū)。2、 程序代碼if (m_pBitmapInfoHeader-biBitCount9)/灰度圖像 / 暫時分配存,以保存新圖像te
53、mp = new BYTEwide*height;/ 初始化新分配的存,設(shè)定初始值為255lpDst = (LPBYTE)temp;memset(lpDst, (BYTE)255, wide * height);/ 使用水平方向的構(gòu)造元素進(jìn)展腐蝕for (j = 0; j height; j+)for (i = 2; i wide - 2; i +)/ 由于使用15的構(gòu)造元素,為防止越界,所以不處理最左邊兩列和最右邊兩列的像素lpSrc = (unsigned char *)(p_data + wide *j + i);/ 指向目標(biāo)圖像倒數(shù)第j行,第i個象素的指針lpDst = (unsign
54、ed char *)(temp + wide * j + i);/ 目標(biāo)圖像中的當(dāng)前點(diǎn)先賦成黑色*lpDst = 0;/ 如果源圖像中(-2,0)、(-1,0)、(0,0)、(1,0)、(2,0)五個點(diǎn)之一有白點(diǎn),則將目標(biāo)圖像中的(0,0)點(diǎn)賦成白色for (n = 0; n 128)*lpDst = 255;break;else /24位真彩色LONG DibWidth; /原圖長、寬 DibWidth=this-GetDibWidthBytes(); /取得原圖的每行字節(jié)數(shù)BYTE *p_temp=new BYTEheight*DibWidth;/ 使用水平方向的構(gòu)造元素進(jìn)展腐蝕for (
55、j = 0; j height; j+)for (i = 5; i DibWidth - 5; i +=5)/ 由于使用15的構(gòu)造元素,為防止越界,所以不處理最左邊和最右邊的兩列像素lpSrc = (unsigned char *)(p_data + DibWidth *j + i);/ 指向目標(biāo)圖像倒數(shù)第j行,第i個象素的指針lpDst = (unsigned char *)(p_temp + DibWidth * j + i);/ 目標(biāo)圖像中的當(dāng)前點(diǎn)先賦成黑色*lpDst = 0; *(lpDst+1)=0;*(lpDst+2)=0; *(lpDst+3)=0;*(lpDst+4)=0;
56、/ 如果源圖像中(-2,0)、(-1,0)、(0,0)、(1,0)、(2,0)五個點(diǎn)之一有白點(diǎn),/ 則將目標(biāo)圖像中的(0,0)點(diǎn)賦成白色for(int m=0;m5;m+)for (n = 0; n 128)*lpDst = 255;break; else *lpDst =*lpSrc; lpSrc+;lpDst+;4.2.2 垂直腐蝕處理實現(xiàn)1、 實現(xiàn)步驟(1)獲得原圖像的首地址及圖像的寬和高,二值化為1背景為白,物體為黑;(2)開辟一塊存緩沖區(qū),并初始化為255;(3)使用5*1的構(gòu)造元素構(gòu)造,為防越界,不處理最左邊兩列和最右邊兩列的像素,從第3行第2列開場,將像素點(diǎn)賦為0,檢查這個像素點(diǎn)
57、的前一點(diǎn)和后一點(diǎn)中是否有背景點(diǎn),有則將檢測的像素點(diǎn)的灰度值賦為255,否則保持不變;(4)循環(huán)步驟(3),直到處理完原圖的全部像素點(diǎn);(5)將結(jié)果暫存在存緩沖區(qū)中;(6)將結(jié)果從存復(fù)制到原圖的數(shù)據(jù)區(qū)。2、 程序代碼if (m_pBitmapInfoHeader-biBitCount9)/灰度圖像 temp = new BYTEwide*height;/ 暫時分配存,以保存新圖像lpDst = (LPBYTE)temp;memset(lpDst, (BYTE)255, wide * height);/ 初始化新分配的存,設(shè)定初始值為255/使用垂直方向的構(gòu)造元素進(jìn)展腐蝕for(j = 2; j
58、height - 2; j+)for(i = 0; i wide; i +)/由于使用51的構(gòu)造元素,為防止越界,所以不處理最上邊兩列和最下邊兩列的像素/ 指向源圖像倒數(shù)第j行,第i個象素的指針lpSrc = (unsigned char *)(p_data + wide * j + i);lpDst = (unsigned char *)(temp + wide * j + i); / 指向目標(biāo)圖像倒數(shù)第j行,第i個象素的指針*lpDst = 0;/目標(biāo)圖像中的當(dāng)前點(diǎn)先賦成黑色/ 如果源圖像中(0,-2)、(0,-1)、(0,0)、(0,1)、(0,2)五個點(diǎn)之一有白點(diǎn),則將目標(biāo)圖像中的(0
59、,0)點(diǎn)賦成白色for (n = 0; n 128)*lpDst = 255; break; else /24位真彩色LONG DibWidth; /原圖長、寬 DibWidth=this-GetDibWidthBytes(); /取得原圖的每行字節(jié)數(shù)BYTE *p_temp=new BYTEheight*DibWidth;/使用垂直方向的構(gòu)造元素進(jìn)展腐蝕for(j = 2; j height - 2; j+)for(i = 0; i DibWidth; i+=5)/由于使用51的構(gòu)造元素,為防止越界,所以不處理最上邊兩列和最下邊兩列像素/ 指向源圖像倒數(shù)第j行,第i個象素的指針lpSrc =
60、 (unsigned char *)(p_data + DibWidth * j + i);lpDst = (unsigned char *)(p_temp + DibWidth * j + i);/ 指向目標(biāo)圖像倒數(shù)第j行,第i個象素的指針*lpDst = 0;/目標(biāo)圖像中的當(dāng)前點(diǎn)先賦成黑色*(lpDst+1)=0; *(lpDst+2)=0;*(lpDst+3)=0; *(lpDst+4)=0;/ 如果源圖像中(0,-2)、(0,-1)、(0,0)、(0,1)、(0,2)五個點(diǎn)之一有白點(diǎn),/ 則將目標(biāo)圖像中的(0,0)點(diǎn)賦成白色for(int m=0;m5;m+)for (n = 0; n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會議紀(jì)律與秩序維護(hù)制度
- 2026年網(wǎng)絡(luò)攻擊防范策略實戰(zhàn)練習(xí)題
- 2026年地理學(xué)知識考試題庫及正確答案詳解
- 2026年公共管理基礎(chǔ)知識與實務(wù)操作能力考試預(yù)測模擬題
- 2026年建筑師考試專業(yè)基礎(chǔ)題庫與答案詳解
- 2026年證券從業(yè)考試投資分析策略與實踐題庫
- 2026年新版副產(chǎn)品協(xié)議
- 檢驗科檢驗報告丟失的補(bǔ)辦處理流程及制度
- 2025 小學(xué)六年級科學(xué)上冊螞蟻群體分工行為觀察記錄課件
- 2025年陜西航空職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 八年級地理上冊《中國的氣候》探究式教學(xué)設(shè)計
- 重慶市2026年高一(上)期末聯(lián)合檢測(康德卷)化學(xué)+答案
- 2026年湖南郴州市百福控股集團(tuán)有限公司招聘9人備考考試題庫及答案解析
- 2026貴州黔東南州公安局面向社會招聘警務(wù)輔助人員37人考試備考題庫及答案解析
- 2026年數(shù)字化管理專家認(rèn)證題庫200道及完整答案(全優(yōu))
- 鐵路除草作業(yè)方案范本
- 2026屆江蘇省常州市生物高一第一學(xué)期期末檢測試題含解析
- 2026年及未來5年市場數(shù)據(jù)中國高溫工業(yè)熱泵行業(yè)市場運(yùn)行態(tài)勢與投資戰(zhàn)略咨詢報告
- 教培機(jī)構(gòu)排課制度規(guī)范
- 2026年檢視問題清單與整改措施(2篇)
- 國家開放大學(xué)《基礎(chǔ)教育課程改革專題》形考任務(wù)(1-3)試題及答案解析
評論
0/150
提交評論