版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 數(shù)字圖像處理是一門新興技術,隨著計算機硬件的發(fā)展,數(shù)字圖像的實時處理已經成為可能,由于數(shù)字圖像處理的各種算法的出現(xiàn),使得其處理速度越來越快,能更好的為人們服務。數(shù)字圖像處理是一種通過計算機采用一定的算法對圖形圖像進行處理的技術。數(shù)字圖像處理技術已經在各個領域上都有了比較廣泛的應用。圖像處理的信息量很大,對處理速度的要求也
2、比較高。MATLAB強大的運算和圖形展示功能,使圖像處理變得更加的簡單和直觀。本文介紹了MATLAB 語言的特點,基于MATLAB的數(shù)字圖像處理環(huán)境,介紹了如何利用MATLAB及其圖像處理工具箱進行數(shù)字圖像處理,并通過一些例子來說明利用MATLAB圖像處理工具箱進行圖像處理的方法。主要論述了利用MATLAB實現(xiàn)圖像增強、二值圖像分析等圖像處理。</p><p> 關鍵詞:MATLAB,數(shù)字圖像處理,圖像增強,二
3、值圖像</p><p><b> Abstract</b></p><p> Digital image processing is an emerging technology, with the development of computer hardware, real-time digital image processing has become po
4、ssible due to digital image processing algorithms to appear, making it faster and faster processing speed, better for People services .Digital image processing is used by some algorithms computer graphics image processin
5、g technology. Digital image processing technology has been in various areas have a relatively wide range of applications. Image processin</p><p> Key words:MATLAB, digital image processing,
6、image enhancement,</p><p> 2-numeric image</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p><b> 1 緒論1</b></p>
7、<p> 1.1 課題研究目的及意義1</p><p> 1.2 國內外研究現(xiàn)狀2</p><p> 1.3 本課題研究工作與結構安排3</p><p> 2 數(shù)字圖像增強處理方法簡介5</p><p> 2.1 基本概念6</p><p> 2.2 圖像增強處理方法7</p&g
8、t;<p> 3 MATLAB基本知識介紹7</p><p> 3.1 MATLAB的概述7</p><p> 3.2 MATLAB產生的歷史背景7</p><p> 3.3MATLAB語言的特點........................................................................
9、...</p><p> 3.4MATLAB 在圖像處理中的應用...........................................................</p><p><b> 4 圖像增強9</b></p><p> 4.1 空域變換增強9</p><p> 4.1.1增強對
10、比度</p><p> 4.1.2 圖像求反</p><p> 4.2 空域濾波增強9</p><p> 4.2.1 基本原理</p><p> 4.2.2 線性平滑濾波器</p><p> 4.2.3 非線性平滑濾波器</p><p> 4.2.4 線性銳化濾波器</p&g
11、t;<p><b> 4.3 頻域增強</b></p><p> 4.3.1 基本原理</p><p> 4.3.2 低通濾波</p><p> 4.3.3 高通濾波</p><p><b> 5 二值圖像分析</b></p><p><b>
12、; 5.1 引言</b></p><p> 5.2 二值形態(tài)學的基本運算</p><p><b> 5.2.1 膨脹</b></p><p><b> 5.2.2 腐蝕</b></p><p> 5.3 二值分析進行圖像處理綜合應用</p><p>
13、5.3.1 噪聲濾除</p><p> 5.3.2 邊界提取</p><p><b> 6 總結與展望</b></p><p><b> 6.1 總結</b></p><p><b> 6.2 展望</b></p><p><b>
14、致 謝14</b></p><p><b> 參考文獻15</b></p><p><b> 附 錄16</b></p><p><b> 1 緒論</b></p><p> 本章簡略介紹課題的研究目的及意義,該課題國內外研究現(xiàn)狀以及論文內
15、容安排等。</p><p> 1.1 課題研究目的及意義</p><p> 數(shù)字圖像處理(Digital Image Processing),就是利用數(shù)字計算機或者其他數(shù)字硬件,對從圖像信息轉換而得到的電信號進行某些數(shù)學運算,以提高圖像的實用性。例如從衛(wèi)星圖片中提取目標物的特征參數(shù),三維立體斷層圖像的重建等??偟膩碚f,數(shù)字圖像處理包括點運算、幾何處理、圖像增強、圖像復原、圖像形態(tài)學處理
16、、圖像編碼、圖像重建、模式識別等。</p><p> 由于計算機處理能力的不斷增強,數(shù)字圖像處理學科在飛速發(fā)展的同時,也越來越廣泛地向許多其他學科快速交叉滲透,使得圖像作為信息獲取以及信息的利用等方面也變得越來越重要。目前數(shù)字圖像處理的應用越來越廣泛,已經滲透到工業(yè)、醫(yī)療保健、航空航天、軍事等各個領域,在國民經濟中發(fā)揮越來越大的作用。</p><p> MathWorks公司推出的MA
17、TLAB軟件是學習數(shù)理知識的好幫手。應用MATLAB友好的界面和豐富、實用、高效的指令及模塊,可以使人較快地認識、理解圖像處理的相關概念,逐步掌握圖像信號處理的基本方法,進而能夠解決相關的工程和科研中的問題。</p><p> 圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著人類活動范圍的不斷擴大,圖像處理的應用領域也將隨之不斷擴大,已在國家安全、經濟發(fā)展、日
18、常生活中充當越來越重要的角色,對國計民生的作用不可低估。</p><p> 1.2 國內外研究現(xiàn)狀</p><p> 數(shù)字圖像處理最早出現(xiàn)于20世紀50年代,當時的電子計算機已經發(fā)展到一定水平,人們開始利用計算機來處理圖形和圖像信息。數(shù)字圖像處理作為一門學科大約形成于20世紀60年代初期。</p><p> 早期的圖像處理的目的是改善圖像的質量,它以人為對象,
19、以改善人的視覺效果為目的。圖像處理中,輸入的是質量低的圖像,輸出的是改善質量后的圖像,常用的圖像處理方法有圖像增強、復原、編碼、壓縮等。首次獲得實際成功應用的是美國噴氣推進實驗室(JPL)。他們對航天探測器徘徊者7號在1964年發(fā)回的幾千張月球照片使用了圖像處理技術,如幾何校正、灰度變換、去除噪聲等方法進行處理,并考慮了太陽位置和月球環(huán)境的影響,由計算機成功地繪制出月球表面地圖,獲得了巨大的成功。隨后又對探測飛船發(fā)回的近十萬張照片進行更
20、為復雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類登月創(chuàng)舉奠定了堅實的基礎,也推動了數(shù)字圖像處理這門學科的誕生。在以后的宇航空間技術,如對火星、土星等星球的探測研究中,數(shù)字圖像處理技術都發(fā)揮了巨大的作用。數(shù)字圖像處理取得的另一個巨大成就是在醫(yī)學上獲得的成果。1972年英國EMI公司工程師Housfield發(fā)明了用于頭顱診斷的X射線計算機斷層攝影裝置,也就是我們通常所說的CT(Computer Tomo
21、graph)。CT的基本方法是根據(jù)人的頭部截面的投影,經計算機處理來</p><p> 與此同時,圖像處理技術在許多應用領域受到廣泛重視并取得了重大的開拓性成就,屬于這些領域的有航空航天、生物醫(yī)學工程、工業(yè)檢測、機器人視覺、公安司法、軍事制導、文化藝術等,使圖像處理成為一門引人注目、前景遠大的新型學科。隨著圖像處理技術的深入發(fā)展,從70年代中期開始,隨著計算機技術和人工智能、思維科學研究的迅速發(fā)展,數(shù)字圖像處理
22、向更高、更深層次發(fā)展。人們已開始研究如何用計算機系統(tǒng)解釋圖像,實現(xiàn)類似人類視覺系統(tǒng)理解外部世界,這被稱為圖像理解或計算機視覺。很多國家,特別是發(fā)達國家投入更多的人力、物力到這項研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的視覺計算理論,這個理論成為計算機視覺領域其后十多年的主導思想。圖像理解雖然在理論方法研究上已取得不小的進展,但它本身是一個比較難的研究領域,存在不少困難,因人類本身對自己的視覺過程還
23、了解甚少,因此計算機視覺是一個有待人們進一步探索新的領域。</p><p> 1.3 本課題研究工作與結構安排</p><p> 本文主要以MATLAB為工具來實現(xiàn)數(shù)字圖像的處理。全文共分6章,結構安排如下:</p><p> 第一章 緒論,介紹了課題研究目的及意義和國內外研究現(xiàn)狀。</p><p> 第二章 介紹了數(shù)字圖像增強處理的
24、基本簡介。</p><p> 第三章 介紹了Matlab基本知識的介紹。</p><p> 第四章 介紹了圖像增強的原理及利用MATLAB 來實現(xiàn)圖像增強。</p><p> 第五章 介紹了二值圖像操作原理及利用MATLAB實現(xiàn)二值圖像操作。</p><p> 第六章 總結與展望。</p><p> 2 數(shù)字
25、圖像增強處理基本簡介</p><p><b> 2.1 基本概念</b></p><p> 圖像增強是一類基本的圖像處理技術,其目的是對圖像進行加工,以得到對具體應用來說視覺效果更好、更有用的圖像。這里的好和有用要因具體的應用目的和要求而異,并且所需的具體增強技術也可不同。</p><p> 目前常用的增強技術根據(jù)其處理所進行的空間不同,
26、可分為基于圖像域的方法和基于變化域的方法。第一類,直接在圖像所在的空間進行處理,也就是在像素組成的空間里直接對像素進行操作;第二類,在圖像的變化域對圖像進行間接處理。</p><p> 2.2 圖像增強處理的方法簡介</p><p> 2.1.1空間變換增強</p><p> 空間變換增強又包含了增強對比度和圖像求反。</p><p>
27、 增強對比度實際是增強原圖像的各部分的反差。實際中往往是通過原圖中某兩個灰度值之間的動態(tài)范圍來實現(xiàn)的。</p><p> 對圖像求反是將原來的灰度值翻轉,簡單的說就是使黑變白,使白變黑。</p><p> 普通的黑白底片和照片就是這樣的關系。具體的變換就是將圖像中每個像素的灰度值根據(jù)變換曲線進行映射。</p><p> 2.1.2空域濾波增強</p&g
28、t;<p> 空域濾波可分為線形濾波和非線形濾波兩類。</p><p> 線形濾波器的設計?;趯Ω盗⑷~變換的分析。</p><p> 非線形空域濾波器則一般直接對鄰域進行操作。</p><p> 另外各種濾波器根據(jù)功能又主要分成平滑濾波和銳化濾波。平滑可用低通來實現(xiàn),銳化可用高通來實現(xiàn)</p><p> 平滑濾波器:
29、它能減弱或消除傅立葉空間的高頻分量,但不影響在低頻分量。因為高頻分量對應圖像中的區(qū)域邊緣等灰度值具有較大較快變化的部分,濾波器將這些分量濾去可使圖像平滑。</p><p> 銳化濾波器:它能減弱或消除傅立葉空間的高頻分量</p><p><b> 2.1.3頻域增強</b></p><p> 頻域增強的基本原理是:卷積理論是頻域技術的基礎
30、。設函數(shù)f(x,y)與線性位不變算子h(x,y)的卷積結果是g(x,y),即g(x,y)=h(x,y)*f(x,y)</p><p> 那么根據(jù)卷積定理在頻域有:</p><p> G(x,y)=H(u,v)F(u,v)</p><p> 其中G(x,y)、 H(u,v)、F(u,v)分別是g(x,y)、h(x,y)、f(x,y)的傅立葉變換。</p&g
31、t;<p> 頻域增強的兩個關鍵步驟:</p><p> ?。?)將圖像從空域轉換到頻域所需的變換及將圖像從頻域空間轉換回空域所需的變換;</p><p> (2)在頻域空間對圖像進行增強加工操作。</p><p> 常用的頻域增強方法有低通濾波和高通濾波。</p><p> 低通濾波也稱低頻濾波器。圖像的能量大部分集中
32、在幅度譜的低頻和中頻度,而圖像的邊緣和噪聲對應于高頻部分。因此能降低高頻成分幅度的濾波器就能減弱噪聲的影響。</p><p> 高通濾波也稱高頻濾波器,它的頻值在0頻率處單位為1,隨著頻率的增長,傳遞函數(shù)的值逐漸增加;當頻率增加到一定值之后傳遞函數(shù)的值通常又回到0值或者降低到某個大于1的值。在前一種情況下,高頻增強濾波器實際上是依照能夠帶通濾波器,只不過規(guī)定0頻率處的增益為單位1。</p><
33、;p> 實際應用中,為了減少圖像中面積大且緩慢變化的成分的對比度,有時讓0頻率處的增益小于單位1更合適。如果傳遞函數(shù)通過原點,則可以稱為laplacian濾波器。</p><p> 3 MATLAB基本知識介紹</p><p> 3.1 MATLAB的概述</p><p> MATLAB 是MATrix LABoratory(“矩陣實驗室”)的縮寫,
34、是由美國MathWorks 公司開發(fā)的集數(shù)值計算、符號計算和圖形可視化三大基本功能于一體的,功能強大、操作簡單的語言。是國際公認的優(yōu)秀數(shù)學應用軟件之一。</p><p> MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多。</p><p> MATLAB包括擁有數(shù)百個內部函數(shù)的
35、主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能.學科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類.</p><p> 開放性使MATLAB廣受用戶歡迎.除內部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫
36、程序構造新的專用工具包.</p><p> 3.2 MATLAB產生的歷史背景</p><p> 在70年代中期,Cleve Moler博士和其同事在美國國家科學基金的資助下開發(fā)了調用EISPACK和LINPACK的FORTRAN子程序庫.EISPACK是特征值求解的FOETRAN程序庫,LINPACK是解線性方程的程序庫.在當時,這兩個程序庫代表矩陣運算的最高水平.</p>
37、;<p> 到70年代后期,身為美國New Mexico大學計算機系系主任的Cleve Moler,在給學生講授線性代數(shù)課程時,想教學生使用EISPACK和LINPACK程序庫,但他發(fā)現(xiàn)學生用FORTRAN編寫接口程序很費時間,于是他開始自己動手,利用業(yè)余時間為學生編寫EISPACK和LINPACK的接口程序.Cleve Moler給這個接口程序取名為MATLAB,該名為矩陣(matrix)和實驗室(labotatory
38、)兩個英文單詞的前三個字母的組合.在以后的數(shù)年里,MATLAB在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳.</p><p> 1983年春天,Cleve Moler到Standford大學講學,MATLAB深深地吸引了工程師John Little.John Little敏銳地覺察到MATLAB在工程領域的廣闊前景.同年,他和Cleve Moler,Steve Bangert一起,用C語言
39、開發(fā)了第二代專業(yè)版.這一代的MATLAB語言同時具備了數(shù)值計算和數(shù)據(jù)圖示化的功能.</p><p> 1984年,Cleve Moler和John Little成立了Math Works公司,正式把MATLAB推向市場,并繼續(xù)進行MATLAB的研究和開發(fā).</p><p> 在當今30多個數(shù)學類科技應用軟件中,就軟件數(shù)學處理的原始內核而言,可分為兩大類.一類是數(shù)值計算型軟件,如MATL
40、AB,Xmath,Gauss等,這類軟件長于數(shù)值計算,對處理大批數(shù)據(jù)效率高;另一類是數(shù)學分析型軟件,Mathematica,Maple等,這類軟件以符號計算見長,能給出解析解和任意精確解,其缺點是處理大量數(shù)據(jù)時效率較低.MathWorks公司順應多功能需求之潮流,在其卓越數(shù)值計算和圖示能力的基礎上,又率先在專業(yè)水平上開拓了其符號計算,文字處理,可視化建模和實時控制能力,開發(fā)了適合多學科,多部門要求的新一代科技應用軟件MATLAB.經過多
41、年的國際競爭,MATLAB以經占據(jù)了數(shù)值軟件市場的主導地位.</p><p> 在MATLAB進入市場前,國際上的許多軟件包都是直接以FORTRANC語言等編程語言開發(fā)的。這種軟件的缺點是使用面窄,接口簡陋,程序結構不開放以及沒有標準的基庫,很難適應各學科的最新發(fā)展,因而很難推廣。MATLAB的出現(xiàn),為各國科學家開發(fā)學科軟件提供了新的基礎。在MATLAB問世不久的80年代中期,原先控制領域里的一些軟件包紛紛被淘
42、汰或在MATLAB上重建。</p><p> 時至今日,經過MathWorks公司的不斷完善,MATLAB已經發(fā)展成為適合多學科,多種工作平臺的功能強大大大型軟件。在國外,MATLAB已經經受了多年考驗。在歐美等高校,MATLAB已經成為線性代數(shù),自動控制理論,數(shù)理統(tǒng)計,數(shù)字信號處理,時間序列分析,動態(tài)系統(tǒng)仿真等高級課程的基本教學工具;成為攻讀學位的大學生,碩士生,博士生必須掌握的基本技能。在設計研究單位和工業(yè)
43、部門,MATLAB被廣泛用于科學研究和解決各種具體問題。在國內,特別是工程界,MATLAB一定會盛行起來??梢哉f,無論你從事工程方面的哪個學科,都能在MATLAB里找到合適的功能。</p><p> 3.3 MATLAB語言的特點</p><p> 一種語言之所以能如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點,正如同F(xiàn)ORTRAN和C等高級語言使人們擺脫了需
44、要直接對計算機硬件資源進行操作一樣,被稱作為第四代計算機語言的MATLAB,利用其豐富的函數(shù)資源,使編程人員從繁瑣的程序代碼中解放出來。MATLAB最突出的特點就是簡潔。MATLAB用更直觀的,符合人們思維習慣的代碼,代替了C和FORTRAN語言的冗長代碼。MATLAB給用戶帶來的是最直觀,最簡潔的程序開發(fā)環(huán)境。以下簡單介紹一下MATLAB的主要特點。</p><p> ?。?)語言簡潔緊湊,使用方便靈活,庫函數(shù)
45、極其豐富。MATLAB程序書寫形式自由,利用起豐富的庫函數(shù)避開繁雜的子程序編程任務,壓縮了一切不必要的編程工作。由于庫函數(shù)都由本領域的專家編寫,用戶不必擔心函數(shù)的可靠性??梢哉f,用MATLAB進行科技開發(fā)是站在專家的肩膀上。</p><p> ?。?)運算符豐富。由于MATLAB是用C語言編寫的,MATLAB提供了和C語言幾乎一樣多的運算符,靈活使用MATLAB的運算符將使程序變得極為簡短。 </p>
46、;<p> ?。?)MATLAB既具有結構化的控制語句(如for循環(huán),while循環(huán),break語句和if語句),又有面向對象編程的特性。</p><p> ?。?)程序限制不嚴格,程序設計自由度大。例如,在MATLAB里,用戶無需對矩陣預定義就可使用。</p><p> (5)程序的可移植性很好,基本上不做修改就可以在各種型號的計算機和操作系統(tǒng)上運行。</p>
47、<p> (6)MATLAB的圖形功能強大。在FORTRAN和C語言里,繪圖都很不容易,但在MATLAB里,數(shù)據(jù)的可視化非常簡單。MATLAB還具有較強的編輯圖形界面的能力。</p><p> ?。?)MATLAB的缺點是,它和其他高級程序相比,程序的執(zhí)行速度較慢。由于MATLAB的程序不用編譯等預處理,也不生成可執(zhí)行文件,程序為解釋執(zhí)行,所以速度較慢。</p><p>
48、?。?)功能強大的工具箱是MATLAB的另一特色。MATLAB包含兩個部分:核心部分和各種可選的工具箱。核心部分中有數(shù)百個核心內部函數(shù)。其工具箱又分為兩類:功能性工具箱和學科性工具箱。功能性工具箱主要用來擴充其符號計算功能,圖示建模仿真功能,文字處理功能以及與硬件實時交互功能。功能性工具箱用于多種學科。而學科性工具箱是專業(yè)性比較強的,如control,toolbox, signl processing toolbox,</p>
49、;<p> commumnication toolbox等。這些工具箱都是由該領域內學術水平很高的專家編寫的,所以用戶無需編寫自己學科范圍內的基礎程序,而直接進行高、精、尖的研究。</p><p> 源程序的開放性。開放性也許是MATLAB最受人們歡迎的特點。除內部函數(shù)以外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶可通過對源文件的修改以及加入自己的文件構成新的工具箱。&l
50、t;/p><p> 3.4 MATLAB在圖像處理中的應用</p><p> 圖像處理工具包是由一系列支持圖像處理操作的函數(shù)組成的。所支持的圖像處理操作有:圖像的幾何操作、鄰域和區(qū)域操作、圖像變換、圖像恢復與增強、線性濾波和濾波器設計、變換(DCT變換等) 、圖像分析和統(tǒng)計、二值圖像操作等。下面就MATLAB 在圖像處理中各方面的應用分別進行介紹。</p><p>
51、 ?。?) 圖像文件格式的讀寫和顯示。MATLAB 提供了圖像文件讀入函數(shù) imread(),用來讀取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式圖像文;圖像寫出函數(shù) imwrite() ,還有圖像顯示函數(shù) image()、imshow()等等。</p><p> ?。?) 圖像處理的基本運算。MATLAB 提供了圖像的和、差等線性運算 ,以及卷積、相關、濾波等非線性算。例如,
52、conv2(I,J)實現(xiàn)了I,J兩幅圖像的卷積。</p><p> ?。?) 圖像變換。MATLAB 提供了一維和二維離散傅立葉變換(DFT) 、快速傅立葉變換(FFT) 、離散余弦變換 (DCT) 及其反變換函數(shù),以及連續(xù)小波變換(CWT)、離散小波變換(DWT)及其反變換。</p><p> ?。?) 圖像的分析和增強。針對圖像的統(tǒng)計計算MATLAB 提供了校正、直方圖均衡、中值濾波、
53、對比度調整、自適應濾波等對圖像進行的處理。</p><p> (5) 圖像的數(shù)學形態(tài)學處理。針對二值圖像,MATLAB 提供了數(shù)學形態(tài)學運算函數(shù);腐蝕(Erode)、膨脹(Dilate)算子,以及在此基礎上的開 (Open)、閉(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等豐富的數(shù)學形態(tài)學運算。</p><p> 以上所提到的 MATLAB在圖像中的應用都是
54、由相應的MATLAB函數(shù)來實現(xiàn)的,使用時,只需按照函數(shù)的調用語法正確輸入?yún)?shù)即可。具體的用法可參考MATLAB豐富的幫助文檔。圖像邊緣對圖像識別和計算機分析十分有用,在MATLAB中,函數(shù) edge()用于灰度圖像邊緣的提取,它支持六種不同的邊緣提取方法,即Sobel方法、Prewitt 方法、Robert 方法,Laplacian2Gaussian方法、過零點方法和Canny方法。</p><p><b&
55、gt; 4 圖像增強</b></p><p> 圖像增強是一類基本的圖像處理技術,其目的是對圖像進行加工,以得到對具體應用來說視覺效果更好、更有用的圖像。這里的好和有用要因具體的應用目的和要求而異,并且所需的具體增強技術也可不同。</p><p> 目前常用的增強技術根據(jù)其處理所進行的空間不同,可分為基于圖像域的方法和基于變化域的方法。第一類,直接在圖像所在的空間進行處理
56、,也就是在像素組成的空間里直接對像素進行操作;第二類,在圖像的變化域對圖像進行間接處理。</p><p> 空域增強方法可表示為:g(x,y)=EH[f(x,y)]</p><p> 其中f(x,y)和g(x,y)分別為增強前后的圖像,EH代表增強操作。</p><p> 4.1 空域變換增強</p><p> 4.1.1 增強對比度
57、</p><p> 增強對比度實際是增強原圖像的各部分的反差。實際中往往是通過原圖中某兩個灰度值之間的動態(tài)范圍來實現(xiàn)的(如圖4-1)。</p><p> 圖4-1 增強對比度</p><p> 在圖4.1.1中可以看出,通過變換可以使原圖的較高的和較低的灰度值的動態(tài)范圍減小了,而原圖在二者之間的動態(tài)范圍增加了,從而其范圍的對比度增加了。</p>
58、<p> MATLAB代碼所示:</p><p> X1=imread('pout.tif');</p><p> figure,imshow(X1)</p><p> f0=0;g0=0;</p><p> f1=70;g1=30;</p><p> f2=180;g2=230;
59、</p><p> f3=255;g3=255;</p><p> r1=(g1-g0)/(f1-f0);</p><p> b1=g0-r1*f0;</p><p> r2=(g2-g1)/(f2-f1);</p><p> b2=g1-r2*f1;</p><p> r3=(g3
60、-g2)/(f3-f2);</p><p> b3=g2-r3*f2;</p><p> [m,n]=size(X1);</p><p> X2=double(X1);</p><p><b> for i=1:m</b></p><p><b> for j=1:n</
61、b></p><p> f=X2(i,j);</p><p><b> g(i,j)=0;</b></p><p> if(f>=0)&(f<=f1)</p><p> g(i,j)=r1*f+b1;</p><p> elseif (f>=f1)&
62、;(f<=f2)</p><p> g(i,j)=r2*f+b2;</p><p> elseif (f>=f2)&(f<=f3)</p><p> g(i,j)=r3*f+b3;</p><p><b> end</b></p><p><b> e
63、nd</b></p><p><b> end</b></p><p> figure,imshow(mat2gray(g))</p><p> 圖像處理圖示(如圖4-2和圖4-3)</p><p> 圖4-2 原圖 圖4-3增強對比度所得圖像</
64、p><p> 4.1.2 圖像求反</p><p> 對圖像求反是將原來的灰度值翻轉,簡單的說就是使黑變白,使白變黑。</p><p> 普通的黑白底片和照片就是這樣的關系。具體的變換就是將圖像中每個像素的灰度值根據(jù)變換曲線進行映射。</p><p> MATLAB代碼所示:</p><p> X1=imread
65、('pout.tif');</p><p><b> f1=200;</b></p><p><b> g1=256;</b></p><p><b> k=g1/f1;</b></p><p> [m,n]=size(X1);</p>&
66、lt;p> X2=double(X1);</p><p> for i=1:m </p><p><b> for j=1:n</b></p><p> f=X2(i,j);</p><p><b> g(i,j)=0;</b></p><p> if(f&
67、gt;=0)&(f<=f1)</p><p> g(i,j)=g1-k*f;</p><p><b> else</b></p><p><b> g(i,j)=0;</b></p><p><b> end</b></p><p>
68、;<b> end</b></p><p><b> end</b></p><p> figure,imshow(mat2gray(g))</p><p> 圖像處理圖如圖4-4所示:</p><p> 圖4-4 圖像求反后</p><p> 4.2 空域濾波增
69、強</p><p> 一般情況下,像素的鄰域比該像素要大,也就是說這個像素的鄰域中除了本身以外還包括其他像素。在這種情況下,g(x,y)在(x,y)位置處的值不僅取決于f(x,y)在以(x,y)為中心的鄰域內所有的像素的值。如仍以s和t分別表示f(x,y)在(x,y)位置處的灰度值,并以n(s)代表f(x,y)在(x,y)鄰域內像素的灰度值,則 t=EA[s,n(s)]</p><p>
70、 為在鄰域內實現(xiàn)增強操作,??衫媚0迮c圖像進行卷積。每個模板實際上是一個二維數(shù)組,其中各個元素的取值定了模板的功能,這種模板操作也稱為空域濾波。</p><p> 4.2.1 基本原理</p><p> 空域濾波可分為線形濾波和非線形濾波兩類。</p><p> 線形濾波器的設計常基于對傅立葉變換的分析。</p><p> 非線形
71、空域濾波器則一般直接對鄰域進行操作。</p><p> 另外各種濾波器根據(jù)功能又主要分成平滑濾波和銳化濾波。平滑可用低通來實現(xiàn),銳化可用高通來實現(xiàn)</p><p> 平滑濾波器:它能減弱或消除傅立葉空間的高頻分量,但不影響在低頻分量。因為高頻分量對應圖像中的區(qū)域邊緣等灰度值具有較大較快變化的部分,濾波器將這些分量濾去可使圖像平滑。</p><p> 銳化濾波器
72、:它能減弱或消除傅立葉空間的高頻分量</p><p> 空域濾波器都是利用模板卷積,主要步驟如下:</p><p> ?。?)將模板在圖中漫游,并將模板中心與圖中某個像素位置重合;</p><p> ?。?)將模板上的系數(shù)與模板下對應的像素相乘;</p><p> ?。?)將所有的乘積相加;</p><p> ?。?
73、)將和(模板的輸出響應)賦給圖中對應的模板中心位置像素。</p><p> 下面分別介紹在MATLAB中如何應用平滑和銳化濾波器。</p><p> 4.2.2 線性平滑濾波器</p><p> 線性低通濾波器是最常用的線性平滑濾波器。這種濾波器的所有系數(shù)都是正的。對3*3的模板來說,最簡單的操作是取所有系數(shù)都為1。為保證輸出圖像仍在原來的灰度范圍內,在計算R
74、后要將其除以9再進行賦值。這種方法稱為鄰域平均法。</p><p> MATLAB實現(xiàn)均值過濾器的代碼所示:</p><p> I=imread('saturn.tif');</p><p> J=imnoise(I,'salt & pepper',0.02);</p><p><b>
75、 imshow(I)</b></p><p> figure,imshow(J)</p><p> K1=filter2(fspecial('average',3),J)/255;</p><p> figure,imshow(K1)</p><p> title('3*3的均值濾波器')
76、</p><p> 原圖像,加入椒鹽噪聲的圖像和均值濾波的圖像分別如圖4-5、圖4-6和圖4-7所示。</p><p> 圖4-5 原圖 圖4-6加入椒鹽噪聲圖像</p><p> 圖4-7 3*3的均值濾波器處理結果</p><p> 4.2.3 非線性平滑濾波器</p>
77、<p> 中值濾波器是最常用的非線性平滑濾波器。它是一種臨域運算,類似于卷積,但計算的不是加權求和,而是把鄰域中的像素按灰度級進行排序,然后選擇改組的中間值作為輸出的像素值。具體步驟:</p><p> ?。?)將模板在圖像中漫游,并將模板中心和圖像某個像素的位置重合;</p><p> ?。?)讀取模板下對應像素的灰度值;</p><p> ?。?
78、)將這些灰度值從小到大排成一列;</p><p> ?。?)找出這些值排在中間的一個;</p><p> ?。?)將這個中間值賦給對應模板中心位置的像素。</p><p> MATLAB實現(xiàn)中值濾波器代碼所示:</p><p> I=imread('saturn.tif');</p><p> J
79、=imnoise(I,'salt & pepper',0.02);</p><p> K1=medfilt2(J,[3,3]);</p><p> figure,imshow(K1)</p><p> 中值濾波的結果如圖4-8所示。</p><p> 圖4-8 中值濾波結果</p><p&
80、gt; 4.2.4 線性銳化濾波器</p><p> 線性高通濾波器是最常用的線性銳化濾波器。這種濾波器的中心系數(shù)都是正的,而周圍的系數(shù)都是負的。對3*3的模板來說,典型的系數(shù)取值是:</p><p> [-1 –1 –1;-1 8 –1;-1 –1 -1]</p><p> 事實上這是拉普拉斯算子,所有的系數(shù)之和為0。當這樣的模板放在圖像中灰度值是常數(shù)或
81、變化很小的區(qū)域時,其輸出為0或很小。這個濾波器將原來的圖像中的零頻域分量去除了,也就是將輸出的圖像的平均值變?yōu)?,這樣就會有一部分像素的灰度值小于0。在圖像處理中我們一般只考慮正的灰度值,所以還有將輸出圖像的灰度值范圍通過尺度變回到所要求的范圍。</p><p> MATLAB代碼所示:</p><p> I=imread('saturn.tif');</p>
82、;<p> m=fspecial('laplacian')</p><p> I1=filter2(m,I)</p><p> h=fspecial('unsharp',0.5);</p><p> I2=filter2(h,I)/255;</p><p> subplot(1,2,1)
83、;</p><p> imshow(I1);</p><p> title('高通濾波laplacian算子')</p><p> subplot(1,2,2);</p><p> imshow(I2);</p><p> title('高通濾波unsharp')</p&
84、gt;<p> 處理結果如圖4-9所示:</p><p> 圖4-9空域高通濾波</p><p><b> 4.3 頻域增強</b></p><p> 4.3.1 基本原理</p><p> 卷積理論是頻域技術的基礎。設函數(shù)f(x,y)與線性位不變算子h(x,y)的卷積結果是g(x,y),即g(x
85、,y)=h(x,y)*f(x,y)</p><p> 那么根據(jù)卷積定理在頻域有:</p><p> G(x,y)=H(u,v)F(u,v)</p><p> 其中G(x,y)、 H(u,v)、F(u,v)分別是g(x,y)、h(x,y)、f(x,y)的傅立葉變換。</p><p> 頻域增強的主要步驟是:</p><
86、;p> ?。?)技術所需增強圖的傅立葉變換;</p><p> ?。?)將其與一個(根據(jù)需要設計的)轉移函數(shù)相乘;</p><p> ?。?)再將結果進行傅立葉反變換以得到增強的圖。</p><p> 頻域增強的兩個關鍵步驟:</p><p> ?。?)將圖像從空域轉換到頻域所需的變換及將圖像從頻域空間轉換回空域所需的變換;</
87、p><p> ?。?)在頻域空間對圖像進行增強加工操作。</p><p> 常用的頻域增強方法有低通濾波和高通濾波。以下分別介紹在MATLAB中如何實現(xiàn)。</p><p> 4.3.2 低通濾波</p><p> 圖像的能量大部分集中在幅度譜的低頻和中頻度,而圖像的邊緣和噪聲對應于高頻部分。因此能降低高頻成分幅度的濾波器就能減弱噪聲的影響。
88、</p><p> Butterworth 低通濾波器是一種物理上可以實現(xiàn)的低通濾波器,n階,截斷頻率為d0的Butterworth低通濾波器的轉移函數(shù)為:</p><p><b> H(u,v)=</b></p><p> 用MATLAB實現(xiàn)Butterworth低通濾波器的代碼所示:</p><p> I1=
89、imread('Saturn.tif');</p><p> figure,imshow(I1)</p><p> I2=imnoise(I1,'salt');</p><p> figure,imshow(I2)</p><p> f=double(I2);</p><p>
90、 g=fft2(f);</p><p> g=fftshift(g);</p><p> [N1,N2]=size(g);</p><p><b> n=2;</b></p><p><b> d0=50;</b></p><p> n1=fix(N1/2);<
91、;/p><p> n2=fix(N2/2);</p><p> for i=1:N1</p><p> for j=1:N2</p><p> d=sqrt((i-n1)^2+(j-n2)^2);</p><p> h=1/(1+0.414*(d/d0)^(2*n));</p><p>
92、 result(i,j)=h*g(i,j);</p><p><b> end</b></p><p><b> end</b></p><p> result=ifftshift(result);</p><p> X2=ifft2(result);</p><p>
93、; X3=uint8(real(X2));</p><p> figure,imshow(X3)</p><p> 原圖和處理結果如圖4-10和圖4-11所示</p><p> 圖4-10 加噪 圖4-11 去噪</p><p> 4.3.3 高通濾波</p>&l
94、t;p> 高通濾波也稱高頻濾波器,它的頻值在0頻率處單位為1,隨著頻率的增長,傳遞函數(shù)的值逐漸增加;當頻率增加到一定值之后傳遞函數(shù)的值通常又回到0值或者降低到某個大于1的值。在前一種情況下,高頻增強濾波器實際上是依照能夠帶通濾波器,只不過規(guī)定0頻率處的增益為單位1。</p><p> 實際應用中,為了減少圖像中面積大且緩慢變化的成分的對比度,有時讓0頻率處的增益小于單位1更合適。如果傳遞函數(shù)通過原點,則
95、可以稱為laplacian濾波器。</p><p> n階截斷頻率為d0的Butterworth高通濾波器的轉移函數(shù)為:</p><p><b> H(u,v)=</b></p><p> MATLAB實現(xiàn)Butterworth高通濾波器代碼所示:</p><p> I1=imread('blood1.t
96、if');</p><p> figure,imshow(I1)</p><p> f=double(I1);</p><p> g=fft2(f);</p><p> g=fftshift(g);</p><p> [N1,N2]=size(g);</p><p><b
97、> n=2;</b></p><p><b> d0=5;</b></p><p> n1=fix(N1/2);</p><p> n2=fix(N2/2);</p><p> for i=1:N1</p><p> for j=1:N2</p><
98、;p> d=sqrt((i-n1)^2+(j-n2)^2);</p><p><b> if d==0</b></p><p><b> h=0;</b></p><p><b> else</b></p><p> h=1/(1+(d0/d)^(2*n));&
99、lt;/p><p><b> end</b></p><p> result(i,j)=h*g(i,j);</p><p><b> end</b></p><p><b> end</b></p><p> result=ifftshift(re
100、sult);</p><p> X2=ifft2(result);</p><p> X3=uint8(real(X2));</p><p> figure,imshow(X3)</p><p> 原圖和處理結果如圖4-12和4-13所示。</p><p> 圖4-12原圖
101、 圖4-13高通濾波</p><p><b> 5 二值圖像分析</b></p><p> 二值圖像中所有的像素只能從0和1這兩個值中取,因此在MATLAB中,二值圖像用一個由0和1組成的二維矩陣表示。這兩個可取的值分別對應于關閉和打開,關閉表征該像素處于背景,而打開表征該像素處于前景。以這種方式來操作圖像可以更容易識別出圖像的結構特征。</
102、p><p><b> 5.1 引言</b></p><p> 二值圖像操作只返回與二值圖像的形式或結構有關的信息,如果希望對其他類型的圖像進行同樣的操作,則首先要將其轉換為二進制的圖像格式,可以通過調用MATLAB提供的im2bw()來實現(xiàn),方法如下:</p><p> I=imread('cameraman.tif');&l
103、t;/p><p> figure,imshow(I)</p><p> J=im2bw(I);</p><p> figure,imshow(J)</p><p> title('二值化處理')</p><p> 原圖和二值化的結果分別如圖5-1和圖5-2所示</p><p&g
104、t; 圖5-1原圖 圖5-2 二值化的結果</p><p> 5.2 二值形態(tài)學的基本運算</p><p> 數(shù)學形態(tài)學的基礎是集合運算,我們把二值圖像A看作是二維坐標點的集合,包含圖像里為1的點,B通常是一個小的集合,作用類似于模板。</p><p> 膨脹(Dilation)運算A⊕B </p>
105、;<p> 腐蝕(Erosion)運算AB </p><p><b> 開(Open)運算</b></p><p> 閉(Close)運算</p><p><b> 5.2.1 膨脹</b></p><p> 膨脹的算符為,A用B來膨脹寫作AB,這里先將A和B看作是所有取值為
106、1的像素點的集合。其定義為:AB=}</p><p> B膨脹A的過程是:先對B做關于中心像素的映射,再將其映像平移x,換句話說,用B來膨脹A得到的集是B平移后與A至少有一個非零元素相交時B的中心像素的位置的集合。 </p><p> 在MATLAB中運用dilate()函數(shù)來實現(xiàn)膨脹操作。</p><p> 此外,MATLA
107、B中還提供了預定義的形態(tài)函數(shù)bwmorph。</p><p> MATLAB的代碼:</p><p> I=imread('cameraman.tif');</p><p> J=im2bw(I);</p><p> BW1=bwmorph(J,'dilate');</p><p&g
108、t; subplot(1,2,1);</p><p> subimage(J);</p><p> title('二值處理的圖像');</p><p> subplot(1,2,2);</p><p> subimage(BW1);</p><p> title('使用bwmorph
109、函數(shù)膨脹')</p><p> 圖像處理結果如圖5-3所示</p><p><b> 圖5-3膨脹處理后</b></p><p><b> 5.2.2 腐蝕</b></p><p> 腐蝕的算符為,A用B來腐蝕寫作AB。其定義為</p><p> 用B來腐蝕
110、A得到集合是B完全包括在A中時B的中心像素位置的集合。MATLAB中用erode函數(shù)來實現(xiàn)腐蝕操作。</p><p> MATLAB代碼如下:</p><p> I=imread('cameraman.tif');</p><p> J=im2bw(I);</p><p> SE=eye(5);</p>
111、<p> BW1=erode(J,SE);</p><p> subplot(1,2,1);</p><p> subimage(J);</p><p> title('二值處理的圖像');</p><p> subplot(1,2,2);</p><p> subimage(BW
112、1);</p><p> title('使用erode函數(shù)腐蝕')</p><p> 圖像處理結果如圖5-4所示</p><p><b> 圖5-4腐蝕處理后</b></p><p> 5.3 二值分析進行圖像處理綜合應用</p><p> 5.3.1 噪聲濾除</
113、p><p> 將開啟和閉合結合起來可構成噪聲濾除器。開啟就是先對圖像進行腐蝕后膨脹其結果。閉合就是先對圖像進行膨脹后腐蝕其結果。</p><p> 開啟和閉合這兩種運算都可以除去比結構元素小特定圖像細節(jié),同時保證不產生全局幾何失真。開啟運算可以把結構元素小的突刺濾掉,切斷細長搭接而起到分離作用。閉合運算可以把比結構元素小的缺口或孔填充上,搭接短的間斷而起到連通的作用。</p>
114、<p> 將開啟和閉合結合起來可構成形態(tài)學噪聲濾除器。開啟結果將背景上的噪聲去除了;再進行閉合則將噪聲去掉。</p><p><b> MATLAB代碼:</b></p><p> I1=imread('saturn.tif');</p><p> I2=im2bw(I1);</p><p
115、> I2=double(I2);</p><p> I3=imnoise(I2,'salt & pepper');</p><p> I4=bwmorph(I3,'open');</p><p> I5=bwmorph(I4,'close');</p><p> subp
116、lot(2,2,1);</p><p> subimage(I2);</p><p> title('二值處理的圖像');</p><p> subplot(2,2,2);</p><p> subimage(I3);</p><p> title('加入椒鹽噪聲的圖像')&l
117、t;/p><p> subplot(2,2,3);</p><p> subimage(I4);</p><p> title('開啟操作所得的圖像');</p><p> subplot(2,2,4);</p><p> subimage(I5);</p><p> t
118、itle('再關閉操作所得的圖像')</p><p> 圖像處理如圖5-5所示</p><p> 圖5-5 噪聲濾除處理</p><p> 5.3.2 邊界提取</p><p> 二值圖像中,所謂的對像就是值為1的連接在一起的像素的集合。例如以下的代表了一個簡單的3*3的方形對像</p><p>
119、; 0 0 0 0 0 </p><p> 1 1 1 0 0</p><p> 1 1 1 0 0 </p><p> 1 1 1 0 0</p><p> 0 0 0 0 0 </p><p> 有4-連接和8-連接邊沿</p><p>
120、 對于大多數(shù)操作來說,二值圖像中對像的識別依賴于確定圖像中相鄰像素是否連接的約定方式。</p><p> 邊界提取實際上就是掏空內部點:如果原圖中有一點為黑,且它的8個相鄰點都是黑色時(此時該點是內部點),則將該點刪除。</p><p> 在MATLAB中提供了bwperim(I,n)函數(shù)來提取二值圖像中對像的邊界像素。其中n表示采用何種連接,默認為4-連接。</p>&
121、lt;p> MATLAB代碼所示:</p><p> I1=imread('blood1.tif');</p><p> I2=im2bw(I1);</p><p> I3=bwperim(I2);</p><p> subplot(1,2,1);</p><p> subimage(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——基于matlab數(shù)字圖像增強處理
- 基于matlab數(shù)字圖像增強處理-畢業(yè)論文
- 基于matlab的數(shù)字圖像處理畢業(yè)論文
- 基于matlab數(shù)字圖像增強處理
- 基于matlab數(shù)字圖像增強處理
- 基于matlab的數(shù)字圖像處理畢業(yè)論文
- 基于matlab的數(shù)字圖像預處理畢業(yè)論文
- 畢業(yè)論文---數(shù)字圖像處理
- 數(shù)字圖像處理畢業(yè)論文
- 數(shù)字圖像處理畢業(yè)論文
- 數(shù)字圖像處理畢業(yè)論文
- 數(shù)字圖像處理課程設計--基于matlab的數(shù)字圖像處理
- 基于matlab的數(shù)字圖像與邊緣檢測畢業(yè)論文
- 基于matlab的數(shù)字圖像與邊緣檢測畢業(yè)論文
- 畢業(yè)設計----基于matlab的數(shù)字圖像處理
- 畢業(yè)論文數(shù)字圖像處理論文
- 數(shù)字圖像處理課程設計--基于matlab的數(shù)字圖像處理
- 基于matlab圖像增強技術畢業(yè)論文
- 基于matlab數(shù)字圖像處理平臺設計
- 基于bayer的數(shù)字圖像還原及matlab實現(xiàn)畢業(yè)論文
評論
0/150
提交評論