版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 數(shù)字信號課程設(shè)計</b></p><p> 題目:基于Matlab的數(shù)字圖像處理 </p><p> 學院: 信息工程學院</p><p> 專業(yè): 通信工程 </p><p><b> 班級:</b></p><p><
2、;b> 姓名: </b></p><p><b> 學號: </b></p><p> 指導教師: </p><p> 2012年 11 月 31 日</p><p><b> 目 錄</b></p><p><b&g
3、t; 摘 要II</b></p><p><b> 第1章 緒論1</b></p><p> 第2章 數(shù)字圖像處理系統(tǒng)設(shè)計2</p><p><b> 2.1設(shè)計概括2</b></p><p><b> 2.2文件3</b></p>
4、;<p><b> 2.2.1打開3</b></p><p><b> 2.2.2保存3</b></p><p><b> 2.2.3退出3</b></p><p><b> 2.3編輯3</b></p><p><b&
5、gt; 2.3.1灰度3</b></p><p><b> 2.3.2亮度5</b></p><p><b> 2.3.3截圖7</b></p><p><b> 2.3.4縮放7</b></p><p><b> 2.4旋轉(zhuǎn)9<
6、/b></p><p> 2.4.1上下翻轉(zhuǎn)9</p><p> 2.4.2左右翻轉(zhuǎn)10</p><p> 2.4.3任意角度翻轉(zhuǎn)11</p><p><b> 2.5噪聲12</b></p><p><b> 2.6濾波13</b></p&g
7、t;<p> 2.6.1中值濾波13</p><p> 2.6.2自適應(yīng)濾波13</p><p> 2.6.3 平滑濾波14</p><p> 2.7直方圖統(tǒng)計15</p><p> 2.8頻譜分析16</p><p> 2.8.1、頻譜圖16</p><p&g
8、t; 2.8.2通過高通濾波器17</p><p> 2.8.3通過低通濾波器18</p><p> 2.9灰度圖像處理19</p><p> 2.9.1二值圖像19</p><p> 2.9.2創(chuàng)建索引圖像20</p><p> 2.10顏色模型轉(zhuǎn)換21</p><p>
9、; 2.11操作界面設(shè)計22</p><p> 第3章 程序調(diào)試及結(jié)果分析23</p><p><b> 總 結(jié)24</b></p><p><b> 參考文獻25</b></p><p><b> 摘 要</b></p><p>
10、 數(shù)字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計算機對其進行處理的過程。在數(shù)字圖像處理過程中,輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像,常用的圖像處理方法有圖像增強、復(fù)原、編碼、壓縮等。</p><p> MATLAB既是一種直觀、高效的計算機語言,同時又是一個科學計算平臺。它為數(shù)據(jù)分析和數(shù)據(jù)可視化、算法和應(yīng)用程序開發(fā)提供了最核
11、心的數(shù)學和高級圖形工具。根據(jù)它提供的500多個數(shù)學和工程函數(shù),工程技術(shù)人員和科學工作者可以在它的集成環(huán)境中交互或編程以完成各自的計算。 本文利用MATLAB圖像處理工具箱,根據(jù)需求進行程序的功能分析和界面設(shè)計,實現(xiàn)數(shù)字圖像的灰度處理、亮度處理、截圖、縮放、旋轉(zhuǎn)、噪聲、濾波、直方圖統(tǒng)計、頻譜分析、顏色模型轉(zhuǎn)換等。</p><p> 關(guān)鍵詞:數(shù)字圖像處理,MATLAB,計算機語言,工程函數(shù)。</p&g
12、t;<p><b> 英文摘要</b></p><p> The digital image processing (Digital Image Processing) and referred to as the computer image processing, which refers to the image signal is converted into a
13、digital signal and using the process of the computer to be processed. In digital image processing, the input is a low-quality image, the output image after the improvement of quality, the conventional image processing me
14、thod with an image enhancement, restoration, coding, compression, etc.. MATLAB both an intuitive and efficient compu</p><p><b> 第1章 緒論</b></p><p> 數(shù)字圖像處理,即用計算機對圖像進行處理。與人類對視覺機
15、理研究的歷史相比,它是一門相對年輕的學科。但在其短短的歷史中,它卻以程度不同的成功被廣泛應(yīng)用于幾乎所有與圖像有關(guān)的領(lǐng)域口數(shù)字圖像處理技術(shù)在20多年的時間里,迅速地發(fā)展成為一門獨立的有強大生命力的學科。</p><p> 數(shù)字圖像處理的手段有光學方法和電子學(數(shù)字)方法。前者已經(jīng)有很長的一發(fā)展歷史,從簡單的光學濾波到現(xiàn)在的激光全息技術(shù)。光學處理理論已經(jīng)日趨完善,而且處理速度快,信息容量大,分辨率高,處理經(jīng)濟。但是
16、光學處理圖像精度不夠高,穩(wěn)定性能差,操作不方便。最早的圖像處理是上世紀六七十年代,隨著電子技術(shù)和計算機技術(shù)的不斷提高和普及,數(shù)字圖像處理進入高速發(fā)展時期。數(shù)字圖像處理就是利用數(shù)字計算機或者其它數(shù)字硬件,對從圖像信息轉(zhuǎn)換而得的電信號進行某些數(shù)學運算,以提高圖像的實用性。例如從衛(wèi)星圖片中提取目標物的特征參數(shù),三維立體斷層圖像的重建等等。數(shù)字圖像處理技術(shù)處理精度比較高,而且還可以通過改進處理軟件來優(yōu)化處理效果。但是,由于數(shù)字圖像處理的數(shù)據(jù)量非
17、常龐大,因此處理速度相對較慢,這就限制了數(shù)字圖像處理的發(fā)展。隨著計算機技術(shù)的飛速發(fā)展,計算機的運算速度大大提高,這將大大促進數(shù)字圖像處理技術(shù)的發(fā)展。</p><p> 數(shù)字圖像處理技術(shù)研究內(nèi)容很多,主要包括以下幾個方面:圖像變換、圖像編碼壓縮、圖像增強和復(fù)原、圖像分割、圖像描述圖像識別等。數(shù)字圖像處理具有再現(xiàn)性好、處理精度高、適用面廣、靈活性高、成本低等優(yōu)點。在圖像研究領(lǐng)域中圖像特征的研究是一重要的研究方向。人
18、們觀察圖像時主要通過觀察圖像紋理、亮度、幾何等關(guān)鍵特征,從而來識別理解圖像。實際上通過圖像特征的提取匹配不僅用于圖像識別,還可以用于圖像分割、配準、拼接等各個方面。對圖像特征的研究已經(jīng)取得了很多研究成果,隨著人們探知世界的深入,對圖像特征的研究將更加重要。</p><p> 第2章 數(shù)字圖像處理系統(tǒng)設(shè)計</p><p><b> 2.1設(shè)計概括</b></
19、p><p> 由于要實現(xiàn)的功能并不是很多,所以在排版的過程中,把各個功能都安排在目錄欄上,整體安排如下圖所示: </p><p><b> 圖2.1 設(shè)計概括</b></p><p> 同時在調(diào)節(jié)亮度時,雖然可以同對話框的形式輸入調(diào)節(jié)的比例系數(shù),但是這樣效果不好了,不容易調(diào)節(jié),因此這里考慮用滾動條來調(diào)節(jié)。</p><p&g
20、t;<b> 2.2文件</b></p><p><b> 2.2.1打開</b></p><p> 為了更方便的使用,所以在設(shè)計的時候,通過對話框的形式來選擇文件,選擇uigetfile函數(shù)來實現(xiàn),uigetfile函數(shù)顯示一個打開文件對話框,該對話框自動列出當前路徑下的目錄和文件,由于這個GUI程序的操作對象是圖像文件,所以設(shè)置這里的缺
21、省后綴名為“.bmp”。</p><p> Uigetfile函數(shù)的調(diào)用格式為[name,path]=yigetfile(…), 在按下對話框中的執(zhí)行按鈕“打開”后,返回選擇的文件名和路徑,分別保存到“name”和“path”中。如果按下取消按鈕或是發(fā)生錯誤,則返回值是0。 根據(jù)返回值的情況,如果是0,則彈出提示錯誤的對話框,否則,通過imread函數(shù)讀出圖像數(shù)據(jù),把圖像數(shù)據(jù)賦值給全局變量handles.img
22、。</p><p><b> 2.2.2保存</b></p><p> 同樣也通過對話框的形式來保存圖像數(shù)據(jù),通過uigetfile函數(shù)選擇文件名和路徑,用getimage(gca)取出坐標2變換后的圖像數(shù)據(jù)保存到變量i,最后用imwrite函數(shù),把數(shù)據(jù)i存到指定的文件。</p><p><b> 2.2.3退出</b&g
23、t;</p><p> 退出比較簡單,程序如下所示:</p><p><b> clc;</b></p><p> close all;</p><p> close(gcf); </p><p><b> 2.3編輯</b></p><
24、p><b> 2.3.1灰度</b></p><p> 將RGB圖像轉(zhuǎn)化成為灰度圖像的過程成為圖像的灰度化處理。彩色圖像中的每個像素的顏色有R、G、B三個分量決定,而每個分量有255中值可取,這樣一個像素點可以有1600多萬(255×255×255)的顏色的變化范圍。而灰度圖像是R、G、B三個分量相同的一種特殊的彩色圖像,其一個像素點的變化范圍為255種,所以在
25、數(shù)字圖像處理種一般先將各種格式的圖像轉(zhuǎn)變成灰度圖像以使后續(xù)的圖像的計算量變得少一些。灰度圖像的描述與彩色圖像一樣仍然反映了整幅圖像的整體和局部的色度和亮度等級的分布和特征。圖像的灰度化處理可用兩種方法來實現(xiàn)。</p><p> 第一種方法使求出每個像素點的R、G、B三個分量的平均值,然后將這個平均值賦予給這個像素的三個分量。</p><p> 第二種方法是根據(jù)YUV的顏色空間中,Y的分
26、量的物理意義是點的亮度,由該值反映亮度等級,根據(jù)RGB和YUV顏色空間的變化關(guān)系可建立亮度Y與R、G、B三個顏色分量的對應(yīng),以這個亮度值表達圖像的灰度值,公式為:</p><p><b> (2-1)</b></p><p> 由于RGB圖像是三維圖像,所以圖像數(shù)據(jù)是一個三維數(shù)組,為了顯示灰度圖像,把三維圖像降為二維,可以只取其中的二維數(shù)據(jù),實現(xiàn)方法程序為:<
27、;/p><p> y=(handles.img(:,:,1)); %當然也可以選擇(:,:,2) 或(:,:,3)</p><p> imshow(y);</p><p> 但是這樣的話,根據(jù)程序所選的不同,圖像數(shù)據(jù)也不同,顯示也就不一樣。</p><p> 另一種方法就是,運用rgb2gray函數(shù)實現(xiàn)彩色圖像到灰度圖像的轉(zhuǎn)換。程
28、序為:</p><p> y=rgb2gray(handles.img); </p><p> imshow(y);</p><p> 這個程序只能用于RGB圖像轉(zhuǎn)換灰度圖像,當原始圖像本來就是灰度圖像時,運行該程序時就會出錯,但是使用者在使用時有時并不知道這些,為了使該程序更加完善,應(yīng)該在使用者原先圖像時灰度圖像時使用該功能時,應(yīng)該要顯示提示類信息
29、。所以在開始時應(yīng)該要有一個RGB圖像或是灰度圖像的判斷過程。完整的程序如下: </p><p> if isrgb(handles.img) </p><p> y=rgb2gray(handles.img); </p><p> imshow(y);</p><p><b> else<
30、;/b></p><p> msgbox('這已經(jīng)是灰度圖像','轉(zhuǎn)換失敗');</p><p><b> end</b></p><p> 如果原圖是RGB,執(zhí)行該操作的結(jié)果如下圖:</p><p> 圖2.3 灰度處理對比圖</p><p><
31、;b> 2.3.2亮度</b></p><p> 亮度是指顏色的相對明暗程度,通常使用從0%(黑色)至100%(白色)的百分比來度量。</p><p> 亮度處理是指圖像整體變亮或者變暗,實現(xiàn)方法:加大或減小每個像素的三色數(shù),公式為:</p><p><b> 其中:</b></p><p>&
32、lt;b> (2-2)</b></p><p> 式中:V為調(diào)整后顏色值 為原顏色值 d為亮度調(diào)整系數(shù)</p><p> 用imadjust函數(shù),其調(diào)用格式如下:</p><p> g=imadust(f,[low_in high_in],[low_out high_out]),gamma)</p><p>
33、; gamma 表示映射性質(zhì),默認值是1 表示線性映射。</p><p> 由于該函數(shù)有五個參數(shù)需要輸入,為了方便用戶改變,所以這里設(shè)計一個輸入對話框,用戶通過對話框把五個參數(shù)賦值給[low_in high_in],[low_out high_out],gamma這五個參數(shù),如下一組命令建立了如下圖所示的輸入對話框:</p><p> 圖2.4 命令對話框</p>&l
34、t;p> prompt={'輸入?yún)?shù)1','輸入?yún)?shù)2','輸入gamma'};</p><p> defans={'[0 0.7]','[0 1]','1'};</p><p> p=inputdlg(prompt,'輸入?yún)?shù)',1,defans);</p&g
35、t;<p> 但是,這種方法并不能很好的讓用戶能夠?qū)D像進行任意的亮度和對比度變化調(diào)整,有時并不事先知道參數(shù)的值要多少,也不關(guān)心,而是任意調(diào)節(jié)的,直到滿意為止。所以應(yīng)該用滑動條來調(diào)節(jié)圖像的亮度和對比度,這樣更適合用戶的使用習慣。</p><p> 由于imadjust函數(shù)有五個參數(shù),所以原則上需要設(shè)計五個滑動條來調(diào)節(jié)對比度,這對用戶來說顯然比較麻煩,因此在設(shè)計的時候固定其中的三個參數(shù),通過調(diào)節(jié)兩
36、個參數(shù)的值來改變亮度和對比度。</p><p> [0 handles.beta],[0 1],handles.gm,這里的變量handles.beta和handles.gm就通過滑動條得到,滑動條設(shè)計如下圖:</p><p> 圖2.5 滑動條設(shè)計圖</p><p> 亮度調(diào)整的tag名為ld,取值范圍0~1,gamma值的tag名為gamma,取值范圍為0
37、~5。獲取滑動條參數(shù)的程序如下:</p><p> handles.beta=get(handles.ld,'value');</p><p> handles.gm=get(handles.gamma,'value');</p><p> 執(zhí)行該操作,調(diào)節(jié)滑動條到上圖所示位置,結(jié)果如下圖:</p><p&g
38、t; 圖2.6 亮度處理對比圖</p><p><b> 2.3.3截圖</b></p><p> 提取目標圖像中的任意部分,公式:imcrop('圖象名',[x起點,y起點,x寬度,y寬度]。</p><p> 在MATLAB中,用函數(shù)imcrop實現(xiàn)對圖像的剪切操作。該操作剪切的是圖像中的一個矩形子圖,用戶可以通過參
39、數(shù)指定這個矩形四個頂點的坐標,也可以交互地用鼠標選取這個矩形。</p><p> Imcrop函數(shù)的調(diào)用格式如下:</p><p> y=imcrop(handles.img);</p><p> 不管handles.img是三維的還是二維數(shù)據(jù),該函數(shù)都能進行操作。下圖就是對三維圖像的截圖:</p><p> 圖2.7 截圖處理對比圖
40、</p><p><b> 2.3.4縮放</b></p><p> 假設(shè)圖像x軸縮放比例為c,y軸方向縮放比率為d,,那么原圖中,點()對應(yīng)與新圖中的點()的轉(zhuǎn)換矩陣為:</p><p><b> =</b></p><p><b> (2-3)</b></p&
41、gt;<p> 要求:輸入一副圖像,根據(jù)輸入的水平和垂直放量,顯示縮放后的圖像。</p><p> 在MATLAB中,用函數(shù)imresize來實現(xiàn)對圖像的放大或縮小。插值方法可選用三種方法,最近鄰插值,雙線性插值,雙三次插值。</p><p> 該函數(shù)的調(diào)用格式如下:</p><p> B=imresize(A,m,method)</p&
42、gt;<p><b> 其中:</b></p><p> 參數(shù)method用于指定插值的方法,可選的值為“nearest”(最近鄰法),“bilinear”(雙線性插值)、“bicubic”(雙三次插值),缺省值為“nearest”。</p><p> B=imresizee(A.m,method)表示返回原圖A的m倍放大圖像(m小于1時實際上是縮
43、小);</p><p> 下圖就是采用鄰近插值法的放大和縮小圖像,參數(shù)值保持默認設(shè)置:</p><p> 圖2.8 放大處理對比圖</p><p> 雖然處理后看不出放大的效果,這是由于坐標軸限制的原因,如果把處理后的圖片保存起來,再把處理后的文件打開,就可以看到比較明顯的放大效果。</p><p> 圖2.9 放大效果圖</p
44、><p><b> 縮小后的結(jié)果如下:</b></p><p> 圖2.10 縮小處理對比圖</p><p><b> 2.4旋轉(zhuǎn)</b></p><p><b> 2.4.1上下翻轉(zhuǎn)</b></p><p> 如果A是一個列向量,將A中的元素順序
45、進行翻轉(zhuǎn)。 </p><p> 如果A是一個行向量,還等于A。</p><p> 例一:A是一個3×2的矩陣</p><p> 1 4 3 6</p><p> 2 5 翻轉(zhuǎn)則為: 2 5</p><p> 3 6 1 4</p&g
46、t;<p> 例二:A是一個列向量</p><p> 1 3</p><p> 2 翻轉(zhuǎn)則為: 2</p><p> 3 1</p><p> 例三:A是一個行向量</p><p> 1 2 3 翻轉(zhuǎn)則為: 3 2 1
47、</p><p> 函數(shù)flipud是實現(xiàn)一個二維矩陣的上下翻轉(zhuǎn),如a=[1 2;3 4],經(jīng)過該函數(shù)處理后,原矩陣變?yōu)閇3 4;1 2];所以利用該函數(shù)也可以對圖像進行上下翻轉(zhuǎn)處理,但由于該函數(shù)針對二維數(shù)據(jù)的處理,所以在寫程序時,要對RGB圖像和灰度圖像分開處理,這就要用到isrgb函數(shù)來判斷,如果是灰度圖像,則可以直接用這個函數(shù)進行處理,否則就要對RGB圖像進行降維處理。</p><p&
48、gt; for k=1:3 </p><p> y(:,:,k)=flipud(x(:,:,k));</p><p><b> end</b></p><p><b> 處理結(jié)果如圖:</b></p><p> 圖2.11 上下翻轉(zhuǎn)處理對比圖</p><p><
49、;b> 2.4.2左右翻轉(zhuǎn)</b></p><p> 如果A是一個行向量,將A中元素的順序進行翻轉(zhuǎn)。 </p><p> 如果A是一個列向量,還等于A。</p><p> 例一: A是一個行向量</p><p> 1 2 3 翻轉(zhuǎn)則為:3 2 1</p><p> 例一: A是一個3
50、215;2的矩陣</p><p> 1 4 4 1</p><p> 2 5 翻轉(zhuǎn)則為: 5 2</p><p> 3 6 6 3</p><p> 例三: A是一個列向量</p><p> 1 1</
51、p><p> 2 翻轉(zhuǎn)則為: 2</p><p> 3 3</p><p> 對圖像的左右翻轉(zhuǎn)也可以用fliplr函數(shù)來處理,同樣的,也要對灰度和彩色圖像分開處理,處理結(jié)果如圖:</p><p> 圖2.12 左右翻轉(zhuǎn)處理對比圖</p><p> 2.4.3任意角度翻
52、轉(zhuǎn)</p><p> 圖像繞中心點旋轉(zhuǎn)的公式為:</p><p><b> =</b></p><p><b> (2-4)</b></p><p> 圖像如果繞一個指點點旋轉(zhuǎn),則先要將坐標系平移到該點,再進行旋轉(zhuǎn),然后平移回新的坐標原點。則旋轉(zhuǎn)變換公式為:</p><p
53、><b> =</b></p><p><b> (2-5)</b></p><p> 用函數(shù)imrotate來實現(xiàn)對圖像的插值旋轉(zhuǎn)。</p><p> 該函數(shù)的調(diào)用格式如下:</p><p> B=imrotate(A,angle,method,’crop’)</p>
54、<p> 其中,參數(shù)method用于指定插值的方法,可選的值可以有三種,分別為鄰近插值,雙線性插值,雙三次插值,缺省時為鄰近插值,參數(shù)angle代表旋轉(zhuǎn)的角度。</p><p> 一般來說,旋轉(zhuǎn)后的圖像會比原圖大,用戶可以指定“crop”參數(shù)對旋轉(zhuǎn)后的圖像進行剪切(取圖像的中間部分),使返回的圖像與原圖大小相同。執(zhí)行結(jié)果為:</p><p> 圖2.13 任意角度翻轉(zhuǎn)處理
55、對比圖</p><p><b> 2.5噪聲</b></p><p> 圖像是噪聲:原本我們可以清晰的看到一副圖像,但是有時候圖像上會有一些我們不需要的圖案,使我們無法很清楚的看清一副圖,這就是圖像的噪聲。</p><p> 去除噪聲的方法:不同原因產(chǎn)生的噪聲,其分布特性也不完全相同,根據(jù)噪聲和信號的關(guān)系可將其氛圍兩種形式:1.加性噪聲,
56、此類噪聲與輸入圖像信號無關(guān),含噪聲象表示為;2.乘性噪聲,此類噪聲與圖像信號有關(guān),含噪聲象表示為。噪聲對圖像處理十分重要,如果圖像伴有較大的噪聲,它會直接影響到圖像處理的輸入、采集、處理的各個環(huán)節(jié)以及輸出的全過程甚至輸出結(jié)果,因此在進行數(shù)字圖像處理的時候,首先需要對目標圖像進行去除噪聲的工作。</p><p> 經(jīng)常用到的噪聲有三種,高斯噪聲,椒鹽噪聲,乘性噪聲,可以通過以下三個函數(shù)來實現(xiàn):</p>
57、<p> y=imnoise(handles.img,'gaussian',p1,p2); %高斯噪聲</p><p> y=imnoise(x,'salt & pepper',p1); %椒鹽噪聲</p><p> y=imnoise(handles.img,'speckle',p1);
58、 %乘性噪聲</p><p> p1,p2的參數(shù)也通過輸入對話框的形式得到,原圖加入高斯噪聲后結(jié)果如下所示:</p><p> 圖2.14 噪聲處理對比圖</p><p><b> 2.6濾波</b></p><p><b> 2.6.1中值濾波</b></p>&
59、lt;p> 中值濾波是一種能有效抑制圖像噪聲而提高信噪比的非線性濾波技術(shù)。它是一種領(lǐng)域運算,類似與卷積,但計算的不是加權(quán)求和,而是把領(lǐng)域中的像素按灰度級進行排序,然后選擇該組的中間值作為輸出像素值。</p><p> 設(shè)有一個而為圖像,二維中值濾波的結(jié)果為:</p><p><b> (2-6)</b></p><p> 2.6.
60、2自適應(yīng)濾波</p><p> 自適應(yīng)濾波,就是利用前一時刻已獲得的濾波器參數(shù)等結(jié)果,自動調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應(yīng)信號和噪聲未知或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應(yīng)濾波器由兩個部分組成:一是濾波器的結(jié)構(gòu);二是調(diào)節(jié)濾波器系數(shù)的自適應(yīng)算法。自適應(yīng)濾波器的特點是自動調(diào)節(jié)自身的沖激響應(yīng),達到最優(yōu)濾波,此算法適用于平穩(wěn)和非平穩(wěn)隨機信號,并且不要求知道信號和噪聲的統(tǒng)計特性。公式為:</p>
61、<p><b> (2-7)</b></p><p> 式中:n為時間序列;N為濾波器階數(shù);</p><p><b> T為輸入矢量</b></p><p><b> T為全系數(shù)矢量</b></p><p><b> (2-8)</b>
62、</p><p> 2.6.3 平滑濾波</p><p> 平滑濾波是低頻增強的空間域濾波技術(shù)。它的目的有兩類:一類是模糊;另一類是消除噪音??臻g域的平滑濾波一般采用簡單平均法進行,就是求鄰近像元點的平均亮度值。鄰域的大小與平滑的效果直接相關(guān),鄰域越大平滑的效果越好,但鄰域過大,平滑會使邊緣信息損失的越大,從而使輸出的圖像變得模糊,因此需合理選擇鄰域的大小。</p>&l
63、t;p> 平滑濾波的基本算法是將函數(shù)與原始圖像進行卷積,最后得到一個平滑圖像</p><p><b> =</b></p><p><b> =</b></p><p><b> (2-9)</b></p><p> 式中:為高斯標準方差;為原始圖像點的橫坐標變
64、量;為原始圖像點的縱坐標變量。</p><p> 這里選擇三種濾波方法,</p><p> k=medfilt2(handles.noise_img);%中值濾波</p><p> k=wiener2(handles.noise_img,[5,5]);%自適應(yīng)濾波</p><p> k=filter2(fspecial('av
65、erage',3),handles.noise_img)/255;%平滑濾波</p><p> 同樣的,這些函數(shù)也是針對二維數(shù)據(jù),所以要先判斷是彩色圖像還是灰度圖像,然后分別進行處理,下面是對彩色圖像的自適應(yīng)濾波處理:</p><p> i=handles.noise_img;</p><p> if isrgb(i) </p><
66、p> a=handles.noise_img(:,:,1);</p><p> b=handles.noise_img(:,:,2);</p><p> c=handles.noise_img(:,:,3);</p><p> k(:,:,1)=wiener2(a,[5,5]);</p><p> k(:,:,2)=wiene
67、r2(b,[5,5]);</p><p> k(:,:,3)=wiener2(c,[5,5]);</p><p> imshow(k);</p><p><b> 執(zhí)行結(jié)果如圖:</b></p><p> 圖2.15 濾波處理對比圖</p><p> 對其他方法的濾波程序也類似,由于把各
68、個濾波方法放在一個選擇框里,所以程序要用以下的選擇語句:</p><p> switch str</p><p> case '中值濾波'</p><p> case '自適應(yīng)濾波' </p><p> case '平滑濾波'</p><p><b>
69、 end</b></p><p><b> 2.7直方圖統(tǒng)計</b></p><p> 概念:表示圖像中具有某種灰度級的像素個數(shù),反映圖像中每種灰度出現(xiàn)的頻率。</p><p> 為了有利于數(shù)字圖像處理,必須引入離散形式。在離散形式下,用代表離散灰度級,用代表,并且有下式子成立:</p><p>&l
70、t;b> = </b></p><p><b> (2-10)</b></p><p> 式中為圖像中出現(xiàn)這種灰度級像素,是圖像中像素總和。在直角坐標系中做出與的關(guān)系圖形,這個圖形稱為直方圖。</p><p> 用imhist函數(shù)對圖像數(shù)據(jù)進行直方圖統(tǒng)計,</p><p> x=imhi
71、st(handles.img(:,:,1));</p><p> bar(horz,x);</p><p> 其中,x矩陣的數(shù)據(jù)是0~255灰度值的統(tǒng)計個數(shù),如果直接對x矩陣數(shù)據(jù)進行圖形圖顯示,由于有256個數(shù)據(jù),在坐標系中就會很密集,為了更清楚的顯示條形圖,所以在程序設(shè)計時,把x數(shù)據(jù)進行部分提取,</p><p> x1=x(1:10:256);</p
72、><p> horz=1:10:256;</p><p> bar(horz,x1);</p><p> 除了顯示數(shù)據(jù)的直方圖統(tǒng)計外,還可以對圖像進行均衡處理,所用到的函數(shù)是histeq,這兩個函數(shù)同樣只使用于二維數(shù)據(jù),所以也要對二維和三維數(shù)據(jù)分開處理。</p><p> 直方圖顯示和均衡后的圖像分別如下圖所示:</p>&
73、lt;p><b> 圖2.16 直方圖</b></p><p><b> 2.8頻譜分析</b></p><p><b> 2.8.1、頻譜圖</b></p><p> 由卷積定理可知,如果原始圖像是,處理后的圖像是,而是處理系統(tǒng)的沖激響應(yīng),那么,處理過程可由下式表示:</p>
74、;<p><b> =*</b></p><p><b> (2-11)</b></p><p><b> 式中*代表卷積</b></p><p> 如果,,分別是,,的傅立葉變換,那么,上面的卷積關(guān)系表示為變換域的乘積關(guān)系,即:</p><p><
75、b> =</b></p><p><b> (2-12)</b></p><p><b> 式中為傳遞函數(shù)。</b></p><p> 在增強問題中,是給定的原始數(shù)據(jù),經(jīng)傅立葉變換可得。選擇合適的,得到:</p><p><b> =</b><
76、/p><p><b> (2-13)</b></p><p> 得到的的比在某些特性方面更加鮮明、突出,因而更加易于識別、解釋。</p><p> 為了得到圖像的頻譜圖,先要對數(shù)據(jù)進行傅里葉變換,用fft2函數(shù)對二維數(shù)據(jù)進行快速傅里葉變換,同時為了更好的觀察頻譜圖,需要把fft2變換后的數(shù)據(jù)進行平移,利用fftshift函數(shù),把快速傅里葉變換
77、的DC 組件移到光譜中心。這樣圖像能量的低頻成分將集中到頻譜中心,圖像上的邊緣、線條細節(jié)信息等高頻成分將分散在圖像頻譜的邊緣。如下圖所示:</p><p> 圖2.17 頻譜處理對比圖</p><p> 2.8.2通過高通濾波器</p><p> axes(handles.axes2);</p><p> x=(handles.img
78、);</p><p> if isrgb(x)</p><p> msgbox('這是彩色圖像,不能通過高通濾波器','失敗');</p><p><b> else</b></p><p> y1=imnoise(x,'gaussian');
79、 %加高斯噪聲</p><p> f=double(y1); % 數(shù)據(jù)類型轉(zhuǎn)換</p><p> k=fft2(f); % 傅立葉變換</p><p> g=fftshift(k); %
80、轉(zhuǎn)換數(shù)據(jù)矩陣</p><p> [M,N]=size(g);</p><p><b> nn=2;</b></p><p> d0=3; %截止頻率為3</p><p> m=fix(M/2); n=fix(N/2);</p><
81、p><b> for i=1:M</b></p><p><b> for j=1:N</b></p><p> d=sqrt((i-m)^2+(j-n)^2); % 計算高通濾波器傳遞函數(shù)</p><p><b> if d<=d0</b></p><p>
82、;<b> h=0;</b></p><p><b> else h=1;</b></p><p><b> end</b></p><p> result(i,j)=h*g(i,j);</p><p><b> end</b></p>
83、;<p><b> end</b></p><p> result=ifftshift(result);</p><p> y2=ifft2(result);</p><p> y3=uint8(real(y2));</p><p> imshow(y3); </p><
84、p><b> end</b></p><p> 2.8.3通過低通濾波器</p><p> axes(handles.axes2);</p><p> x=(handles.img);</p><p> if isrgb(x)</p><p> msgbox('這是彩色圖
85、像,不能通過低通濾波器','失敗');</p><p><b> else</b></p><p> y1=imnoise(x,'salt & pepper'); % 疊加椒鹽噪聲</p><p> f=double(y1); % 數(shù)據(jù)類型轉(zhuǎn)換,不支持圖像的無符號整型的計算</p&
86、gt;<p> g=fft2(f); % 傅立葉變換</p><p> g=fftshift(g); % 轉(zhuǎn)換數(shù)據(jù)矩陣</p><p> [M,N]=size(g);</p><p> nn=2; % 二階巴特沃斯(Butterwort
87、h)低通濾波器</p><p> d0=10; %截止頻率為10</p><p> m=fix(M/2); n=fix(N/2);</p><p><b> for i=1:M</b></p><p><b> for j=1:N</b>&
88、lt;/p><p> d=sqrt((i-m)^2+(j-n)^2);</p><p> h=1/(1+0.414*(d/d0)^(2*nn));% 計算低通濾波器傳遞函數(shù)</p><p> result(i,j)=h*g(i,j);</p><p><b> end</b></p><p>
89、<b> end</b></p><p> result=ifftshift(result);</p><p> y2=ifft2(result);</p><p> y3=uint8(real(y2));</p><p> imshow(y3); % 顯示濾波處理后的圖像</p><p&
90、gt;<b> end</b></p><p><b> 2.9灰度圖像處理</b></p><p><b> 2.9.1二值圖像</b></p><p> 二值圖像是指數(shù)據(jù)矩陣中的元素只是0或1,讀入matlab也是一個二維矩陣。值得注意的是,像素點取值只限于0,1。</p>
91、<p><b> 圖像二值化流程:</b></p><p> 圖2.18 圖像二值化流程圖</p><p> 用j=im2bw(x);來對灰度圖像到二值圖像的轉(zhuǎn)換。轉(zhuǎn)換結(jié)果為:</p><p> 圖2.19 灰度圖像轉(zhuǎn)二值圖像對比圖</p><p> 2.9.2創(chuàng)建索引圖像</p>&l
92、t;p> 根據(jù)數(shù)據(jù)矩陣和圖像像素顏色匹配關(guān)系,MATLAB中圖像可分為:索引圖像、灰度圖像、二值圖像和RGB圖像。</p><p> 索引圖像:它的數(shù)據(jù)信息包括一個數(shù)據(jù)矩陣和一個雙精度色圖矩陣,它的數(shù)據(jù)矩陣中的值直接指定該點的顏色為色圖矩陣中的某一種。色圖矩陣中,每一行表示一種顏色,每行有三個數(shù)據(jù),分別表示該種顏色中紅、綠、藍的比例情況,所有元素值都在[0,1]內(nèi)。</p><p&g
93、t; 用X = grayslice(I,n)函數(shù)來實現(xiàn),轉(zhuǎn)換后得到的圖像為:</p><p> 圖2.20 索引圖像</p><p> 2.10顏色模型轉(zhuǎn)換</p><p> H參數(shù)表示色彩信息,即所處的光譜顏色的位置。該參數(shù)用一角度量來表示,紅、綠、藍分別相隔120度?;パa色分別相差180度。</p><p> 純度S為一比例值,
94、范圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。S=0時,只有灰度。</p><p> V表示色彩的明亮程度,范圍從0到1。有一點要注意:它和光強度之間并沒有直接的聯(lián)系。</p><p> RGB轉(zhuǎn)化到HSV的算法:</p><p> max=max(R,G,B) </p><p> min=min(R,G,B)
95、 </p><p> if R = max, H = (G-B)/(max-min) </p><p> if G = max, H = 2 + (B-R)/(max-min) </p><p> if B = max, H = 4 + (R-G)/(max-min) </p><p> H = H * 60 </p&g
96、t;<p> if H < 0, H = H + 360 </p><p> V=max(R,G,B) </p><p> S=(max-min)/max</p><p> 下面是RGB顏色模型到HSV模型的轉(zhuǎn)換程序:</p><p> axes(handles.axes2);</p><
97、p> x=(handles.img);</p><p> if isrgb(x)</p><p> HSV=rgb2hsv(x);</p><p> imshow(HSV);</p><p><b> else</b></p><p> msgbox('這是灰度圖像,不能
98、轉(zhuǎn)換','轉(zhuǎn)換失敗');</p><p><b> end</b></p><p><b> 轉(zhuǎn)換后的結(jié)果為:</b></p><p> 圖2.21 顏色模型轉(zhuǎn)換對比圖</p><p> 同樣的,轉(zhuǎn)化為ntsc和ycbcr模型,只要改為相應(yīng)的函數(shù)即可。函數(shù)如下:<
99、;/p><p> rgb2ntsc(x);% rgb模型轉(zhuǎn)ntsc模型</p><p> rgb2ycbcr(x);% rgb模型轉(zhuǎn)ycbcr模型</p><p> 2.11操作界面設(shè)計</p><p> 為了使整個操作界面更加的美觀,對背景顏色和字體顏色進行設(shè)置。</p><p> 第3章 程序調(diào)試及結(jié)果分析
100、</p><p> 程序經(jīng)過調(diào)試各個功能模塊可以正確獨立運行。</p><p> 在設(shè)計過程中,發(fā)現(xiàn)程序的一些缺陷和不足:</p><p> 1.一個函數(shù)只能對灰度圖像處理,不能對RGB圖像處理,那么如何才能對RGB圖像處理:</p><p> 這主要是對MATLAB函數(shù)的不夠清楚,用到的很多函數(shù)是針對二維數(shù)據(jù)的,而RGB圖像的數(shù)據(jù)是
101、一個三維矩陣,所以處理要與灰度圖像不同,在開始的時候,我認為應(yīng)該找一個能夠應(yīng)用于三維矩陣的函數(shù),結(jié)果卻沒找到,后來想到可以把三維數(shù)據(jù)進行降維處理,同樣使用二維的函數(shù),只要是同樣處理三次。比如,彩色圖像的濾波處理,直方圖均衡等。</p><p> 2.同一個操作對灰度圖像可以使用,當用戶選擇的是彩色圖像時,該操作就會出錯:</p><p> 這是由于設(shè)計程序時,本身程序是有針對性的,有些
102、程序只能對灰度圖像有效,有些對彩色圖像有效,但是用戶并不清楚這些,所以在設(shè)計的過程中就要考慮全面,要分開設(shè)計。在本次課程設(shè)計中,我均對每個程序的開始時,用if isrgb(x)進行判斷。</p><p> 3.在沒有加入噪聲的情況下,點擊“中值濾波”或是其它濾波,會提示錯誤:</p><p> 這是由于在濾波程序設(shè)計的過程中,開始用到的變量是handles.noise_img,而這個變
103、量是在加入噪聲時候才定義的,所以在沒有加入噪聲的情況下,點擊各個濾波就會彈出變量沒有定義的錯誤,解決方法就是在文件打開的時候就給定義handles.noise_img=x。</p><p> 4.本次設(shè)計存在一個比較大的問題,就是每次操作都是獨立的,比如:要對圖像加入噪聲,然后在此基礎(chǔ)上進行亮度調(diào)整,截圖,頻譜分析就無法實現(xiàn)。</p><p> 我認為應(yīng)該是整個程序設(shè)計過程中對變量的設(shè)
104、置沒有做好,應(yīng)該每次操作后,把處理后的數(shù)據(jù)保存在一個全局變量,這樣還要對處理后的數(shù)據(jù)進行在處理時,只要把這個全局變量作為原始數(shù)據(jù)帶入就可。</p><p><b> 總 結(jié)</b></p><p> 在這次課程設(shè)計過程中,感觸很深,由于對MATLAB圖像處理的函數(shù)不熟悉,導致自己走了很多彎路,例如在設(shè)計圖像左轉(zhuǎn)90度和右轉(zhuǎn)90度時,由于開始并不知道imrotate
105、函數(shù),只知道上下翻轉(zhuǎn)flipud和左右翻轉(zhuǎn)fliplr函數(shù),怎樣才能用這兩個函數(shù)來實現(xiàn)左轉(zhuǎn)和右轉(zhuǎn)成了一個難題,如果只用矩陣轉(zhuǎn)置的話,并不能達到要求,后來經(jīng)過不斷的調(diào)試發(fā)現(xiàn)可以結(jié)合flipud和fliplr函數(shù)來實現(xiàn),同理,也可以通過轉(zhuǎn)置和fliplr函數(shù)實現(xiàn)右轉(zhuǎn)90度。</p><p> 但是后來發(fā)現(xiàn)其實只要用imrotate函數(shù)就可以解決問題。通過這次經(jīng)歷后,后來在設(shè)計其它程序時,盡量找MATLAB自帶的函數(shù)
106、,而不是一碰到問題就自己想算法,這樣可以節(jié)省較多的時間。</p><p> 在理工科的專業(yè)應(yīng)用背景下,用matlab 進行相關(guān)計算與仿真編程的優(yōu)勢非常突出。特定的問題處理算法,我們通常都以M文件的文本形式給定最終的解決方案,自己設(shè)計的程序是在MATLAB環(huán)境下,用MATLAB語言編寫的,這對于有安裝MATLAB軟件的計算機上運行并不存在什么問題,關(guān)鍵是一般的計算機很少有去安裝MATLAB軟件的,怎樣在這些機子上
107、運行該程序有成了一個問題,經(jīng)過查閱資料發(fā)現(xiàn).exe (可執(zhí)行)文件可運行于所有的通用WINDOWS操作系統(tǒng),為此,將M文件轉(zhuǎn)換成.exe文件倒是個不錯的想法。</p><p> 通過本次課程設(shè)計,使自己對MATLAB GUI設(shè)計流程有了比較深刻的體會,同時也了解了一般軟件設(shè)計的過程。在設(shè)計過程中碰到了很多的問題,通過這些問題,使自己分析問題,解決問題的能力得到了較大的提高。</p><p&g
108、t;<b> 參考文獻</b></p><p> [1]鄭阿奇,曹戈,趙陽.MATLAB實用教程[M].北京:電子工業(yè)出版社</p><p> [2]程衛(wèi)國,馮峰,姚東,徐聽.MATLAB5.3應(yīng)用指南[M].北京:人民郵電出版社</p><p> [3]陳楊.MATLAB 6.X圖像編程與圖像處理[M].西安:西安電子科技大學出版社&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字圖像處理課程設(shè)計--基于matlab的數(shù)字圖像處理
- 數(shù)字圖像處理課程設(shè)計--基于matlab的數(shù)字圖像處理
- 圖像處理課程設(shè)計--基于matlab的數(shù)字圖像處理
- 基于matlab的數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--使用matlab工具進行數(shù)字信號處理
- 數(shù)字信號處理課程設(shè)計-使用matlab工具進行數(shù)字信號處理
- 數(shù)字信號課程設(shè)計--數(shù)字信號處理
- 數(shù)字圖像處理課程設(shè)計---數(shù)字圖像處理
- 數(shù)字圖像處理-課程設(shè)計報告-matlab
- 基于matlab的數(shù)字信號處理與分析課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于 matlab 的音樂信號處理和分析
- 數(shù)字信號處理課程設(shè)計---基于matlab的語音信號濾波處理
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 《數(shù)字信號處理》課程設(shè)計--基于matlab的音樂信號處理和分析
- 基于matlab的語音信號濾波處理——數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計--基于matlab有噪聲語音信號處理
- 數(shù)字信號處理課程設(shè)計--基于 matlab 的語音去噪處理
- 數(shù)字信號課程設(shè)計--語音數(shù)字信號處理與分析及matlab實現(xiàn)
- matlab課程設(shè)計報告-數(shù)字圖像處理研究
- 數(shù)字信號處理課程設(shè)計報告--基于matlab的語音去噪處理
評論
0/150
提交評論