freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于matlab的數(shù)字圖像邊緣檢測算法研究(編輯修改稿)

2024-09-06 18:42 本頁面
 

【文章內(nèi)容簡介】 調(diào)試速度快,需要學習時間少。人們用任何一種語言編寫程序和調(diào)試程序一般都要經(jīng)過四個步驟:編輯、編譯、連接以及執(zhí)行和調(diào)試。各個步驟之間是順序關(guān)系,編程的過程就是在它們之間作瀑布型的循環(huán)。Matlab語言與其它語言相比,較好地解決了上述問題,把編輯、編譯、連接和執(zhí)行融為一體。它能在同一畫面上進行靈活操作快速排除輸入程序中的書寫錯誤、語法錯誤以至語意錯誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說在編程和調(diào)試過程中它是一種比VB還要簡單的語言。具體地說,Matlab運行時,如直接在命令行輸入Mailab語句(命令),包括調(diào)用M文件的語句,每輸入一條語句,就立即對其進行處理,完成績譯、連接和運行的全過程。又如,將Matlab源程序編輯為M文件,由于Mat1ab磁盤文件也是M文件,所以編輯后的源文件就可直接運行,而不需進行編譯和連接。在運行M文件時,如果有錯,計算機屏幕上會給出詳細的出鍺信息,用戶經(jīng)修改后再執(zhí)行,直到正確為止。所以可以說,Mat1ab語言不僅是一種語言,廣義上講是一種該語言開發(fā)系統(tǒng),即語言調(diào)試系統(tǒng)。(3)擴充能力強 高版本的Matlab語言有豐富的庫函數(shù),在進行復雜的數(shù)學運算時可以直接調(diào)用,而且Matlab的庫函數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為Matlab的庫函數(shù)來調(diào)用。因而,用戶可以根據(jù)自己的需要方便地建立和擴充新的庫函數(shù),以便提高Matlab使用效率和擴充它的功能。另外,為了充分利用Fortran、C等語言的資源,包括用戶已編好的Fortran,C語言程序,通過建立Me調(diào)文件的形式,混合編程,方便地調(diào)用有關(guān)的Fortran,C語言的子程序。(4)語句簡單,內(nèi)涵豐富Mat1ab語言中最基本最重要的成分是函數(shù),其一般形式為[a,b,c……]=fun(d,e,f,……),即一個函數(shù)由函數(shù)名,輸入變量d,e,f,……和輸出變量a,b,c……組成,同一函數(shù)名F,不同數(shù)目的輸入變量(包括無輸入變量)及不同數(shù)目的輸出變量,代表著不同的含義(有點像面向?qū)ο笾械亩鄳B(tài)性。這不僅使Matlab的庫函數(shù)功能更豐富,而大大減少了需要的磁盤空間,使得Matlab編寫的M文件簡單、短小而高效。(5)高效方便的矩陣和數(shù)組運算Matlab語言象Basic、Fortran和C語言一樣規(guī)定了矩陣的算術(shù)運算符、關(guān)系運算符、邏輯運算符、條件運算符及賦值運算符,而且這些運算符大部分可以毫無改變地照搬到數(shù)組間的運算,有些如算術(shù)運算符只要增加“”就可用于數(shù)組間的運算,另外,它不需定義數(shù)組的維數(shù),并給出矩陣函數(shù)、特殊矩陣專門的庫函數(shù),使之在求解諸如信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領(lǐng)域的問題時,顯得大為簡捷、高效、方便,這是其它高級語言所不能比擬的。在此基礎(chǔ)上,高版本的Matlab已逐步擴展到科學及工程計算的其它領(lǐng)域。因此,不久的將來,它一定能名符其實地成為“萬能演算紙式的”科學算法語言。(6)方便的繪圖功能Matlab的繪圖是十分方便的,它有一系列繪圖函數(shù)(命令),例如線性坐標、對數(shù)坐標,半對數(shù)坐標及極坐標,均只需調(diào)用不同的繪圖函數(shù)(命令),在圖上標出圖題、XY軸標注,格(柵)繪制也只需調(diào)用相應(yīng)的命令,簡單易行。另外,在調(diào)用繪圖函數(shù)時調(diào)整自變量可繪出不變顏色的點、線、復線或多重線。這種為科學研究著想的設(shè)計是通用的編程語言所不及的??傊?,Matlab語言的設(shè)計思想可以說代表了當前計算機高級語言的發(fā)展方向,在不斷使用中,人們會發(fā)現(xiàn)它的巨大潛力[18]。 一階微分算法的實驗結(jié)果與分析 實驗程序清單Roberts算子程序:clcclear allclose allA = imread(39。39。)。 % 讀入圖像imshow(A)。title(39。原圖39。)。x_mask = [1 0。0 1]。 % 建立X方向的模板y_mask = rot90(x_mask)。 % 建立Y方向的模板I = im2double(A)。 % 將圖像數(shù)據(jù)轉(zhuǎn)化為雙精度dx = imfilter(I, x_mask)。 % 計算X方向的梯度分量dy = imfilter(I, y_mask)。 % 計算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy)。 % 計算梯度grad = mat2gray(grad)。 % 將梯度矩陣轉(zhuǎn)換為灰度圖像level = graythresh(grad)。 % 計算灰度閾值BW = im2bw(grad,level)。 % 用閾值分割梯度圖像figure, imshow(BW)。 % 顯示分割后的圖像即邊緣圖像title(39。Roberts39。)Prewitt算子程序:clcclear allclose allA = imread(39。39。)。 % 讀入圖像imshow(A)。title(39。原圖39。)。y_mask = [1 1 1。0 0 0。1 1 1]。 % 建立Y方向的模板x_mask = y_mask39。 % 建立X方向的模板I = im2double(A)。 % 將圖像數(shù)據(jù)轉(zhuǎn)化為雙精度dx = imfilter(I, x_mask)。 % 計算X方向的梯度分量dy = imfilter(I, y_mask)。 % 計算Y方向的梯度分量grad = sqrt(dx.*dx + dy.*dy)。 % 計算梯度grad = mat2gray(grad)。 % 將梯度矩陣轉(zhuǎn)換為灰度圖像level = graythresh(grad)。 % 計算灰度閾值BW = im2bw(grad,level)。 % 用閾值分割梯度圖像figure, imshow(BW)。 % 顯示分割后的圖像即邊緣圖像title(39。Prewitt39。) Kirsch算子程序clcclear allclose allA = imread(39。39。)。 % 讀入圖像imshow(A)。title(39。原圖39。)。mask1=[3,3,3。3,0,5。3,5,5]。 % 建立方向模板mask2=[3,3,5。3,0,5。3,3,5]。mask3=[3,5,5。3,0,5。3,3,3]。mask4=[3,3,3。3,0,3。5,5,5]。mask5=[5,5,5。3,0,3。3,3,3]。mask6=[3,3,3。5,0,3。5,5,3]。mask7=[5,3,3。5,0,3。5,3,3]。mask8=[5,5,3。5,0,3。3,3,3]。I = im2double(A)。 % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度d1 = imfilter(I, mask1)。 % 計算8個領(lǐng)域的灰度變化d2 = imfilter(I, mask2)。d3 = imfilter(I, mask3)。d4 = imfilter(I, mask4)。d5 = imfilter(I, mask5)。d6 = imfilter(I, mask6)。d7 = imfilter(I, mask7)。d8 = imfilter(I, mask8)。dd = max(abs(d1),abs(d2))。 % 取差值變化最大的元素組成灰度變化矩陣dd = max(dd,abs(d3))。dd = max(dd,abs(d4))。dd = max(dd,abs(d5))。dd = max(dd,abs(d6))。dd = max(dd,abs(d7))。dd = max(dd,abs(d8))。grad = mat2gray(dd)。 % 將灰度變化矩陣轉(zhuǎn)化為灰度圖像level = graythresh(grad)。 % 計算灰度閾值BW = im2bw(grad,level)。 % 用閾值分割梯度圖像figure, imshow(BW)。 % 顯示分割后的圖像,即邊緣圖像title(39。Kirsch39。) 實驗結(jié)果以cameraman圖片為例,分別用Roberts、Prewitt和Kirsch三種算法,在無噪聲(圖11)和有高斯白噪聲(圖12)的環(huán)境下,分別給檢測結(jié)果。圖11對未加噪聲圖片的檢測結(jié)果圖12 對加入高斯白噪聲圖片的檢測結(jié)果 實驗結(jié)果分析通過圖11和圖12知,在圖像沒有噪聲的情況下,Roberts算子、Prewitt算子、Kirsch算子,都能夠比較準確的檢測出圖像的邊緣。加入高斯白噪聲后,三種邊緣檢測算子的邊緣檢測效果都多少受到噪聲的干擾,檢測出大量的噪聲點和偽邊緣,甚至無法檢測出邊緣。Roberts算子受噪聲的影響最大,Kirsch算子、Prewitt算子受噪聲影響比Roberts算子小。由于各種原因,圖像總是受到隨機噪聲的干擾,可以說噪聲無處不在。經(jīng)典的邊緣檢測方法由于引入了各種形式的微分運算,從而必然引起對噪聲的極度敏感,邊緣檢測的結(jié)果常常是把噪聲當作邊緣點檢測出來,而真正的邊緣也由于受到噪聲干擾而沒有檢測出來。對于有噪聲圖像來說,一種好的邊緣檢測方法應(yīng)該具有良好的噪聲抑制能力,同時又有完備的邊緣保持特性。基于一階微分的邊緣檢測算子具有實現(xiàn)簡單、運算速度快等特點,但其檢測受噪聲的影響很大,檢測結(jié)果不可靠,不能準確判定邊緣的存在及邊緣的準確位置,造成這種情況的原因:(1)實際邊緣灰度與理想邊緣灰度值間存在差異,這類算子可能檢測出多個邊緣;(2)邊緣存在的尺度范圍各不相同,這類算子固定的大小不利于檢測出不同尺度上的所有邊緣;(3)對噪聲都比較敏感。 二階微分算法的實驗結(jié)果與分析 實驗程序清單Laplacian算子程序:clcclear allclose allA = imread(39。39。)。 % 讀入圖像imshow(A)。title(39。原圖39。)。 mask=[0,1,0。1,4,1。0,1,0]。 % 建立模板I = im2double(A)。 % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度dx = imfilter(I, mask)。 % 計算梯度矩陣grad = mat2gray(dx)。 % 將梯度矩陣轉(zhuǎn)化為灰度圖像BW = im2bw(grad,)。 % 用閾值分割梯度圖像figure, imshow(BW)。 % 顯示分割后的圖像,即梯度圖像title(39。Laplacian39。)LoG算子程序:clcclear allclose allA = imread(39。39。)。 % 讀入圖像imshow(A)。title(39。原圖39。)。mask=[0,0,1,0,0。0,1,2,1,0。1,2,16,2,1。0,1,2,1,0。0,0,1,0,0]。 % 建立模板I = im2double(A)。 % 將數(shù)據(jù)圖像轉(zhuǎn)化為雙精度dx = imfilter(I, mask)。 % 計算梯度矩陣grad = mat2gray(dx)。 % 將梯度矩陣轉(zhuǎn)化為灰度圖像BW = im2bw(grad,)。 % 用閾值分割梯度圖像figure, imshow(BW)。 % 顯示分割后的圖像,即梯度圖像title(39。log39。)Canny算子程序:clcclear allclose allI = imread(39。39。)。 % 讀入圖像imshow(I)。title(39。原圖39。)BW1 = edge(I,39。canny39。)。 % 調(diào)用canny函數(shù)figure,imshow(BW1)。 % 顯示分割后的圖像,即梯度圖像title(39。Canny39。) 實驗結(jié)果以cameraman圖片為例,分別用Laplacian、LoG和Canny三種算法,在無噪聲(圖13)和有高斯白噪聲(圖14)的環(huán)境下,分別給檢測結(jié)果。圖13對未加噪聲圖片的檢測結(jié)果圖14 對加入高斯白噪聲圖片的檢測結(jié)果 實驗結(jié)果分析由圖13和圖14可以看出Laplacian算子:對圖像中的階躍性邊緣點定位準確,但是對噪聲非常敏感,丟失一部分邊緣的方向信息,造成一些不連續(xù)的檢測邊緣。LoG算子:首先用高斯函數(shù)進行濾波,然后使用Laplacian算子檢測邊緣,克服了Laplacian算子抗噪聲能力比較差的缺點,LoG算子中高斯函數(shù)中方差參數(shù)σ的選擇很關(guān)鍵,σ越大避免了虛假邊緣的檢出,邊緣也被平滑造成邊緣點的丟失。σ越小,噪聲抑制能力相對下降,容易出現(xiàn)虛假邊緣。Canny:采用高斯函數(shù)對圖像進行平滑處理,因此具有較強的噪聲抑制能力;同樣該算子也將一些高頻邊緣平滑掉,造成邊緣丟失,采用了雙閾值算法檢測和連接邊緣,邊緣的連續(xù)性較好。Laplacian算子是對二維函數(shù)進行運算的二階導數(shù)算子,與方向無關(guān),對取向不敏感,因而計算量要小。根據(jù)邊緣的特性,Laplacian算子可以作為邊緣提取算子,計算數(shù)字圖像的Laplacian值可以借助模板實現(xiàn),但是它對噪聲相當敏感,它相當于高通濾波,常會出現(xiàn)一些虛假邊緣。因此,Marr提出首先對圖像用Gauss函數(shù)進行平滑,然后利用Laplacian算子對平滑的圖像求二階導數(shù)后得到的零交叉點作為候選邊緣,這就是LoG算子。LoG算子就是對圖像進行濾波和微分的過程,是利用旋轉(zhuǎn)對稱的LoG模板與圖像做卷積,確定濾波器輸出的零交叉位置。Canny算子是一個
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1