圖像融合畢業(yè)論文_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢 業(yè) 論 文</b></p><p><b>  題目:圖像融合</b></p><p>  —VC環(huán)境下實現圖像融合</p><p>  姓  名: </p><p>  學  號: </p

2、><p>  系 別: 電氣工程與自動化系</p><p>  專 業(yè): 計算機控制技術 </p><p>  指 導 教 師: </p><p>  聯 系 教 師: </p><p>  2012 年 5 月 17

3、日</p><p><b>  圖像融合</b></p><p><b>  摘要</b></p><p>  近年來,圖像融合已成為圖像理解和計算機視覺領域中一項重要而有用的新技術。融合圖像更符合人和機器的視覺特性,更有利于諸如目標識別、特性提取等進一步的圖像處理。圖像融合已成為人類社會的很重要的一項技術。 本文

4、將介紹圖像融合技術研究的背景,描述了圖像融合的基本概念、層次、應用及國內外研究動態(tài)。圖像預處理、創(chuàng)建融合圖像和對融合圖像進行質量評價是這次研究的主要內容。圖像預處理包括圖像的復原和圖像的變換,通過預處理提高圖片的融合質量。創(chuàng)建融合圖像建融合圖像是對至少兩幅源圖像,在空域或頻域根據一定的規(guī)則加以組合,創(chuàng)建一個全新的圖像;最后就是對融合圖像的質量進行評價。</p><p>  圖象融合是指將自不同類型傳感器獲取的同一

5、地區(qū)的各圖像數據進行空間配準,然后采用一定的算法將配準后的各圖像數據中所含的顯著信息或互補信息有機地結合起來,產生新的圖像數據,并對新數據進行解譯。融合后圖像對場景的描述比任何單一源圖像都更全面、更精確。融合圖像更符合人和機器的視覺特性,更有利于諸如目標識別、特性提取等進一步的圖像處理。</p><p>  關鍵詞:C++,鏈接庫,圖像處理,圖像的配準,圖像融合</p><p>  Ima

6、ge fusion</p><p><b>  ABSTRACT</b></p><p>  In recent years, image fusion has become the image understanding and computer vision fields is an important and useful technique. Fusion i

7、mages are more suitable for human and machine vision, more conducive to such as target recognition, feature extraction, further image processing. Image fusion has become human society one of the important technology.

8、 </p><p>  This paper introduces the image fusion technology research background, describes the basic concept of image fusion, the application level, and the domestic and international research tren

9、ds. Image preprocessing, creating image fusion and quality evaluation of fused image is the main content of the research. Image processing including image restoration and image transform, through pretreatment improves im

10、age fusion quality. Create the fusion image fusion image is built on at least two source imag</p><p>  Image fusion refers to the different types of sensors to obtain from the same area of the image data to

11、spatial registration, and then using a certain algorithm will be after the registration of the image data contained in the significant or the complementary information organically, generating a new image data, and to new

12、 data interpretation. After the fusion image description of the scene than any of the individual source images are more comprehensive, more accurate. Fusion images are more sui</p><p>  Key Words: C++ libra

13、ry,Image Processing ,Image registration,Image Fusion</p><p><b>  目 錄</b></p><p><b>  前 言1</b></p><p>  第1章 面向對象技術與MFC概述2</p><p>  1.1 面向對象技術2

14、</p><p>  1.2 MFC概述2</p><p>  第2章Visual C++的簡介與應用 4</p><p>  2.1 Visual C++發(fā)展4</p><p>  2.1.1 Visual C++簡介4</p><p>  2.1.2Visual C++特點5</p><

15、;p>  第3章 圖像融合基礎6</p><p>  3.1 位圖和調色板的概念6</p><p>  3.2 bmp文件格式6</p><p>  3.3 bmp 文件的讀取6</p><p>  第4章 VC環(huán)境下的圖像融合技術7</p><p>  4.1 融合圖像原理與條件7</p>

16、;<p>  4.1.1 融合圖像原理7</p><p>  4.1.2 融合圖像條件7</p><p>  4.2 融合圖像技術概括7</p><p>  4.2.1 融合總流程..........................................................................8</p>

17、;<p>  4.2.2 圖像融合分層</p><p>  4.2.3 圖像融合算法</p><p>  4.3VC環(huán)境下融合的C++實現......................... 25</p><p>  4.3.1 融合的程序方案設計........................ 26</p><p>  4.3.

18、2 VC環(huán)境下融合的程序的框架.................. 28</p><p>  4.3.3 VC環(huán)境下融合的程序源代碼..</p><p>  第5章 圖像融合的現狀與展望8</p><p>  5.1圖像融合的現狀8</p><p>  5.2 圖像融合的展望8</p><p><b>

19、  結 論9</b></p><p><b>  謝 辭10</b></p><p><b>  參考文獻11</b></p><p><b>  附 錄13</b></p><p><b>  前言</b></p>&l

20、t;p>  圖像融合是數據融合一個非常重要的分支,是20世紀70年代后期提出的概念,是綜合了傳感器、圖像處理、信號處理、計算機和人工智能的現代高新技術。圖像融合把工作于不同波長范圍、具有不同成像機理的圖像傳感器對同一個場景的多個成像信息融合成一個新圖像,從而使融合的圖像可信度更高,模糊較少,可理解性更好,更適合人的視覺及計算機檢測、分類、識別、理解等處理。</p><p>  圖像融合的處理通常可在以下三個

21、不同層次上進行:像素級、特征級、決策級。像素級圖像融合主要是針對初始圖像數據進行的,其目的主要是圖像增強、圖像分割和圖像分類,從而為人工判讀圖像或進一步的特征級融合提供更佳的輸入信息;特征級圖像融合是指從各個傳感器圖像中提取特征信息,并進行綜合分析和處理的過程,提取的特征信息是像素信息的充分表示量或充分統(tǒng)計量,典型的特征信息有邊緣、形狀、輪廓、角、紋理、相似亮度區(qū)域等;決策級圖像融合是對來自多幅圖像的信息進行邏輯推理或統(tǒng)計推理的過程。&

22、lt;/p><p>  國內外在圖像融合的不同層次上開展了大量的模型和算法的研究,取得了很多寶貴的研究成果,涌現出大量文獻,但由于系統(tǒng)介紹圖像融合理論、方法和應用的書籍非常少,使很多剛剛踏入這一研究領域的初學者感到學習起來相當困難,這也不利于圖像融合研究和應用的進一步普及和深人發(fā)展。</p><p>  第1章 面向對象技術與MFC概述</p><p>  1.1 面

23、向對象技術</p><p>  面向對象技術是一種以對象為基礎,以事件或消息來驅動對象執(zhí)行處理的程序設計技術。它以數據為中心而不是以功能為中心來描述系統(tǒng),數據相對于功能而言具有更強的穩(wěn)定性。它將數據和對數據的操作封裝在一起,作為一個整體來處理,采用數據抽象和信息隱蔽技術,將這個整體抽象成一種新的數據類型——類,并且考慮不同類之間的聯系和類的重用性。類的集成度越高,就越適合大型應用程序的開發(fā)。另一方面,面向對象程序

24、的控制流程由運行時各種事件的實際發(fā)生來觸發(fā),而不再由預定順序來決定,更符合實際。事件驅動程序的執(zhí)行圍繞消息的產生與處理,靠消息循環(huán)機制來實現。在實際編程時可以采用搭積木的方式來組織程序,站在“巨人”的肩上實現自己的目標。面向對象程序的設計方法使得程序結構清晰、簡單,提高了代碼的重用性,有效減少了程序的維護量,提高了軟件的開發(fā)效率。</p><p>  面向對象技術強調在軟件開發(fā)過程中面向客觀世界或問題域中的事物,

25、采用人類在認識客觀世界的過程中普遍運用的思維方法,直觀、自然地描述客觀世界中的有關事物。面向對象技術的基本特征主要有抽象性、封裝性、繼承性和多態(tài)性。</p><p>  在結構上,面向對象程序與面向過程程序有很大不同。面向對象程序由類的定義和類的使用兩部分組成:在主程序中定義各對象并規(guī)定他們之間傳替消息的規(guī)律,程序中的一切操作都通過向對象發(fā)送消息來實現;對象接到消息后,啟動消息處理函數完成相應的操作。 面向對象程

26、序設計(Object Oriented Programming,OOP)方法出現之前,程序員用面向過程的方法開發(fā)程序。面向過程的方法把密切相關、相互依賴的數據和對數據的操作相互分離這種實質上的依賴與形式上的分離使得大型程序不但難以編寫,而且難以調試和修改。</p><p><b>  1.2 MFC概述</b></p><p>  MFC (Microsoft Fou

27、ndation Class Library)中的各種類結合起來構成了一個應用程序框架,它的目的就是讓程序員在此基礎上來建立Windows下的應用程序,這是一種相對SDK來說更為簡單的方法。因為總體上,MFC框架定義了應用程序的輪廓,并提供了用戶接口的標準實現方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C++提供了相應的工具來完成這個工作:AppWizard可以用來生成初

28、步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設計用戶接口;ClassWizard用來協(xié)助添加代碼到框架文件;最后,編譯,則通過類庫實現了應用程序特定的邏輯。</p><p>  MFC抽象出眾多類的共同特性,設計出一些基類作為實現其他類的基礎。這些類中,最重要的類是CObject和CCmdTarget。CObject是MFC的根類,絕大多數MFC類是其派生的,包括CCmdTarget。CObject 實

29、現了一些重要的特性,包括動態(tài)類信息、動態(tài)創(chuàng)建、對象序列化、對程序調試的支持,等等。所有從CObject派生的類都將具備或者可以具備CObject所擁有的特性。CCmdTarget通過封裝一些屬性和方法,提供了消息處理的架構。MFC中,任何可以處理消息的類都從CCmdTarget派生。針對每種不同的對象,MFC都設計了一組類對這些對象進行封裝,每一組類都有一個基類,從基類派生出眾多更具體的類。</p><p>  

30、MFC以“C++”為基礎,自然支持虛擬函數和動態(tài)約束。但是作為一個編程框架,有一個問題必須解決:如果僅僅通過虛擬函數來支持動態(tài)約束,必然導致虛擬函數表過于臃腫,消耗內存,效率低下。于是,MFC建立了消息映射機制,以一種富有效率、便于使用的手段解決消息處理函數的動態(tài)約束問題。這樣,通過虛擬函數和消息映射,MFC類提供了豐富的編程接口。程序員繼承基類的同時,把自己實現的虛擬函數和消息處理函數嵌入MFC的編程框架。MFC編程框架將在適當的時候

31、、適當的地方來調用程序的代碼。</p><p>  Visual C++的簡介與應用</p><p>  2.1Visual C++發(fā)展</p><p>  2.1.1Visual C++的簡介</p><p>  VC++是微軟公司開發(fā)的一個IDE(集成開發(fā)環(huán)境),換句話說,就是使用c++的一個開發(fā)平臺.vc++是Windows平臺上的C+

32、+編程環(huán)境,學習VC要了解很多Windows平臺的特性并且還要掌握MFC、ATL、COM等的知識,難度比較大。VC作為一個主流的開發(fā)平臺一直深受編程愛好者的喜愛,但是很多人卻對它的入門感到難于上青天,究其原因主要是大家對他錯誤的認識造成的,嚴格的來說 VC++不是門語言,雖然它和C++之間有密切的關系,如果形象點比喻的話,可以C++看作為一種”工業(yè)標準”,而VC++則是某種操作系統(tǒng)平臺下的”廠商標準”,而”廠商標準”是在遵循”工業(yè)標準”

33、的前提下擴展而來的。從最早期的1.0版本,發(fā)展到最新的6.0版本,Visual C++已經有了很大的變化,在界面、功能、庫支持方面都有許多的增強。</p><p>  Visual C++集成開發(fā)環(huán)境(IDE) 集成開發(fā)環(huán)境(IDE)是一個將程序編輯器、編譯器、調試工具和其他建立應用程序的工具集成在一起的用于開發(fā)應用程序的軟件系統(tǒng)。Visual C++軟件包中的Developer Studio就是一個集

34、成開發(fā)環(huán)境,它集成了各種開發(fā)工具和VC編譯器。程序員可以在不離開該環(huán)境的情況下編輯、編譯、調試和運行一個應用程序。IDE中 還提供大量在線幫助信息協(xié)助程序員做好開發(fā)工作。Developer Studio中除了程序編輯器、資源編輯器、編譯器、調試器外,還有各種工具和向導(如AppWizard和ClassWizard),以及MFC類庫, 這些都可以幫助程序員快速而正確地開發(fā)出應用程序。</p><p>  一個通過一

35、步步的幫助引導你工作的工具。Developer Studio中包含三個向導,用來幫助程序員開發(fā)簡單的Windows程序,它們是:AppWizard:用來創(chuàng)建一個Windows程序的基本框架結構。AppWizard向導會一步步向程序員提出問題,詢問他所創(chuàng)建的項目的特征,然后 AppWizard會根據這些特征自動生成一個可以執(zhí)行的程序框架,程序員然后可以在這個框架下進一步填充內容。AppWizard支持三類程序:基于視 圖/文檔結構的單文檔

36、應用、基于視圖/文檔結構的多文檔應用程序和基于對話框的應用程序。也可以利用AppWizard生成最簡單的控制臺應用程序(類似 于DOS下用字符輸入輸出的程序)。ClassWizard:用來定義AppWizard所創(chuàng)建的程序中的類??梢岳肅lassWizard在項目中增加類、為類增加處理消息的函數等。ClassWizard也可以管理包含在對話框中的控件,它可以將MFC對象或者類的成員變量與對話框中的控件聯系起來。ActiveX Co

37、ntrol Wizard:用于創(chuàng)建一個ActiveX控件的基本框架結構。ActiveX控件是用戶自定義的控件,</p><p>  MFC庫 庫(library)是可以重復使用的源代碼和目標代碼的集合。MFC(Microsoft Fundamental Casses)是Visual C++開發(fā)環(huán)境所帶的類庫,在該類庫中提供了大量的類,可以幫助開發(fā)人員快速建立應用程序。這些類可以提供程序框架、進行文件和數據

38、庫操作、建立網絡連 接、進行繪圖和打印等各種通用的應用程序操作。使用MFC庫開發(fā)應用程序可以減少很多工作量。</p><p>  2.1.2 Visual C++的特點</p><p>  Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選

39、工具。</p><p>  Visual C++6.0不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為

40、和諧的開發(fā)環(huán)境?! isual C++它大概可以分成三個主要的部分:  1. Developer Studio,這是一個集成開發(fā)環(huán)境,我們日常工作的99%都是在它上面完成的,再加上它的標題赫然寫著“Microsoft Visual C++”,所以很多人理所當然的認為,那就是Visual C++了。其實不然,雖然Developer Studio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成

41、這些工作的幕后英雄后面會介紹。我們也知道,Developer Studio并不是專門用于VC的,它也同樣用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟</p><p>  2.2 Visual C++的應用 </p><p>  第3章 圖像融合基礎</p><p>  3.1 位圖和調色板的概念</p><p> 

42、 如今Windows(3.x以及95,98,NT)系列已經成為絕大多數用戶使用的操作系統(tǒng),它比DOS成功的一個重要因素是它可視化的漂亮界面。那么Windows是如何顯示圖象的呢?這就要談到位圖(bitmap普通的顯示器屏幕是由許許多多點構成的,我們稱之為象素。顯示時采用掃描的方法:電子槍每次從左到右掃描一行,為每個象素 著色,然后從上到下這樣掃描若干行,就掃過了一屏。為了防止閃爍,每秒要重復上述過程幾十次。例如我們常說的屏幕分辨率為6

43、40×480,刷新頻率為 70Hz,意思是說每行要掃描640個象素,一共有480行,每秒重復掃描屏幕70次。 </p><p>  我們稱這種顯示器為位映象設備。所謂位映象,就是指一個二維的象素矩陣,而位圖就是采用位映象方法顯示和存儲的圖象。</p><p>  有一個長寬各為200個象素,顏色數為16色的彩色圖,每一個象素都用R、G、B三個分量表示。因為每個分量有256個級別,

44、要用8位(bit),即一個 字節(jié)(byte)來表示,所以每個象素需要用3個字節(jié)。整個圖象要用200×200×3,約120k字節(jié),可不是一個小數目呀!如果我們用下面的方法,就 能省的多。因為是一個16色圖,也就是說這幅圖中最多只有16種顏色,我們可以用一個表:表中的每一行記錄一種顏色的R、G、B值。這樣當我們表示一個象素的顏色 時,只需要指出該顏色是在第幾行,即該顏色在表中的索引值。舉個例子,如果表的第0行為255,

45、0,0(紅色),那么當某個象素為紅色時,只需要標明0即 可。讓我們再來計算一下:16種狀態(tài)可以用4位(bit)表示,所以一個象素要用半個字節(jié)。整個圖象要用200×200×0.5,約20k字節(jié),再加上表占用的字節(jié)為3×16=48字節(jié).整個占用的字節(jié)數約為前面的1/6,省很多吧?這張R、G、B的表,就是我們常說的調色板(Palette)。既然用R,G,B的量化值就可以直接記錄一張位圖的所有像素,那我們需要調

46、色板干什么呢?首先,我們可以計算完全利用(R,G,B</p><p>  3.2 Bmp文件格式</p><p>  BMP(全稱Bitmap)是Window操作系統(tǒng)中的標準圖像文件格式,可以分成兩類:設備相關位圖(DDB)和設備無關位圖(DIB),使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大。BMP文件的圖像深度可選lb

47、it、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。 由于BMP文件格式是Windows環(huán)境中交換與圖有關的數據的一種標準,因此在Windows環(huán)境中運行的圖形圖像軟件都支持BMP圖像格式。</p><p>  BMP文件由文件頭、位圖信息頭、顏色信息和圖形數據四部分組成。文件頭主要包含文件的大小、文件類型、圖像數據偏離文件頭的長度等信息;位圖信息頭 包含圖象的

48、尺寸信息、圖像用幾個比特數值來表示一個像素、圖像是否壓縮、圖像所用的顏色數等信息。顏色信息包含圖像所用到的顏色表,顯示圖像時需用到這個 顏色表來生成調色板,但如果圖像為真彩色,既圖像的每個像素用24個比特來表示,文件中就沒有這一塊信息,也就不需要操作調色板。文件中的數據塊表示圖像 的相應的像素值,需要注意的是:圖像的像素值在文件中的存放順序為從左到右,從下到上 ,也就是說,在BMP文件中首先存放的是圖像的最后一行像素,最后才 存儲圖像

49、的第一行像素,但對與同一行的像素,則是按照先左邊后右邊的的順序存儲的;文件存儲圖像的每一行像素值時,如 果存儲該行像素值所占的字節(jié)數為4的倍數,則正常存儲,否則,需要在后端補0,湊足4的倍數。</p><p>  3.3 bmp文件的讀取</p><p>  第4章VC環(huán)境下的圖像融合技術</p><p>  4.1 融合圖像原理與條件</p><

50、;p>  4.1.1 融合圖像原理</p><p>  圖像融合是一門綜合了傳感器、圖像處理、信號處理、顯示、計算機和人工智能等技術的現代高新技術。通常地,圖像融合是把對同一目標或場景用不同傳感器所獲得的圖像或用不同方式獲得的圖像融合成一幅圖像,在這幅圖像中能反應多重原始圖像中的信息,能對場景描述得比任何單一源圖像都更精確、更全面。</p><p>  多傳感器數據融合,是一種對多源

51、信息進行綜合處理的一項新技術,多傳感器數據融合亦稱多傳感器信息融合。所謂多傳感器數據融合是指對來自多個傳感器的信息進行多級別、多方面、多層次的處理與綜合,從而獲得更豐富、更精確、更可靠的有用信息。數據融合的確切定義是:數據融合是一種多層次的、多方面的處理過程,這個過程是對多源數據進行檢測、結合、相關、估計和組合以達到精確的狀態(tài)估計和身份估計,以及完整、及時的態(tài)勢評估和威脅估計。</p><p>  被融合圖像的信

52、息構成如圖1所示,這里以兩幅圖像為例:</p><p><b>  圖 1</b></p><p>  隨著科學的發(fā)展和技術的進步,采集圖像數據的手段不斷完善,出現了各種新的圖像獲取技術。但是,目前作為信息輸出源的各種傳感器的性能還不能完全滿足人們的要求,這一方面是由于受到獲取技術本身發(fā)展水平的限制;另一方面是因為任何一種獲取技術都有一定的精度和適用范圍,且其信號都要

53、受到周圍環(huán)境的干擾。也就是說,一幅圖像只能提供部分的、不完全精確的信息,因此不能排除對未知或部分未知環(huán)境描述的多義性。這就產生了如何從多幅圖像中恢復原始圖像的問題,即圖像融合技術問題。它的優(yōu)越性非常明顯,其作用類似于人腦在視覺產生過程中的作用,具有時空覆蓋寬、目標分辨率高、重構性好、冗余性、互補性等突出的優(yōu)越性。</p><p>  4.1.2融合圖像的條件</p><p><b&g

54、t;  圖像增強</b></p><p>  增強圖象中的有用信息,它可以是一個失真的過程,其目的是要改善圖像的視覺效果,針對給定圖像的應用場合,有目的地強調圖像的整體或局部特性,將原來不清晰的圖像變得清晰或強調某些感興趣的特征,擴大圖像中不同物體特征之間的差別,抑制不感興趣的特征,使之改善圖像質量、豐富信息量,加強圖像判讀和識別效果,滿足某些特殊分析的需要。 </p><p>

55、;  圖像增強可分成兩大類:頻率域法和空間域法。前者把圖像看成一種二維信號,對其進行基于二維傅里葉變換的信號增強。采用低通濾波(即只讓低頻信號通過)法,可去掉圖中的噪聲;采用高通濾波法,則可增強邊緣等高頻信號,使模糊的圖片變得清晰。具有代表性的空間域算法有局部求平均值法和中值濾波(取局部鄰域中的中間像素值)法等,它們可用于去除或減弱噪聲。</p><p><b>  圖像平滑</b><

56、/p><p>  圖像平滑是指用于突出圖像的寬大區(qū)域、低頻成分、主干部分或抑制圖像噪聲和干擾高頻成分,使圖像亮度平緩漸變,減小突變梯度,改善圖像質量的圖像處理方法。   圖像平滑的方法包括:插值方法,線性平滑方法,卷積法等等。這樣的處理方法根據圖像噪聲的不同進行平滑,比如椒鹽噪聲,就采用線性平滑方法</p><p><b>  圖像配準的概念</b></p>

57、<p>  圖像配準(Image registration)就是將不同時間、不同傳感器(成像設備)或不同條件下(天候、照度、攝像位置和角度等)獲取的兩幅或多幅圖像進行匹配、疊加的過程,它已經被廣泛地應用于遙感數據分析、計算機視覺、圖像處理等領域。</p><p>  圖像配準的方式可以概括為相對配準和絕對配準兩種:相對配準是指選擇多圖像中的一張圖像作為參考圖像,將其它的相關圖像與之配準,其坐標系統(tǒng)是任

58、意的。絕對配準是指先定義一個控制網格,所有的圖像相對于這個網格來進行配準,也就是分別完成各分量圖像的幾何校正來實現坐標系的統(tǒng)一。本文主要研究大幅面多圖像的相對配準,因此如何確定多圖像之間的配準函數映射關系是圖像配準的關鍵。通常通過一個適當的多項式來擬合兩圖像之間的平移、旋轉和仿射變換,由此將圖像配準函數映射關系轉化為如何確定多項式的系數,最終轉化為如何確定配準控制點(RCP)</p><p>  4.1.3融合圖

59、像目的</p><p>  圖像融合是一種綜合多個源圖像信息的先進圖像處理技術,其目的是集成多個源圖像中的冗余信息和互補信息,以強化圖像中的信息、增加圖像理解的可靠性。圖像融合的目的包括以下幾個方面:</p><p><b>  1)降低圖像噪聲</b></p><p>  一般而言,從傳感器得到的圖像都是有噪圖像,而后續(xù)的圖像處理一般要求噪聲

60、在一定范圍內,因此,可以采用融合的方法來降低噪聲,提高信噪比。對于這種方法一般采用峰值信噪比作為評價標準。</p><p><b>  2)提高分辨率</b></p><p>  提高分辨率也是圖像融合的一個重要目的,有時從衛(wèi)星得到的紅外圖像的分辨率不高,這就要求用其它傳感器得到圖像(如光學圖像,合成孔徑圖像)與紅外圖像進行融合來提高分辨率。對于這種方法的融合效果評價

61、可采用圖像的標準差作為評價標準。</p><p><b>  3)提高信息量</b></p><p>  在傳輸圖像,圖像特征提取等方面需要提高信圖像的信息量。圖像融合是提高信息量的一個重要手段。對于融合圖像的信息量是否提高,我們可采用嫡、交叉墑、互信息量作為評價標準的。</p><p><b>  4)提高清晰度</b>

62、</p><p>  在圖像處理中,往往需要在保持原有信息不丟失的情況下,提高圖像的質量、增強圖像的細節(jié)信息和紋理特征、保持邊緣細節(jié)及能量,這對于一般的圖像增強很難辦到,因此需要采用圖像融合的辦法,這時,對融合效果的評價可采用基于梯度和小波能量的評價方法。</p><p>  4.2 融合圖像技術概括</p><p>  4.2.1 融合總流程.</p>

63、<p>  4.2.2 圖像融合分層</p><p>  圖像的融合過程可以發(fā)生在信息描述的不同層。通常將圖像融合分為像素級、特征級和決策級。一但是通常在一個融合過程中這三層的融合是可以同時發(fā)生的。</p><p>  融合過程的輸入信息可以是三層中的任何一種,經過一個混和方法,輸出也可以</p><p>  是三層中的任何一種。</p>

64、<p>  素級圖像融合方法是最重要、最基本的圖像融合方法,其信息損失最小,分類性能最好,但是融合方法也是最難的。</p><p>  像素級融合是將各幅源圖像或者源圖像的變換圖像中的對應像素進行融合,從而獲得一幅新的圖像,圖2.2示意了像素級的圖像融合過程。參加融合的源圖像</p><p>  可能來自多個不同類型的圖像傳感器,也可能來自單一圖像傳感器。單一圖像</p&

65、gt;<p>  感器提供的各個圖像可能來源于不同觀測時間或空間,也可能來自同一時間、</p><p>  間不同光譜特性的圖像(如多光譜照相機獲得的圖像)。像素級圖像融合是為了</p><p>  充、豐富和強化融合圖像中的有用信息,使融合圖像更符合人或者機器的視覺</p><p>  征,更有利于對圖像的進一步分析和處理(如圖像分割,特性提取,目標

66、檢測</p><p>  目標識別等),是特征級和決策級融合的基礎。與每個源圖像相比,通過像素級圖像融合后的圖像包含的信息更豐富、精確、可靠、全面。像素級圖像融合可能提供最優(yōu)決策和識別性能。但是像素級的圖像融合也具有明顯的局限性:它所要處理的圖像數據量最大;這種融合是在信息的最低層進行的,傳感器原始信息不確定性、不完全性和不穩(wěn)定性要求在融合時有較高的糾錯處理能力;要求各傳感器信息之間有精確到一個像素的配準精度;數

67、據通信量大,抗干擾能力差。</p><p>  特征級圖像融合屬于中間層次融合,它首先對來自傳感器的原始信息進行特征(如邊沿、形狀、輪廓、方向、區(qū)域和距離等)提取,產生特征矢量,然后對特征矢量進行融合處理,并做出基于融合特征矢量的融合說明。一般來說,提取的特征信息應該是像素信息的充分表示量或充分估計量,然后按照特征信息對多傳感器數據進行分類、匯集和綜合。特征級圖像融合涉及圖像分割、特征提取和特征層的信息融合。&l

68、t;/p><p>  特征級融合可以分為兩大類:目標狀態(tài)融合和目標特性融合。特征級目標狀態(tài)信息融合主要應用于多傳感器目標跟蹤領域, 其融合處理主要實現參數相關和狀態(tài)矢量估計。特征級目標特性融合就是特征層的聯合目標識別,其仍然要融合方法中仍然要用到模式識別的相關技術,只是在融合處理前必須對特征進行相關處理,對特征矢量進行分類與綜合。更為重要的是,在模式識別、圖像處理和計算機視覺等領域,人們已經對特征提取和基于特征的聚類

69、問題進行了深入的研究。</p><p>  特征級融合的優(yōu)點在于實現了客觀的信息壓縮,有利于實時處理,并且由于所提供的特征直接與決策分析有關,因此融合結果能夠最大限度的給出決策分析所需要的特征信息;</p><p>  其缺點是比像素級融合精度差。</p><p>  決策級融合屬于最高層次的融合,包含了檢測、分類、識別和融合。它首先對每個數據進行屬性說明,然后將其

70、結果加以融合,得到目標或環(huán)境的融合屬性說明,其結果為指揮控制決策提供依據。因此,決策級融合必須從具體決策問題的需求出發(fā),充分利用特征級融合所提取的測量對象的各類信息,采用適當的融合技術來實現。決策級融合是這三級融合里的最高層次,是直接針對具體決策目標的,融合結果的好壞直接影響決策水平。在決策級圖像融合之前,每種傳感器己經被獨立完成了決策和分類任務,融合工作實質上是做出全局的最優(yōu)決策。決策級圖像融合的優(yōu)點表現為:它能在增加或減少一個或多個

71、傳感器的情況下工作,對傳感器沒有特殊的要求,因此,它具有很強的容錯性、很好的開放性、融合中心處理代價小,較短的處理時間等特點。同時由于處理的數據量較小,信息通信量小,抗干擾能力強,還能有效的反映環(huán)境或目標各個側面的不同類型信息。但是,由于是最高級別的融合,需要以前面級別的融合結果作為輸入,所以預處理的代價非常高。</p><p>  4.2.3 圖像融合算法</p><p>  4.3VC

72、環(huán)境下融合的C++實現</p><p>  4.3.1 融合的程序方案設計</p><p><b>  1 總體設計</b></p><p>  圖3.1 程序解決方案</p><p><b>  2 程序頭文件</b></p><p>  圖3.2 Resource.h文件

73、</p><p>  3 spliceimagedlg.h文件:</p><p>  // spliceImageDlg.h : header file</p><p><b>  //</b></p><p>  #pragma once</p><p>  // CspliceImageDlg

74、 dialog</p><p>  class CspliceImageDlg : public CDialog</p><p><b>  {</b></p><p>  // Construction</p><p><b>  public:</b></p><p> 

75、 CspliceImageDlg(CWnd* pParent = NULL);// standard constructor</p><p>  // Dialog Data</p><p>  enum { IDD = IDD_SPLICEIMAGE_DIALOG };</p><p>  protected:</p><p>  vir

76、tual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support</p><p>  // Implementation</p><p>  protected:</p><p>  HICON m_hIcon;</p><p>  Image *m_firstImg;</

77、p><p>  Image *m_secondImg;</p><p>  Image *m_afterSpliceImage;</p><p>  CString m_path1,m_path2;</p><p>  // Generated message map functions</p><p>  virtual

78、 BOOL OnInitDialog();</p><p>  afx_msg void OnSysCommand(UINT nID, LPARAM lParam);</p><p>  afx_msg void OnPaint();</p><p>  afx_msg HCURSOR OnQueryDragIcon();</p><p> 

79、 DECLARE_MESSAGE_MAP()</p><p><b>  public:</b></p><p>  afx_msg void OnBnClickedButton1();</p><p>  afx_msg void OnBnClickedButton2();</p><p>  afx_msg void

80、 OnBnClickedButton3();</p><p>  afx_msg void OnBnClickedOk();</p><p>  double m_thr;</p><p>  afx_msg void OnBnClickedButton4();</p><p><b>  };</b></p>

81、;<p>  4.3.2 VC環(huán)境下融合的程序的框架</p><p>  3.6.2 VC環(huán)境下融合的程序的框架</p><p>  // MainFrm.cpp : implementation of the CMainFrame class</p><p><b>  //</b></p><p>  

82、#include "stdafx.h"</p><p>  #include "PixelFusion.h"</p><p>  #include "SegmentView.h"</p><p>  #include "PixelFusionView.h"</p><

83、p>  #include "FusionView.h"</p><p>  #include "MainFrm.h"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW</p><p>  #undef THIS_FILE</p&g

84、t;<p>  static char THIS_FILE[] = __FILE__;</p><p><b>  #endif</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p> 

85、 // CMainFrame</p><p>  IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)</p><p>  BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)</p><p>  //{{AFX_MSG_MAP(CMainFrame)</p><p>  // NO

86、TE - the ClassWizard will add and remove mapping macros here.</p><p>  // DO NOT EDIT what you see in these blocks of generated code !</p><p>  ON_WM_CREATE()</p><p>  ON_COMMAND

87、(IDM_DEVIOR, OnDevior)</p><p>  ON_COMMAND(IDM_KROMO, OnKromo)</p><p>  ON_COMMAND(IDM_XPBLUE, OnXpblue)</p><p>  ON_UPDATE_COMMAND_UI(IDM_KROMO, OnUpdateKromo)</p><p>

88、  ON_UPDATE_COMMAND_UI(IDM_XPBLUE, OnUpdateXpblue)</p><p>  //}}AFX_MSG_MAP</p><p>  END_MESSAGE_MAP()</p><p>  static UINT indicators[] =</p><p><b>  {</b>

89、</p><p>  ID_SEPARATOR, // status line indicator</p><p>  ID_INDICATOR_CAPS,</p><p>  ID_INDICATOR_NUM,</p><p>  ID_INDICATOR_SCRL,</p><p><b&

90、gt;  };</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // CMainFrame construction/destruction</p><p>  CMainFrame::CMainFr

91、ame()</p><p><b>  {</b></p><p>  // TODO: add member initialization code here</p><p><b>  }</b></p><p>  CMainFrame::~CMainFrame()</p>&l

92、t;p><b>  {</b></p><p><b>  }</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // CMainFrame message han

93、dlers</p><p>  void CMainFrame::OnDevior() </p><p><b>  {</b></p><p>  // TODO: Add your command handler code here</p><p>  LoadSkinFromResource( AfxGetInst

94、anceHandle(),"DEVIOR" ,"SKINMAGIC");</p><p><b>  }</b></p><p>  void CMainFrame::OnKromo() </p><p><b>  {</b></p><p>  // TO

95、DO: Add your command handler code here</p><p>  LoadSkinFromResource( AfxGetInstanceHandle(),"KROMO","SKINMAGIC"); </p><p>  if( !m_bSkinned )</p><p><b>  

96、{</b></p><p>  VERIFY( 1 == SetWindowSkin( m_hWnd , "MainFrame" ));</p><p>  VERIFY( 1 == SetDialogSkin( "Dialog" ) );</p><p>  m_nIndex = 0 ;</p>&

97、lt;p><b>  }</b></p><p><b>  }</b></p><p>  void CMainFrame::OnXpblue() </p><p><b>  {</b></p><p>  // TODO: Add your command han

98、dler code here</p><p>  LoadSkinFromResource( AfxGetInstanceHandle() , "XPBLUE" ,"SKINMAGIC") ;</p><p><b>  }</b></p><p>  void CMainFrame::OnUpdate

99、Kromo(CCmdUI* pCmdUI) </p><p><b>  {</b></p><p>  // TODO: Add your command update UI handler code here</p><p>  pCmdUI->SetCheck(m_nIndex == 0 );</p><p>

100、;<b>  }</b></p><p>  void CMainFrame::OnUpdateXpblue(CCmdUI* pCmdUI) </p><p><b>  {</b></p><p>  // TODO: Add your command update UI handler code here</p&

101、gt;<p>  pCmdUI->SetCheck(m_nIndex == 1 );</p><p><b>  }</b></p><p>  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)</p><p><b>  {</b><

102、/p><p>  if (CFrameWnd::OnCreate(lpCreateStruct) == -1)</p><p>  return -1;</p><p>  if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP</p><p>

103、;  | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||</p><p>  !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))</p><p><b>  {</b></p><p>  TRACE0("Failed

104、to create toolbar\n");</p><p>  return -1; // fail to create</p><p><b>  }</b></p><p>  if (!m_wndStatusBar.Create(this) ||</p><p>  !m_wndStatusB

105、ar.SetIndicators(indicators,</p><p>  sizeof(indicators)/sizeof(UINT)))</p><p><b>  {</b></p><p>  TRACE0("Failed to create status bar\n");</p><p>

106、;  return -1; // fail to create</p><p><b>  }</b></p><p>  // TODO: Delete these three lines if you don't want the toolbar to</p><p>  // be dockable</p>

107、<p>  m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);</p><p>  EnableDocking(CBRS_ALIGN_ANY);</p><p>  DockControlBar(&m_wndToolBar);</p><p><b>  return 0;</b><

108、;/p><p><b>  }</b></p><p>  BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)</p><p><b>  {</b></p><p>  if( !CFrameWnd::PreCreateWindow(cs) )

109、</p><p>  return FALSE;</p><p>  // TODO: Modify the Window class or styles here by modifying</p><p>  // the CREATESTRUCT cs</p><p>  return TRUE;</p><p>

110、;<b>  }</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // CMainFrame diagnostics</p><p>  #ifdef _DEBUG</p>&

111、lt;p>  void CMainFrame::AssertValid() const</p><p><b>  {</b></p><p>  CFrameWnd::AssertValid();</p><p><b>  }</b></p><p>  void CMainFrame::

112、Dump(CDumpContext& dc) const</p><p><b>  {</b></p><p>  CFrameWnd::Dump(dc);</p><p><b>  }</b></p><p>  #endif //_DEBUG</p><p>

113、  /////////////////////////////////////////////////////////////////////////////</p><p>  // CMainFrame message handlers</p><p>  BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateConte

114、xt* pContext) </p><p><b>  {</b></p><p>  if (!m_wndSplitter.CreateStatic(this, 1, 3))</p><p><b>  {</b></p><p>  TRACE0("Failed to CreateS

溫馨提示

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

評論

0/150

提交評論