數字圖像課程設計_第1頁
數字圖像課程設計_第2頁
數字圖像課程設計_第3頁
數字圖像課程設計_第4頁
數字圖像課程設計_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 目 錄 摘要.1 引言.2 一、緒論.3 1.1 課程設計選題的背景及意義.3 1.2 圖像邊緣檢測的發展現狀.3二、MATLAB 簡介.3 2.1 基本功能.3 2.2 應用領域.4三、圖像邊緣檢測算法的介紹.4 3.1 邊緣算子法.5 3.2 曲線擬合法.5 3.3 模板匹配法.5 3.4 小波變換法.5 3.5 數學形態學法.5 3.6 模糊理論法.6 3.7 神經網絡法.6四、測試與調試.6 4.1 edge 函數.6 4.2 邊緣檢測算子法.7 4.2.1 Canny 算子.7 4.2.2 Prewitt 算子.9 4.2.3 Sobel算子.10 4.2.4 Roberts梯度算

2、子.12 4.2.5 Log算子.14五、總結與心得體會.16六、參考文獻.17 摘 要 邊緣是圖像最基本的特征,包含圖像中用于識別的有用信息,邊緣檢測是數字圖像處理中基礎而又重要的內容。該課程設計具體考察了 5 種經典常用的邊緣檢測算子,并運用 Matlab 進行圖像處理結果比較。梯度算子簡單有效,LOG 算法和 Canny 邊緣檢測器能產生較細的邊緣。 邊緣檢測的目的是標識數字圖像中灰度變化明顯的點,而導函數正好能反映圖像灰度變化的顯著程度,因而許多方法利用導數來檢測邊緣。在分析其算法思想和流程的基礎上,利用 MATLAB 對這 5 種算法進行了仿真實驗,分析了各自的性能和算法特點,比較邊

3、緣檢測效果并給出了各自的適用范圍。關鍵詞:邊緣檢測;圖像處理;MATLAB 仿真 引 言邊緣檢測在圖像處理系統中占有重要的作用,其效果直接影響著后續圖像處理效果的好壞。許多數字圖像處理直接或間接地依靠邊緣檢測算法的性能,并且在模式識別、機器人視覺、圖像分割、特征提取、圖像壓縮等方面都把邊緣檢測作為最基本的工具。但實際圖像中的邊緣往往是各種類型的邊緣以及它們模糊化后結果的組合,并且在實際圖像中存在著不同程度的噪聲,各種類型的圖像邊緣檢測算法不斷涌現。早在 1965 年就有人提出邊緣檢測算子,邊緣檢測的傳統方法包括 Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-H

4、ildreth 邊緣檢測方法以及 Laplacian-Gaussian(LOG)算子方法和 Canny 最優算子方法等。本設計主要討論其中 5 種邊緣檢測算法。在圖像處理的過程需要大量的計算工作,我們利用 MATLAB 各種豐富的工具箱以及其強大的計算功能可以更加方便有效的完成圖像邊緣的檢測,并對這些方法進行比較,并給出心得、體會。一、緒論1.1 課程設計選題的背景及意義 邊緣是圖像的最基本特征,它包含了用于識別的有用信息,為人們描述或識別目標以及解釋圖像提供了一個重要的特征參數。物體的邊緣是以圖像局部特性的不連續性為形式出現的。從本質上說,邊緣常常意味著一個區域的終結和另一個區域的開始,它普

5、遍存在于目標與背景、目標與目標、區域與區域、基元與基元之間,是圖像分割所依賴的重要特征,也是紋理特征的重要信息源和形狀特征的基礎。有了圖像邊緣,我們就可以確定物體的幾何尺寸并進一步對其測量,確定物體在空間中的幾何位置,確定物體的形狀特征并對物體進行識別。圖像的邊緣信息在圖像分析和計算機視覺中都是十分重要的,是圖像識別中提取圖像特征的一個重要屬性。盡管邊緣在數字圖像處理中的作用非常重要,但是到目前為止還沒有關于邊緣的精確且被廣泛承認的數學定義。這里將邊緣定義為圖像局部特性的不連續性,如灰度的突變、顏色的突變、紋理結構的突變等。對于灰度圖像,邊緣是指灰度的突變,是圖像中灰度變化較劇烈的地方,也即我

6、們通常所說的信號發生奇異變化的地方。通常沿邊緣走向的像素變化平緩,而垂直于邊緣走向的像素變化劇烈。圖像的邊緣有方向和幅度兩個特性。按照幅度的變化,邊緣可粗略分為兩種:一種是階躍型邊緣,它兩邊象素的灰度值有顯著不同;另一種是屋頂狀邊緣,它位于灰度值從增加到減少的變化的轉折點。邊緣檢測就是要檢測出圖像中這種灰度的不連續性,同時確定它們在圖像中的精確位置,是在局部區域上針對“點”的一種運算,表現為一種典型的信號處理問題。在圖像處理、模式識別和計算機視覺中,圖像的邊緣檢測具有極其重要的意義。在大量的視覺模塊計算中,邊緣檢測通常是視覺計算的第一步,高層次計算機視覺處理的成功與否極大地依賴于邊緣檢測算子的

7、優越性能。1.2 圖像邊緣檢測的發展現狀圖像的邊緣檢測有著很長的研究歷史,學術思想非常活躍,新理論、新方法不斷涌現,一直是國內外圖像處理領域研究的熱點,目前為止己經提出了許多方法和理論。至今提出的關于邊緣檢測的方法和理論尚存在不足之處,在某些具體情況下仍然無法很好的檢測出目標物體的邊緣,難以找到一種普遍適應性的邊緣檢測方法。因此,根據具體的應用要求設計新的邊緣檢測方法,或對現有的方法進行改進以得到滿意的邊緣檢測結果,這些依然是研究的主流方向。二、MATLAB 簡介 MATLAB 是矩陣實驗室(Matrix Laboratory)的簡稱,是MathWorks 公司出品的商業數學軟件,用于算法開發

8、、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB 和 Simulink 兩大部分。2.1 基本功能 MATLAB 和 Mathematica、 Maple 并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計 、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。MATLAB 的基本數據單位是矩陣,它的指令表達式與數學 、工程中常用的形式十分相似,故用 MATLAB 來解算問題要比C,FORTRAN 等語言完成

9、相同的事情簡捷得多,并且 mathwork也吸收了像 Maple 等軟件的優點,使 MATLAB 成為一個強大的數學軟件。在新的版本中也加入了對 C,FORTRAN,C+ ,JAVA的支持??梢灾苯诱{用,用戶也可以將自己編寫的實用程序導入到MATLAB 函數庫中方便自己以后調用,此外許多的 MATLAB 愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用。2.2 應用領域MATLAB 產品族可以用來進行以下各種工作: 數值分析 數值和符號計算 工程與科學繪圖 控制系統的設計與仿真 數字圖像處理技術 數字信號處理技術 通訊系統設計與仿真 財務與金融工程 MATLAB 的應用范圍非常廣,包

10、括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用 MATLAB 函數集)擴展了MATLAB 環境,以解決這些應用領域內特定類型的問題。三、圖像邊緣檢測算法的介紹早期的有邊緣算子法、曲線擬合法、模板匹配法。近年來又有許多新的邊緣檢測的算法:小波變換、小波包的邊緣檢測等,基于數學形態學、模糊理論和神經網絡的邊緣檢測算法等。3.1 邊緣算子法 邊緣算子法已在引言中作出說明,這里不再贅述。3.2 曲線擬合法實驗數據本身的誤差經過插值法計算后帶來誤差,有時誤差很大。在這種情況下若要使誤差影響小,需要構造逼近函數,使得從總的趨勢上更

11、能反映被逼近函數的特性,即找一簡單函數(次數較低的Pn(x))適用于整個x1,xn上,但不要求嚴格地通過所有的( xi,yi),只是盡可能的靠近( xi,yi )點,能反映數據的基本趨勢。這兒的Pn(x)與已給函數從總體來說其偏差按某種方法度量能達到最小,即Pn(x) - yi為極小,所以就將求逼近函數的方法稱為曲線擬合法。因此曲線擬合法適用于數據本身就有誤差的情況。3.3 模板匹配法利用模板匹配可以在一幅圖象中找到已知的物體。比如抓拍到了一張射門的照片,要在該照片中找到足球的位置。這時就可以采用模板匹配的方法。所謂模板匹配,其實想法很簡單:拿已知的模板(在本例中為足球的圖象),和原圖象中同樣

12、大小的一塊區域去對。最開始時,模板的左上角點和圖象的左上角點是重合的,拿模板和原圖象中同樣大小的一塊區域去對比,然后平移到下一個象素,仍然進行同3.4 小波變換法小波變換是一種新的變換分析方法,它繼承和發展了短時傅立葉變換局部化的思想,同時又克服了窗口大小不隨頻率變化等缺點,能夠提供一個隨頻率改變的時間一頻率窗口,是進行信號時頻分析和處理的理想工具。它的主要特點是通過變換能夠充分突出問題某些方面的特征,因此,小波變換在許多領域都得到了成功的應用,特別是小波變換的離散數字算法已被廣泛用于許多問題的變換研究中。從此,小波變換越來越引進人們的重視,其應用領域來越來越廣泛。 3.5 數學形態學法數學形

13、態學的基本思想是用具有一定形態的結構元素去量度和提取圖像中的對應形狀以達到對圖像分析和識別的目的。 數學形態學的數學基礎和所用語言是集合論,因此它具有完備的數學基礎,這為形態學用于圖像分析和處理、形態濾波器的特性分析和系統設計奠定了堅實的基礎。數學形態學的應用可以簡化圖像數據,保持它們基本的形狀特性,并除去不相干的結構。數學形態學的算法具有天然的并行實現的結構, 實現了形態學分析和處理算法的并行,大大提高了圖像分析和處理的速度。數學形態學是由一組形態學的代數運算子組成的,它的基本運算有4個: 膨脹(或擴張)、腐蝕(或侵蝕)、開啟和閉合, 它們在二值圖像和灰度圖像中各有特點。數學形態學的基本思想

14、及方法適用于與圖像處理有關的各個方面,如基于擊中/擊不中變換的目標識別,基于流域概念的圖像分割, 基于腐蝕和開運算的骨架抽取及圖像編碼壓縮,基于測地距離的圖像重建,基于形態學濾波器的顆粒分析等。迄今為止, 還沒有一種方法能像數學形態學那樣既有堅實的理論基礎,簡潔、 樸素、 統一的基本思想,又有如此廣泛的實用價值。有人稱數學形態學在理論上是嚴謹的,在基本觀念上卻是簡單和優美的。3.6 模糊理論法數字圖像處理的最高目的是實現對數字圖像中物體的分類或識別,即模糊識別,從而構成自動處理某些信息的機器系統,以代替人完成分類和辨別的任務。一般分為四個部分:信息獲取部分、預處理部分、特征提取、決策分類。而預

15、處理部分則使用圖像復原、增強和變換技術對圖像進行處理,提高圖像的視覺效果,優化各種統計指標,為特征提取提供高質量的圖像。3.7 神經網絡法 從20世紀90年代開始,通過ReinhardEckhorn等對貓的視覺皮層神經元脈沖串同步振蕩現象的研究,得到了哺乳動物神經元模型,并由此發展形成了脈沖耦合神經網絡PCNN模型。脈沖耦合神經網絡進一步靠近真實哺乳動物視覺神經網絡中神經細胞的工作原理,非常適合于圖像分割、圖像平滑及降噪等應用,是20世紀神經網絡理論發展的里程碑,引起了眾多學者的興趣。四、測試與調試4.1 edge 函數 在 MATLAB 圖像處理工具箱中提供了專門的邊緣檢測 edge 函數,

16、由 edge 函數可以實現各算子對邊緣的檢測,其調用格式如下:BW=edge(I,method)BW=edge(I,method,thresh)Bw=edge(I,method,thresh,direction)BW,thresh=edge(I,method,)其中,I 是輸入圖像。edge 函數對灰度圖像 I 進行邊緣檢測,返回與 I 同樣大的二值圖像 BW;其中 1 表示邊緣,表示非邊緣。I 可以是 uint8 型、uint16 型或 double 型;BW 是 uint8 型。method 是表示選用的方法(算子)類型,可以選擇的 method 有Sobel、Prewitt、Robert

17、s、Log、Canny 等??蛇x的參數有 thresh(閾值)、sigma(方差)和 direction(方向)。4.2 邊緣檢測算子法 4.2.1 Canny 算子 Canny 邊緣檢測利用高斯函數的一階微分,在噪聲抑制和邊緣檢測之間尋求較好的平衡,其表達式近似于高斯函數的一階導數。 Canny 算子是一階算子。其方法的實質是用 1 個準高斯函數作平滑運算 fs=f(x,y)×G(x,y),然后以帶方向的一階微分算子定位導數最大值。平滑后 fs(x,y)的梯度可以使用 2×2 一階有限差分近似式: Pi,j(fsi,j+1-fsi,j+fsi+1,j+1-fsi+1,j)

18、/2 Qi,j(fsi,j-fsi+1,j+fsi,j+1-fsi+1,j+1)/2 在這個 2×2 正方形內求有限差分的均值,便于在圖像中的同一點計算計算 x 和 y 的偏導數梯度。幅值和方向角可用直角坐標到極坐標的坐標轉化來計算: Mi,j反映了圖像的邊緣強度; i,j反映了邊緣的方向。使得 Mi,j取得局部最大值的方向角 i,j,就反映了邊緣的方向。Canny 算子也可用高斯函數的梯度來近似,在理論上很接近 4 個指數函數的線性組合形成的最佳邊緣算子。在實際工作應用中編程較為復雜且運算較慢。Canny 邊緣檢測算子對受加性噪聲影響的邊緣檢測是最優的。 程序代碼:(高頻成分豐富的

19、圖像) i= imread('gantrycrane.png');%讀取圖像 a=rgb2gray(i);%彩圖變灰圖 b = edge(a,'canny',0.03,0.06);% edge(I,'canny',thresh,sigma),sigma 默認為1 c = edge(a,'canny',0.05,0.1); % =3 d = edge(a,'canny',0.05,0.1,2); subplot(2,2,1),imshow(a); subplot(2,2,2),imshow(b);title('

20、;canny 雙閾值=0.03,0.06 =1') subplot(2,2,3),imshow(c);title('canny 雙閾值=0.05,0.1 =1') subplot(2,2,4),imshow(d);title('canny 雙閾值=0.05,0.1 =2') (中低頻成分豐富的圖像) 結論:通過上述圖像比較,不難看出閾值越小,方差越小,圖像邊緣越輪廓清晰。Canny算子法對高頻成分豐富的圖像處理效果好,對中低頻成分的圖像效果差。4.2.2 Prewitt 算子 Prewitt 從加大邊緣檢測算子的模板大小出發,由 2×2 擴大到

21、 3×3 來計算差分算子,采用 Prewitt 算子不僅能檢測邊緣點,而且能抑制噪聲的影響。這些算子樣板由理想的邊緣圖像構成。依次用邊緣樣板去檢測圖像,與被檢測區域最為相似的樣板給出最大值。用這個最大值作為算子的輸出值 P(i,j),這樣可將邊緣像素檢測出來。定義 Prewitt 邊緣檢測算子模板如下:Hy= Hx=用edge 函數處理的Matlab 程序代碼:(高頻成分豐富的圖像) i = imread('gantrycrane.png');%讀取圖像 a=rgb2gray(i);%彩圖變灰圖 b = edge(a,'prewitt',0.02);

22、c = edge(a,'prewitt',0.07); d,e = edge(a,'prewitt'); %該處可得閾值的默認值e subplot(2,2,1),imshow(a),axis on; title('原圖') subplot(2,2,2),imshow(b) ,axis on; title('prewitt 閾值=0.02') subplot(2,2,3),imshow(c) ,axis on;title('prewitt 閾值=0.07') subplot(2,2,4),imshow(d) ,axi

23、s on; title('默認')(中低頻成分豐富的圖像)結論:通過上述圖像比較,不難看出閾值越小,圖像邊緣越輪廓清晰。Prewitt算子法對高頻成分豐富的圖像處理效果好,對中低頻成分的圖像效果差。4.2.3 Sobel算子 Sobel 在 Prewitt 算子的基礎上,對 4-鄰域采用帶權的方法計算差分,該算子不僅能檢測邊緣點,且能進一步抑制噪聲的影響,但檢測的邊緣較寬。 Sobel 算法是基于一階導數的邊緣檢測,通過逼近導數來找邊緣,其邊緣點存在于圖像梯度最大值處。Sobel 算子中用到了兩個卷積模板(一個水平算子,一個垂直算子)。Hy= Hx=它是一種奇數大小(3

24、5;3)模板下的全方向微分算子,對檢測點的上下左右進一步加權。Sobel 算子的思想是鄰域的像素對當前像素產生的影響不是等價的,所以距離不同的像素具有不同的權值,對算子結果產生的影響也不同。我們用 Sobel 來檢測邊緣的時候,先分別用上述的模板對圖像進行卷積,得到的是兩個矩陣,在不考慮邊界的情形下也是和原圖像同樣大小的 bx,by,它們分別表示圖像 a 中相同位置處的兩個偏導數。然后把 bx,by 對應位置兩個數平方后相加得到一個新的矩陣 b,b 表示圖像 a 中各個像素的灰度的梯度值。最后通過閾值處理和細化處理得到邊緣圖像。在閾值不為空的情況下,邊緣存在于梯度幅值大于閾值平方的點上。用ed

25、ge 函數處理的Matlab 程序代碼:(高頻成分豐富的圖像)i = imread('gantrycrane.png');%讀取圖像 a=rgb2gray(i);%彩圖變灰圖b = edge(a,'sobel',0.02); c = edge(a,'sobel',0.07); d,e = edge(a,'sobel'); %該處可得閾值的默認值e subplot(2,2,1),imshow(a),axis on; title('原圖') subplot(2,2,2),imshow(b) ,axis on; titl

26、e('sobel 閾值=0.02') subplot(2,2,3),imshow(c) ,axis on;title('sobel 閾值=0.07') subplot(2,2,4),imshow(d) ,axis on; title('默認閾值') (中低頻成分豐富的圖像)結論:通過上述圖像比較,不難看出閾值越小,圖像邊緣越輪廓清晰。Sobel算子法對高頻成分豐富的圖像處理效果好,對中低頻成分的圖像效果差。4.2.4 Roberts梯度算子 對階躍狀邊緣,在邊緣點處一階導數有極值,因此可計算每個像素處的梯度來檢測邊緣點。對于圖像 g(x,y),在

27、(x,y)處的梯度定義為 grad(x,y)。梯度是一矢量,大小代表邊緣的強度,方向與邊緣走向垂直。梯度算子僅用最近鄰像素的灰度計算,對噪聲敏感,無法抑制噪聲的影響。 Roberts 邊緣檢測算子根據任意一對垂直方向上的差分可用來計算剃度的原理;采用對角線方向相臨兩像素之差,即:x f=f(i,j)-f(i+1,j+1)(1)y f=f(i,j)-f(i+1,j+1)(2)Roberts 算子中用到了兩個卷積模板(一個水平算子,一個垂直算子)。Hy= Hx=用edge函數處理的Matlab程序代碼:(高頻成分豐富的圖像)i = imread('gantrycrane.png')

28、; %讀取圖像 a=rgb2gray(i);%彩圖變灰圖b = edge(a,'roberts',0.02); %以閾值為0.02進行roberts邊緣檢測 c = edge(a,'roberts',0.07); %閾值為0.07 d,e = edge(a,'roberts'); %該處可得閾值的默認值e subplot(2,2,1),imshow(a),axis on; title('原圖') subplot(2,2,2),imshow(b) ,axis on; title('roberts 閾值=0.02')

29、subplot(2,2,3),imshow(c) ,axis on;title('roberts 閾值=0.07') subplot(2,2,4),imshow(d) ,axis on; title('默認') (低頻成分豐富的圖像)結論:通過上述圖像比較,不難看出閾值越小,方差越小,圖像邊緣越輪廓清晰。Roberts算子法對高頻成分豐富的圖像處理效果好,對中低頻成分的圖像效果差。4.2.5 Log算子Log 算法是基于二階導數的邊緣檢測,這種方法是將高斯平滑濾波器和拉普拉斯銳化濾波器結合了起來,先平滑掉噪聲,再進行邊緣檢測。它是對圖像進行濾波和微分的過程,是利用旋轉對稱的 Log模板與圖像做卷積,確定濾波器輸出的零交叉位置。源程序如下: (高頻成分豐富的圖像)i= imread('gantrycrane.png');%讀取圖像 a=rgb2gray(i);%彩圖變灰圖b = edge(a,'log',0.002,1.7); % 根據所指定的敏感度閾值thresh和標準偏差sigma(),用LOG算子進行邊緣檢測,默認時=2 c = edge(a,'log',0.007,1.7); % =3 d = edge(a,'log',0.00

溫馨提示

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

評論

0/150

提交評論