版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
緒論1.1選題依據和研究意義數字圖像作為當今主流的圖像技術,獲得人們廣泛的認可。數字圖像的處理手段也是多種多樣,處理方法有圖像增強,圖像復原,圖像退化,圖像重建,圖像圖像壓縮,圖像濾波,圖像描述等等。數字圖像的的處理是依據圖像灰度值作為基礎的,在此基礎上將圖像視為一個集合,對集合里全部或部分元素進行某些處理,得到需要的圖像的一個過程。在此過程中要用到高等數學,光學,計算機技術,概率論,線性代數,英語,圖形學等等學科,廣泛涉及,所以可以把數字圖像處理理解成一個大雜燴,而這一融合的最終目的,在于通過種種科學技術滿足人們所需。數字圖像處理也因其強大的通用性,便捷易操作而應用于眾多領域之中。包括工程學、信息學、計算機科學、統(tǒng)計學等當代科學發(fā)展的奠基學科,也包括了軍事,醫(yī)學,物理學,化學,生物學等工學基礎學科。不得不認識到數字圖像處理的重要性。更細致的劃分數字圖像技術層次可以劃分成圖像處理,圖像分析以及圖像理解。圖像處理可以視為為圖像分析和圖像理解的預先準備步驟,將圖像視為信號處理是數字圖像工作者們的工作準則,圖像信號是作為二維,三維或更高維的信號而存在的。與普通信號相比,其處理的特殊性在于圖像信號處理的特殊性是著重考慮圖像變換,計算機圖像是否與人們的視覺需求相符,或者與設計需求相符。數字圖像處理的目標是因需而定的。有改善圖像質量,增強圖像定位精度,提高信息傳輸效率,減少信息存儲量,建立圖像信息庫等。在航空航天中,可用于衛(wèi)星遙感和圖像識別;在軍事領域中,可用于個軍事情景中偵查,判別乃至于指揮。例如戰(zhàn)況監(jiān)控,偵查照片預讀,導彈制導。生物醫(yī)學中,可用于圖像成像,顯微鏡技術處理,例如CT技術,X光技術等;通信工程中,主要為多媒體工具間的傳輸,通過圖像壓縮與編碼,圖像轉換,完善多媒體系統(tǒng)的視覺功能;文化藝術方面,可用于含顯示屏的圖像編輯,像動畫場景制作,服裝設計,發(fā)型設計,產品設計與開發(fā)等;電子商務中,為服務帶來了便捷和安全,例如物品圖像的分類與特征提取,支付前的人臉安全識別;宏觀國家乘次這個領域中,更為了災害檢測,農業(yè)規(guī)劃,城市規(guī)劃,資源勘測等做出了重大貢獻。可以說現(xiàn)代人們的日常生活已經離不開數字圖像處理了。1.2本文的內容與安排:數字圖像處理的工具有很多,具有代表性MATLAB,opencv,opengl,Delphi,pythonPs,adobleflash等等。本文選取的工具是MATLAB,相比較而言,作為數字圖像處理的初學者使用MATLAB具有諸多優(yōu)越性。首先matlab的開發(fā)環(huán)境是基于C語言的,計算機領域的工作者,基本都有一定的c語言編程功底,所以容易上手。然后matlab作為編程類工具軟件,它強調將所需要的操作通過編程自己實現(xiàn)。這期間會對數字圖像處理技術的原理認識的更加深刻,這是初學者所希望的。同時,因為MATLAB強大的編程功能,使得用戶可以自己較大程度的發(fā)揮,追求個性化的功能,這一點上ps,flash等軟件則有了明顯的受限,它們只能執(zhí)行軟件開發(fā)者們預先定義的功能。MATLAB相比于其他軟件用來圖像處理的另一大優(yōu)勢是,它具有豐富的工具包,工具包內含有大量實用的庫函數,節(jié)省了用戶去編譯這些函數的時間。通過幫助界面,可以查看這些函數的功能,更方便使用這些函數。即使要使用的函數MATLAB里預先不存在,也可以讓用戶自定義來創(chuàng)建這些函數。為了用戶使用方便,本程序使用了圖形用戶界面(GUI)。圖形用戶界面是MATLAB里一個常用的功能,創(chuàng)建起來也極為簡單。重要的是,創(chuàng)建出來的界面較大程度上自持自定義的創(chuàng)建,所以用戶創(chuàng)造時可以考慮到使用者的需求和感受,故而一個清晰且標注分明的GUI不僅用戶自己可以使用,分享到其他使用者手里也容易被其他人使用。這樣的GUI的創(chuàng)建是極其容易的,繁冗且復雜的編程由創(chuàng)造者來完成,且如果不執(zhí)行回調查看控件的程序,是不不會出現(xiàn)在使用界面的,使用體驗比較良好。但使用這個圖形用戶界面,或者說使用MATLAB來進行數字圖像處理有一個明顯的弊端,MATLAB軟件運行速度比其他軟件有明顯的遜色,尤其是用戶定義的函數稍顯復雜,執(zhí)行的時間就會較長,這一點常常令用戶們頭疼,然而本文程序針對初學者而言,無論是運行速度,還是理解程度上都是容易實現(xiàn)的。全文內容共分為主體部分4章,第1章,緒論。淺談數字圖像處理技術的發(fā)展應用,MATLAB作為數字圖像處理工具的使用,以及GUI(圖形用戶界面)的便利性。第2章,設計基本原理。介紹了matlab環(huán)境下,GUIDE的設計原理,包括GUI的基本開發(fā),控件對象描述,數據接口等。第3章,程序總體設計。介紹了程序的總體功能,包括整體界面設計和具體設計步驟。第4章,具體操作與實現(xiàn)。細致講解每一步原理及其語言實現(xiàn)。最后,依次為結論,致謝,參考文獻,附錄。第2章設計基本原理2.1GUI基本開發(fā)在matlab的命令窗口里輸入“guide”命令,即可開始創(chuàng)建圖形用戶界面,創(chuàng)建完成后,會隨之產生兩個子文件,一個叫做M文件(M.file),另一個文件是Fig.file。這兩個文件是GUI的必不可少的文件,其中M.file用于保存回調函數或者回調程序。對于常用的或很長的程序,如果每次都從頭輸入,則非常費時間,也容易出錯.將這些程序做成M文件就方便多了只要輸入自定義的命令,就可以方便的調用,編程的效率大大提高。Fig.file文件保存了用于構建GUI的代碼,在matlab菜單里可以打開Fig.file文件,換句話說,除了M文件是在MATLAB命令行里編輯的代碼,其余的代碼都是儲存在Fig.file文件里的。產生GUI界面后,會進入圖形用戶搭建的界面,在此界面中,所有的控件都能在右上側找到,通過拖拽控件,即可在Fig里生成對應的預先設置的代碼,這段代碼可自動調用三個函數:outputFcn函數,Callback函數,openingFcn函數,每個函數包含了函數體,函數名。函數名由三部分參數組成,其中hObject是當前控件的句柄,注意和handles相區(qū)分,雖然同為句柄,但hObject只能儲存當前控件下對象的信息,可handles中的對象信息在整個界面都是有效的。這一點在C語言中相當于全局變量和局部變量的區(qū)別。eventdata為保留參數,默認值為空。Handles在前文中解釋過了,設置handles方便在不同控件下傳遞或改變對象信息。此段代碼會以綠色顯現(xiàn),和批注代碼相同的顏色。通常不需要用戶對代碼進行編輯,但需要我們在定義相關功能時,是callback函數下進行編輯輸入代碼的,以防止功能上的混亂。鼠標右鍵點擊控件,會出現(xiàn)幾個常用的選項,其中常用的DeleteFcn代表在GUI界面中清除控件,但代碼依然保留。,ButtonDownFcn為鼠標點擊時,觸發(fā)該控件下代碼,KeyPressFcn為定義敲擊按鍵時,觸發(fā)該控件下代碼。點擊callback可已查看回調函數或編輯回調函數。GUI的開發(fā)最重要的就是布局和編輯代碼這兩個步驟,布局是要讓自己建立的圖形用戶界面美觀大方,簡單實用,方便用戶使用,不會產生錯誤的理解,同時還要與功能上保持一致。編輯代碼則是要求GUI開發(fā)的核心,良好的程序要求代碼運行時沒有錯誤的基礎上,還要使得代碼簡短,否則容易造成程序運行時間過長。2.2控件對象描述在MATLAB的GUI里加入控件有兩種方法,一種是在建立一個GUI時,在它的伴隨文件M.file里面加入控件,這種方法,需要在M文件中輸入產生控件的代碼,稍顯復雜;另一種直接在可視化的界面中拖拽控件,就容易許多。該方法不需輸入產生控件的代碼,只要準確的建立一個界面布局即可??丶姆N類可分為動態(tài)控件和靜態(tài)控件兩種。動態(tài)指需要人工操作或者輸出產生變化的控件,是一個GUI必不可少的部分。而靜態(tài)控件通常不需要在已建立完成的GUI界面里進行操作,它起到的是一個提示操作的作用。需要編輯這些控件的操作,可以在GUI界面的上方或者右鍵點擊即可,操作分為常規(guī)屬性,常規(guī)信息,控制回調函數執(zhí)行。常規(guī)屬性值指設置控件的外觀顯示,包括BackgroundColor、Cdata、Visible、String。編輯常規(guī)屬性,可以定義控件顯示風格。對象的常規(guī)信息及其解釋如下:Enable屬性:指是否操作此空間后使得控件發(fā)揮作用,設為on時可以發(fā)揮,off時不可發(fā)揮;Style:控件對象類型;Tag:控件表示(用戶定義);UserData:用戶指定數據;Position:控件對象的尺寸和位置;Units:設置控件的位置及大小的單位,有關字體的屬性,如FontAngle,FontName等。控制回調函數執(zhí)行的操作及解釋如下:BusyAction:判斷是否中斷,若cancel則不執(zhí)行中斷,若queue則執(zhí)行排隊;ButtonDownFcn屬性:按鈕按下時的處理函數;CallBack屬性:查看和輸入代碼的核心屬性。
2.3GUI數據接口MATLAB的fig有多種方法來傳遞數據,比如常用的定義一個全局變量,只需在變量前加一個global即可;或者使用函數functiongui_OpeningFcn(hObjecteventdata.handles.varargin)的參數進行傳遞。數據通過varargin傳到它的函數里面的。形式為functionvarargout=subGUI(varargin),其中varagin是輸入變量,這是指傳入的數據,而varagout是輸出變量,是接收的數據,數值是否發(fā)生改變取決函數體的定義;然而在MATLAB的GUI里,最常用的還是handles函數。這里handles被稱為句柄,定義handles.a=a,guidata(hObject,handles),使得a中的數據作為傳入數據,而其他控件處若想要接收a里面的數據可在callback函數下輸入命令x=handles.a,該命令使a中數據在x中接收到了,并儲存在x中;還用其他方法像使用setappdata函數作為句柄,往里面加入數據,或者利用控件的userdata屬性來傳遞數據,等等。后者的方法不常用,可以適當了解一些,以方便閱讀不同的程序第3章程序總體設計本程序的主要功能是通過matlab的GUI界面編制一個簡易的圖形界面以讀取bmp,jpg,jpeg格式的原始圖像數據,并對它們進行分析和處理,得到所需要的效果,并把處理后的相關信息用圖像顯示出來。本軟件的主要功能有:灰度變換,空間域和頻率域濾波,彩色圖像處理,噪聲處理,表示與描述。3.1整體界面設計用MATLAB對數字圖像進行處理,是將數字圖像視為一個二維或者三維的矩陣,通常人為灰度圖像為二維矩陣,而C彩色圖像為三維矩陣,MATLAB對矩陣的運算功能表現(xiàn)良好,基于此。設計出這個GUI界面,輸入輸出的圖像處理過程中,把對圖像的處理視作了一個矩陣的計算處理,這使得初學者可以掌握圖像處理的物理意義,方便理解。3.1.1設計原則不同的人審美觀和價值理念都不同,所以也不苛求不同的人都作出一個相同界面的GUI出來。但是,畢竟作為一個以實用性為主,講究通用性和易理解性,這就要求創(chuàng)建出來的GUI必須要遵循一些原則,設計出來的GUI才有意義。(1)精簡性:精簡的含義在此包含多方面,首先要界面布局精簡,不能讓用戶感覺雜亂。然后要求操作精簡,每一步的操作都盡量花費較少的時間和精力。最后要求代碼精簡,代碼如果過于復雜,會影響軟件運行的速度,而且后期有需要更改的地方,操作起來也比較麻煩。(2)實用性:設計一個GUI一定要考慮到實用這一重要理念,為了追求實用的效果,GUI的功能上必須嚴格把控。功能操作一定要正確實現(xiàn)。比如說功能名稱和代碼一定要匹配,不能點擊一個按鈕,執(zhí)行的卻是其他或者錯誤的功能。(3)通用性:設計時還需盡量滿足人們的通常使用習慣。菜單和分欄布局的合理,使人一目了然,可以快速找到需要執(zhí)行的操作。3.1.2窗口界面的實現(xiàn)首先就是要打開MATLAB軟件,進入界面之后,可以看到默認的工作界面,主要包括四個界面:當前目錄窗口,命令窗口,命令歷史記錄窗口和工作空間窗口。這四個界面可以根據自己的習慣進行關閉,調整位置進行重新排列。當然修改后的界面窗口也是可以恢復的?;謴偷牟僮鞑襟E也是很簡單的:打開MATLAB,依次點擊:“Desktop”“DesktopLayout”“Default”,就可以恢復MATLAB初始界面窗口。啟動GUI時只需在command命令行輸入guide,注意區(qū)分大小寫,如果輸入錯誤會出現(xiàn)提示輸入guide,選擇即可。輸入后敲擊回車鍵,會彈出guide快速入門的窗口框,,彈出的窗口如圖3-1所示:圖3-1GUI啟動界面Fig3-1GUIstarttheinterface先選擇新建GUI,在彈出的guidetemplates選項下選擇BlankGUI(Default)選項,點擊確定,進入圖形用戶界面來設計GUI系統(tǒng)靜態(tài)界面。圖3-2GUIDE界面Fig3-2GUIinterface圖3-2是GUI編輯界面下的各類控件陳列。進入此界面后,即可選擇下一步的控件編輯。3.2具體設計步驟軟件的總體設計界面布局如圖3-3所示,主要分為2個區(qū)域:表示區(qū)域與操作區(qū)域。表示區(qū)域:用AXES控件來制作,顯示原圖像,以及效果圖,即處理前與處理后的圖像。操作區(qū)域:通過功能鍵實現(xiàn)對圖像的各種處理。拖動若干單選按鈕,點擊即可激活回調程序,執(zhí)行相應功能。注意區(qū)分普通按鈕和單選按鈕,他們在外形上有顯著區(qū)別。圖3-3設計圖Fig3-3designdrawing設計完成后運行的軟件界面如圖3-4,在此界面下為按鈕輸入代碼,完成GUI的創(chuàng)建。圖3-4程序成品圖Fig3-4programdiagram第4章具體操作與實現(xiàn)4.1灰度變換灰度變換是指根據需要按某種變換關系來改變原圖像中每一點像素灰度值的方法。其目的是基于實際需要的。通過實際需要的目的來確定灰度變換函數,就可以得到像素值發(fā)生改變的目的圖像。圖像的灰度變換處理可以視為數字圖像處理領域中的一種基礎性、廣泛性圖像處理方法,也是數字圖像處理軟件和顯示軟件的必不可少的部分。一個成像系統(tǒng)的灰度級輸出范圍是有限度的,灰度的最大值與最小值的比值稱為對比度。由于灰度范圍的限制,容易出現(xiàn)對比度不足的缺點,不能滿足人眼的最佳視覺需求。所以這時應用灰度變換就能很好的解決這一問題。根據灰度變換函數的斜率可分為線性和非線性灰度變換。而本文中提及的灰度變換包括兩大內容,即常用灰度變換和直方圖處理。4.1.1常用灰度變換灰度變換可理解為圖像的點運算,每個點的灰度值都要過灰度變換公式的處理,進而形成輸入和輸出的關系。形式為s=T(r),其中,灰度變換函數是T;r是未經處理的輸入的像素值;s是經過灰度變換函數處理,輸出后的像素值。灰度變換函數就是原圖像和輸出圖像對應的灰度值之間映射關系,也就是說,當輸入圖像確定,灰度變換函數也確定時,那么輸出圖像就可以得到,這一過程中,核心是要建立一個準確的灰度變換函數。用于圖像灰度變換的函數主要有以下三種:線性函數:s=a·r+b對數變換:s=clog(1+r)冪律函數:s=c程序中的亮度變換按鈕使用了imadjust函數,語法為g=imadjust(x,[li;hi],[lo;ho],gamma),只有當參數gamma取為1時對應了線性變換,輸入和輸出之間按照鍵入的參數進行線性變換;對數變換按鈕按照上述對數變換公式編程,需要注意的是需要使用到mat2gray函數,該函數的功能是將圖像矩陣的灰度值進行歸一化。歸一化指將各個不同的灰度值同一變換歸入到[0,1]之內。伽馬變換按鈕同樣也按照冪律函數公式編程,對r值進行歸一化處理。如圖4-1,4-2,4-3,4-4,分別為亮度變換,對數變換,伽馬變換以及對比度拉伸后的結果。這里的對數變換和伽馬變換都是通過設置參數來進行圖像對比度增強的處理。對數變換和冪率(伽馬)函數的公式中s指變換后的灰度值,r為變換前的灰度值,c為可調系數。γ的值可隨圖像而定,當圖像過暗時,使其值小于1,過亮時則大于1。兩者都可以提高圖像對比度。對數變換通過壓縮灰度級的顯示范圍,市低灰度級的灰度值被擴展,而高灰度級的卻被壓縮,進而可以突出顯示低灰度級的部分,達到提升對比度的目的。伽馬變換則用于增強圖像對的修正。使過暗的圖像的高灰度級被擴展,低灰度級被壓縮,達到提升對比度,過亮圖像則相反,兩者的函數形式上的差別導致對于同一副圖像的處理結果自然不同。而對比度拉伸則使用了使用intrans函數,這是一個常用函數,需要掌握。圖4-1亮度變換Fig4-1brightnesstransform圖4-2對數變換Fig4-2logarithmictransform圖4-3伽馬變換Fig4-3gammatransform圖4-4對比度拉伸Fig4-4contraststretch4.1.2直方圖處理基于灰度直方圖的灰度變換是圖像處理中的常用處理方法?;叶戎狈綀D可以看出圖像總體灰度級的排列分布,橫軸坐標為圖像的灰度值,縱軸坐標為橫軸對應值得個數或者頻率,依據需要而選定一個即可。依據灰度直方圖可以確立灰度級分布的這一特性,可以將其應用到灰度變換??梢詫χ苯訄D像的直方圖進行處理,然后將處理后的直方圖映射到一個新的輸出圖像,這就是直方圖處理的原理。MATLAB的GUI中支持圖像直方圖的處理,有各種函數來對圖像的直方圖進行顯示和處理,本程序選擇了以下幾個功能進行闡述:直方圖顯示,直方圖均衡,自適應直方圖均衡以及直方圖匹配。直方圖顯示(如圖4-5):基于當前axes1中的圖像的灰度級分布,顯示出該圖像的灰度直方圖,使用imhist函數即可。直方圖均衡(如圖4-6):直方圖均衡是通過調整圖像的直方圖,來達到使輸出圖像灰度分布均衡化,提高圖像灰度顯示范圍的方法。首先需要利用原圖像的灰度直方圖,求出灰度變換函數的形式s=T(r)=j=0knjn自適應直方圖均衡(如圖4-7):這種方法需要用到后面提到的直方圖匹配,先利用直方圖匹配對圖像中每個較小的區(qū)域進行處理,然后通過插值法(一般為雙線性插值)將相鄰的較小區(qū)域重組,這種方法可以使圖像的人工邊界和局部噪聲得到改善。本程序使用的是adapthisteq函數,語法為z=adapthisteq(x,param,val,…),param設置小區(qū)域,val為小區(qū)域參數值。直方圖匹配(如圖4-8,4-9,4-10):與直方圖均衡類似,,該方法可以生成具有特定直方圖的圖像。利用s=Tr=(L?1)0圖4-5直方圖顯示Fig4-5histogram圖4-6直方圖均衡Fig4-6histogramequalization圖4-7自適應直方圖均衡Fig4-7adaptivehistogramequalization圖4-8直方圖匹配,高斯雙峰函數Fig4-8histogrammatching圖4-9輸入圖像累計直方圖Fig4-9histogrammatching圖4-10直方圖匹配結果Fig4-10histogrammatching4.2空間和頻率域濾波圖像濾波是研究數字圖像處理領域中,不可或缺的一步。濾波始于信號與系統(tǒng)領域中,而在數字圖像處理中,是將圖像視為信號進行處理,才有了濾波這一說法。濾波操作可以強調顯示某些想要信息,弱化過濾某些不想要的信息,這一過程就好像用一個篩子在過濾一樣。圖像濾波是預處理中必備的操作,其結果好壞對后續(xù)操作影響較大,但需要注意的是通常設計的圖像濾波器,不能達到對圖像理想化的操作。另外濾波器的參數對不同圖像的設置也有所不同,一些無關信息的摻雜避免不了,只能通過科學的方法,盡可能的獲取有用的信息,同時刪掉無關信息。圖像濾波的實際意義有兩個:一方面可以提取出圖像的特征信息,另一方面可以在一定程度上消減由數字化所引入的圖像噪聲。需要遵循的濾波的要求有:不能損壞破壞圖像內特征邊界等關鍵信息;實現(xiàn)一定程度上的濾除無關量的操作。具體的圖像的濾波方法很多,按其作用范圍歸為頻率域和空間域兩大類。頻率域法的處理是先將圖像的灰度值進行某一變換,然后對變換后的新灰度值進行某些運算,運算后的結果再通過逆變換獲得濾波后的圖像。頻率域濾波是間接的濾波方法??臻g域濾波卻是直接作用于圖像灰度值的濾波方法,在濾波時,它對圖像的每一點像素值執(zhí)行運算,得到新的圖像,而不需要在變換域內進行計算。4.2.1空間域濾波空間濾波由如下步驟組成:(1)先選取圖像中心坐標(x,y);(2)對濾波器規(guī)定的點(x、y)的鄰域內的灰度值進行運算;(3)選取操作結果為該點處的濾波值;(4)對圖像中的每一點的灰度值重復該濾波操作。線性空間濾波(如圖4-11):使用一個3*3的全1數組濾波模板,使用imfilter函數濾波,經改濾波后圖像灰度值增加。拉普拉斯濾波(如圖4-12):該濾波模板拉普拉斯算子是二階導數算子,它與方向無關,具有各向同性(旋轉軸對稱),可用于邊緣檢測。選取該算子進行濾波可以檢測出邊緣點的位置,但有一個很大的弊端,該算子不會考慮到實際圖片的灰度差而引入噪聲點。常用拉普拉斯濾波模板為[010均值濾波(如圖4-13):均值指的是某一中心點(x,y)的領域內的灰度值之和,與灰度值個數之比。然后用均值代替這個中心點,即均值濾波之后的值。均值濾波會平滑圖像的灰度,使圖像的顯示灰度過渡平緩,進而圖像的灰度值相對恒定的區(qū)域會擴展,從頻域的觀點來看,低頻的區(qū)域會加強,灰度過渡陡峭的區(qū)域即高頻區(qū)域將會受到抑制。本程序使用imfilter函數,直接調用“average”模板。最小值濾波(如圖4-14):對是某一中心點(x,y)的領域內的灰度值先進行大小排序,選取排列中最小的點的灰度值,用來替代中心點,作為最小值濾波后的值本程序使用ordfilt2函數,即可完成最小值濾波,濾波后圖像的灰度值會減小。但注意該函數只能對彩色圖像進行處理。中值濾波(如圖4-15):對是某一中心點(x,y)的領域內的灰度值先進行大小排序,注意選取奇數個點,這樣可以調出序列中中間位置的點。本程序使用medfilt函數。該函數只能對彩色圖像進行處理。圖4-11線性空間濾波Fig4-11linespacefiltering圖4-12拉普拉斯濾波Fig4-12laplacefiltering圖4-13均值濾波Fig4-13themeanfiltering圖4-14最小值濾波Fig4-14minvaluefiltering圖4-15中值濾波Fig4-15themedianfiltering4.2.2頻率域濾波頻率域濾波是對圖像的每一個灰度值進行離散傅里葉變換,將灰度值由空間域映射到頻域。然后在頻域內對頻率分量進行處理,得到所需頻率特征的圖像。因為計算機處理的是離散值,所以對圖像灰度值進行快速離散傅里葉變換,即二維DFT:F(K,L)=n=0n?1傅里葉頻譜(如圖4-16):所謂的頻譜指傅里葉變換的幅值。頻譜也可稱為傅里葉譜。在頻譜圖中,可以通過分析出不同頻率的頻譜分量。Matlab顯示的頻譜圖中,灰度值不為0的部分,表示有灰度不恒定,越亮的區(qū)域其頻率分量相對來講越高。通過傅里葉變換可以觀察到不同頻率的信號分布。本程序中用fft2函數進行傅里葉變換,然后fftshift函數將變換的原點移動到頻率矩形中心,最后,通過對數變換來壓縮值的范圍。圖像頻域濾波(DFT)的基本步驟為:(1).使用函數tofloat把輸入圖像轉換為浮點圖像;(2).使用paddedsize函數求填充:P=paddedsize(size(x));%如果輸入是彩色圖像,必須要灰度化rgb2gray;(3).得到使用填充的傅里葉變化;(4)制作濾波函數H,其大小為P(1)*P(2)。如果該濾波函數已居中,使用前要令H=fftshift(H)。(5).求圖像的頻域濾波值。用圖像頻域變換與濾波函數作乘積:Z=H.*F;(6).求G的傅里葉逆變換的實部:z=real(ifft2(Z));(7).將圖像處理成原來的尺寸:z=z(1:size(x,1),1:size(x,2));(8)需要時將濾波后的圖像轉換為輸入類:x=revertclass(x);以下的三個操作都遵循以上步驟。低通高斯濾波(如圖4-17):傳遞函數為HL(u,v)=e?高斯高通濾波(如圖4-18):傳遞函數為HP=1-HL,將圖像通過高斯低通濾波后,會濾掉圖像中的低頻分量突出細節(jié)。本程序中的截止頻率D0設為原圖像寬度的0.05倍。高頻強調濾波(如圖4-19):傳遞函數為HH圖4-16傅里葉頻譜Fig4-16Fourierspectrum圖4-17高斯低通濾波Fig4-17gaussianlow-pass圖4-18高斯高通濾波Fig4-15gaussianhigh-pass圖4-19高頻強調濾波4.3彩色圖像處理4.3.1常用圖像類型及其轉化RGB圖像是最常用的彩色圖像??蓪GB圖像視為一個三維數組,其元素個數為3*M*N個,其中每個值對應一個紅,綠,藍的分量。經過紅分量,綠分量,藍分量的圖像疊加在一起,形成一幅RGB圖像。將三個分量傳送到顯示器的紅、綠、藍處理端時,會在顯示屏上形成RGB圖像。圖像灰度值的取值范圍由圖像的數據類型決定。當數據類型是double或float型,其取值范圍就是[0,1],當數據類型是uint8類,灰度取值范圍分別是[0,255],uint16類則是[0,65535]。RGB顏色標準是大多數顯示設備的通用標準。在顯示器上,內部電子槍射擊電子于紅、綠、阿光極上形成色彩的,一般電腦可顯示32位或64位顏色,轉換成顏色數可達千萬種。以下RGB圖像類型的轉換都可以下直接調用所給庫函數實現(xiàn),除RGB轉HSI外。Rgb2ind(如圖4-20):ind為索引圖像縮寫。索引圖像的組成成分有:一個整數數據矩陣和一個名為map的彩色映射矩陣。Map為mx3型,其中m是rgb圖像的顏色數,每行代表一個紅綠藍分量的疊加,每列元素分別為分量的值。索引圖像通過映射矩陣映射到RGB圖像。整數對應矩陣值為彩色映射矩陣的索引,由此確定每點的彩色。索引圖像往往具有256種顏色。Rgb2NTSC(如圖4-21):NTSC彩色制式在電視技術中廣泛使用。特點是,灰度和彩色是隔開的,所以可以理解為該種類型的圖像可分別直接表示出灰度圖像和彩色圖像。NTSC格式中,圖像的組成有:亮度(Y),色調(I),飽和度(Q)。Y:Luminance,指亮度,可理解為灰度值(Grayvalue);I:In-phase和Q:Quadrature-phase,兩者形成不含亮度的顏色,I表示從橙色到青色,Quadrature-phase從紫色到黃綠色。轉換關系矩陣為YIQRgb2YCbCr(如圖4-22):YCbCr彩色空間,用于連續(xù)的數字影像獲取和播放中。通常會用于影片中的影像連續(xù)處理,或是數字攝影系統(tǒng)中。Y(Luma):明亮度,“亮度”是與RGB分量均有關系,三者按固定的定義運算。;Cb(ChrominanceBlue):表示了RGB圖像中藍色分量與亮度值之間的差別;Cr(ChrominanceRed):反映了RGB圖像紅色分量與亮度值之間的差別。轉換關系為:Y=0.257*R+0.564*G+0.098*B+16Cb=-0.148*R-0.291*G+0.439*B+128Cr=0.439*R-0.368*G-0.071*B+128Rgb2HSV(如圖4-23):HSV用倒圓錐體中的表示色彩。H:色相(Hue)、S:飽和度(Saturation)、V:明度(Value),H與人們日常提到的顏色名字相近,在這里也用它來表示顏色名稱。S用來顏色中的白色或白光的摻雜比,白色占比越高,則說圖像的飽和度越小,給人視覺沖擊效果會減弱一些,飽和度可用0-100%之間的百分比值來表示。V則是形成三維空間物體的一個坐標軸,實際意義不明顯,但輔助H和S建立出HSI的彩色空間模型。本程序使用RGB2HSI函數,注意這不是MATLAB工具箱的函數,而需要用戶自建的M函數。圖4-26HSV模型Fig4-26HSVmodelRgb2HSI(如圖4-24):HSI彩色空間模型與上述的幾種模型,最大的差別是它充分考慮到了人的視覺系統(tǒng)對圖像的理解能力。字母縮寫分別為色調(Hue)、色飽和度(Saturation)和亮度(Intensity)HSI模型是個圓錐空間模型。該色彩模型比較復雜,可卻能從人眼角度,對亮度,飽和度,色調作出說明解釋。數字圖像處理,計算機視覺許多算法都是基于HSI中,運算和模型是獨立且分開。所以,從運算量的角度來看,從HIS中入手是最便捷的。HSI和RGB是同一圖像的色彩空間,它們之間轉換關系如下(如圖4-30):H=θ,B≤G360?θ,B>GS=1-3(R+G+B)I=13圖4-30HSI彩色空間模型Fig4-30hsimodelRgb2gray(如圖4-25):圖像灰度化也是彩色圖像處理中的常用手段。在本章的第一節(jié)提到的灰度變換中許多方法都是基于灰度圖像的。將彩色圖像轉換成灰度圖像,降維后,可以減少運算量。圖像灰度化也是預處理的步驟之一。彩色圖像有三個彩色分量,且各個分量值不同,而灰度圖像則相反,紅,綠,藍分量都相等灰灰度圖像與彩色圖像在圖像的色度和亮度等級的有相同的分布表達。RGB圖像轉為灰度圖像有多種算法,本程序中采用的RGB2gray函數,其基本原理是將每個三值分量中的各個分量用一個加權平均值來代替。表達式為:Gray=0.2989R+0.5870G+0.1140B圖4-20RGB2indFig4-20RGB2ind圖4-21RGB2NTSCFig4-21RGB2NTSC圖4-22RGB2YcbCrFig4-22RGB2YcbCr圖4-23RGB2HSVFig4-23RGB2HSV圖4-24RGB2HSIFig4-24RGB2HSI圖4-25RGB2grayFig4-25RGB2gray4.3.2常用彩色圖像處理比起灰度圖像,彩色圖像在數字圖像處理中更為常見,有時是把彩色圖像轉為灰度圖像處理,然后再變換為彩色圖像,也有時是直接對彩色圖像進行處理。彩色圖像的處理與灰度圖像類似,所不同的是彩色圖像的分量至少為三個,因此在與灰度圖像的灰度值處理上有所差別。常用的彩色圖像處理可從三種角度入手:(1)彩色變換:彩色映射是從一個點的灰度值映射到另一點的灰度值,空間坐標不參與運算;(2)彩色分量的空間:在各自的彩色分量空間處理,然后將處理后的分量空間進行疊加;(3)彩色向量的處理:將彩色分量視為一個三維向量,對這個彩色向量處理,及同時對三個彩色分量進行處理?;叶葓D像中經常使用平滑,銳化,在彩色圖像中也很適用。彩色圖像的線性平滑和銳化通常采用以下步驟:(1)提取分量:X(R、G、B)三個彩色分量。fR=X(:,:,1);fG=X(:,:,2);fB=X(:,:,3);(2)單獨對相應的顏色分量進行某種濾波處理。fR_filtered=imfilter(fR,w,'replicate');fG_filtered=imfilter(fG,w,'replicate');fB_filtered=imfilter(fB,w,'replicate');也可以對(R、G、B)這三個圖像分量一起處理,不用進行第三步。(3)利用cat函數將分量疊加,得到目的圖像。fc_filtered=cat(3,fR_filtered,fG_filtered,fB_filtered)。彩色圖像平滑(如圖4-32):本程序中先將RGB圖像轉換HSI圖像,然后使用一個均值濾波器來平滑HSI的圖像的I分量,濾波器模本為了可以足以模糊圖像,同時保留足夠的信息,所以選擇25*25的大小。濾波后的I分量與H和S分量經cat函數疊加成新的HSI圖像,最后將HSI圖像轉換成RGB圖像即可完成彩色圖像的平滑。彩色圖像銳化(如圖4-33):本程序中為了起到銳化圖像的效果選用拉普拉斯作為濾波模板,大小為5*5,。先將圖像轉化為浮點圖像,然后直接將RGB圖像經過拉普拉斯濾波,用原圖與濾波后的圖像求差即可得到銳化后的圖像。圖4-31彩色圖像平滑F(xiàn)ig4-31colorimagesmoothiing圖4-32彩色圖像銳化Fig4-32colorimagesharpening4.4圖像分割圖像分割(Segmentation)指的是將一幅圖像按某種方法分成若干個小部分,通常是以灰度值作為劃分基礎的,從而提取出目標區(qū)域進行下一步的處理過程。從圖像處理的階段想要跨越到圖像分析的階段,就不得不經歷圖像分割這個處理步驟。通過圖像分割,使圖像的表現(xiàn)形式更加簡化,符合處理需求。圖像分割用來尋找圖像中的物體的邊界最為方便。方法上,通過是對圖像中的每個灰度值進行遍歷,將符合相同規(guī)定性質的灰度值的區(qū)域進行標記,標記后的標簽相同的灰度在視覺特性上具有共同點。圖像分割可以提取出圖像上子區(qū)域的集合,或是圖像的輪廓線的集合。利用提取出具有相同視覺特征可以進行圖像分析?,F(xiàn)有的圖像分割方法主要分以下幾類:基于閾值的分割、基于區(qū)域的處理、梯度和距離變換分水嶺算法、邊緣分割、小波變換等。4.4.1基于邊緣的分割方法使用邊緣檢測來進行圖像分割是最常見的圖像分割方法之一,確定出邊緣像素的位置點,將這些邊界點用線連在一起構成邊界線。邊緣是指圖像中屬于不同區(qū)域的像素點,但在圖像的空間位置上是相鄰的,串線后構成的集合。它反映了圖像中發(fā)生突變的區(qū)域,可以使紋理,灰度,后者顏色產生突變。求出圖像邊緣可以獲取兩個重要信息:幅度和方向。邊緣線方向上的灰度變化平緩,但其垂直方向的灰度變化較大。依此,可以根據圖像灰度值的一階和二階導數來求出邊緣,表示出邊緣的特性。邊緣檢測往往都是基于灰度值進行的,特性是邊緣灰度值的變化會呈現(xiàn)出階躍型和屋頂型,其中階躍型代表兩側會有不同的灰度值,屋頂型代表灰度值增加或減少的的趨勢轉折點。一階導數的極值和與二階導數的零點通過情況可以共同檢測出邊緣,實際操作可用模板進行卷積實現(xiàn)。斜線(+45度)檢測(如圖4-35):線檢測模板(如圖4-33)在一幅圖像上移動,經過所有灰度值的檢測后,會對+45度方向的斜線產生較強的響應,輸出這些響應強烈的點模板中的所有的系數算術和為0,代表恒定灰度區(qū)域中不會對該模板響應。本程序中先定義出濾波模板,然后將圖像轉化為浮點圖像后,再用定義后的模板濾波,即可得到檢測圖像,檢測后的圖像,越亮的點表示響應越強烈。2-1-1-12-1-1-12圖4-33+45度斜線檢測模板Fig4-33+45degreeslashdetectionmodelsobel邊緣檢測(如圖4-36):該檢測方法也是用模板進行檢測邊緣。Sobel算子的幾何意義決定了可用它來進行邊緣檢測,在數字圖像處理中,用離散型的差分算子來代替連續(xù)的微分運算。經sobel模板運算后可求出圖像灰度函數的梯度,Sobel算子從集數學意義上說屬于一階導數算子,在該算子的系數中,可以發(fā)現(xiàn),它還具有加權平均運算的性質,所以它對平滑噪聲還有一定的作用。本程序使用的橫向和縱向的兩個3x3的矩陣模板。通過與圖像的灰度值進行卷積運算,能夠求出對應方向上的梯度值。對圖像上每點使用公式G=Gx2+圖4-34sobel橫向和縱向模板Fig4-34Sobelmodelcanny邊緣檢測(如圖4-37):edge函數中,canny的使用次數最多。檢測過程如下:(1)先將一幅圖像進行平滑;(2)對圖像中每一點的灰度值使用[gx2+g圖4-35+45度線檢測Fig4-35+45degreeslashdetection圖4-36sobel邊緣檢測Fig4-36sobeledgedetection圖4-37canny邊緣檢測Fig4-37cannyedgedetection4.4.2基于閾值的圖像分割基于閾值的分割從物理意義上來講,是最容易理解的的圖像分割方法。該方法只需選定一個或若干固定的灰度值,充當圖像灰度值劃分區(qū)域的界限,然后將圖像中的每個點的灰度值進行分類,按照預先定義的方法對每一類進行處理,即可得到分割后的圖像。閾值分割的定義涉及到了繁雜的集合表示,在此不多做敘述。對于閾值分割來講,最重要的就是閾值的選定。閾值大小的選取決定了分割后圖像的好壞程度。正確的選取閾值可以依據先驗知識,也可通過算法,自動選擇,使用直方圖進行閾值選取是一個合適的工具。一般來說,不同圖像的閾值往往不同。閾值分割法的種類劃分也是依據了閾值的選取進行分類的,大致可分為全局閾值處理法,局部閾值處理法,多閾值處理法,可變閾值處理法等。根據需要和圖像的復雜程度不同,選擇合適的閾值分割法即可。全局閾值分割(如圖4-38):該方法的閾值是通過實驗得來的,在確定這個灰度值的過程中,是通過迭代算法實現(xiàn)??深A先用初始化圖像的閾值,用圖像的灰度平均值T來代替。分割后形成的兩個區(qū)域,再分別用均值代替各自區(qū)域的閾值,如此反復迭代,當結果差小于之前定義好的一個T1時,確定出最終的閾值T,本程序T1設定為0.5,使用im2bw函數進行圖像分割。求迭代時的循環(huán)語句按照c語言語法編程即可。Ostu閾值分割(如圖4-39):該方法的閾值屬于自適應閾值。按照灰度值的分布,可把圖像分為目標和非目標兩個區(qū)域。區(qū)域間的類方差與兩部分差別正相關。因此可以通過求最大化類方差來確定閾值。但需要注意的是,在求最佳測度的過程中,要使用到圖像的灰度直方圖。這是灰度直方圖作為求閾值工具的一個體現(xiàn)。本程序用的graythresh函數,語法為[T,S]=graythresh(X),其中T為輸出閾值,S為可分性測度,X為輸入圖像。局部閾值分割(如圖4-40):該方法可用于解決全局閾值分割時,因為光照明暗不均造成的分割困難的問題。這種方法不同于全局閾值處理,它使用到圖像中一點鄰域的局部均值和標準差。求局部標準差的函數可用stdfilt。求出局部均值mxy和σxy后,令局部閾值為T1=aσxy圖4-40全局閾值分割Fig4-40globalthresholdsegmentation圖4-41OSTU閾值分割Fig4-41ostuthresholdsegmentation圖4-42局部閾值分割Fig4-42localthresholdsegmentation4.4.3基于區(qū)域和分水嶺變換的圖像分割上文提到的兩種兩種分割原理都是基于灰度值而劃分圖像,將圖像分為不同的區(qū)域。這里用到的圖像分割方法是不再去關注圖像的灰度值,而是直接在區(qū)域上進行操作。區(qū)域的通俗理解是將一幅圖像中的某些點,用一個集合圈起來,形成一個區(qū)域,劃分區(qū)域時需要根據相似性準則。但在數字圖像的處理中,區(qū)域的定義要滿足幾條性質:一幅圖像中的每一個點都必須被劃分到一個區(qū)域中;劃分后形成的一個區(qū)域內,所有點都滿足連通性,可以是4連接或8連接;各個區(qū)域不能重疊,在集合的觀點來看,就是集合不能相交;不同區(qū)域的定義屬性不同。滿足以上幾點,這樣的區(qū)域處理起來才有意義。區(qū)域分割在工程中應用較多,主要處理方法有區(qū)域生長,區(qū)域分離和聚合等。本文最后提到的一種圖像分割方法是基于分水嶺變換的圖像分割。在地理學中一種稱為分水嶺的地勢可以用來比作一幅圖像的灰度值。類似海拔分布圖一樣,將圖像中的灰度值大小看做該點所具有的空間高度。一個鄰域內的極小值為中心,和在周邊灰度值較低的點相當于地理上的集水盆地,集水盆最外層的一圈邊界就被稱為分水嶺。而使用這種方法來進行圖像分割,就是將一幅圖像中的分水嶺檢測出來,作為區(qū)域分割的邊界。如果圖像的邊緣灰度與周圍灰度差值不明顯,使用分水嶺變換進行圖像分割是一個較好的選擇。但選用此法最好對圖像進行預處理,使用濾波器平滑一下噪聲,防止過分割現(xiàn)象的產生。梯度分水嶺分割(如圖4-43):梯度在這里起的作用是通過梯度的幅度,來求出分水嶺線的所在位置。對一幅圖像求梯度幅度,可以根據結果圖中灰度值較高的位置來確定邊緣所在,灰度值較低的部分則不是邊緣。本程序用sobel模板對圖像進行預處理,可以有效平滑噪聲。利用上文提到的公式求出梯度幅度圖像,再幅度圖輸入到watershed函數中,即可得到分割后的圖像,為了區(qū)域邊界線更明顯,本程序將分水嶺線的灰度設置為0,使其在圖像中顯示出白色。距離變換分水嶺分割(如圖4-44):使用距離變換來找出分水嶺線也是常用的圖像分割方法。該算法先將圖像二值化,使得所有點的灰度值都用0或1來表示。距離變換的做法是將二值圖像中所有點的灰度值,都用一個距離值替代,這個距離是從該點到最近的灰度值為0點的距離。距離變換的結果圖中灰度值為0的點就是分水嶺線。本程序用im2bw函數和graythresh函數將圖像轉換為二值圖像。然后對圖像求反,求反圖像輸入到bwdist函數計算距離變換,最后用watershed函數求的分割后的圖像,將分水嶺線的灰度設置為0,使其在圖像中顯示出白色。圖4-43梯度分水嶺分割Fig4-43gradientwatershedsegmentation圖4-44距離變換分水嶺分割Fig4-44distancetransformwatershedsegmentation4.5噪聲分析噪聲一詞源于聲學中的觀點,在聲學中定義凡是妨礙到人們正常生活的聲音信號都用噪聲來形容。將其引申到數字圖像中,妨礙人們對圖像信息獲取的圖像信號都可以用噪聲來形容。數字圖像中的噪聲信號是二維的,其產生途徑多樣,產生后的種類也多樣,為了能更好的獲取有用的圖像信息,使得圖像的噪聲研究很有必要。圖像在產生,傳輸,到顯示設備上進行顯示,不論從圖像內部,還是從圖像外部,都有噪聲的成因。依據噪聲的研究區(qū)域可分為空間域噪聲和頻率域噪聲,從噪聲產生途徑分為乘性和家性噪聲,有依據噪聲的統(tǒng)計學種類可分為高斯噪聲,泊松噪聲,椒鹽噪聲等等,本節(jié)探討一些常見噪聲種類和其去除方法。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年ktv酒水供應合同模板(2篇)
- 2025包死合同試修改
- 2025總價承包和單價承包合同的區(qū)別優(yōu)缺點
- 2025福建工程學院儀器設備維修合同
- 建筑裝飾行業(yè)前臺接待工作總結
- 廣東省深圳市龍崗區(qū)2024-2025學年高三上學期期末質量監(jiān)測語文試卷
- 2025-2030全球高電壓云母紙行業(yè)調研及趨勢分析報告
- 2025-2030全球高頻 (HF) 軍事通信行業(yè)調研及趨勢分析報告
- 2025年全球及中國POE封裝膠膜行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球碳捕獲與利用 (CCU)行業(yè)調研及趨勢分析報告
- 山東省濱州市濱城區(qū)2024-2025學年九年級上學期期末考試化學試題
- 期末試卷:安徽省宣城市2021-2022學年七年級上學期期末歷史試題(解析版)
- 2024年湖南省公務員錄用考試《行測》真題及答案解析
- 2024新版(北京版)三年級英語上冊單詞帶音標
- 第21課 活動課 從考古發(fā)現(xiàn)看中華文明的起源 教學課件
- 部編版《道德與法治》四年級下冊教材解讀與分析文檔
- PP、PVC-風管制作安裝施工作業(yè)指導書
- 蘇教版五年級上冊脫式計算300道及答案
- 遼寧省沈陽市鐵西區(qū)2025屆初三最后一次模擬(I卷)數學試題含解析
- 幼教培訓課件:《幼兒園如何有效組織幼兒戶外自主游戲》
- 2024-2030年中國輕型運動飛機行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
評論
0/150
提交評論