在圖像中,邊緣是一條曲線,其走勢與圖像中強度快速變化的路徑一致。邊緣通常與場景中目標(biāo)的邊界相關(guān)聯(lián)。邊緣檢測用于確定圖像中的邊緣。
要尋找邊緣,您可以使用 edge 函數(shù)。此函數(shù)使用以下兩個標(biāo)準(zhǔn)之一來尋找圖像中強度迅速變化的位置:
強度的一階導(dǎo)數(shù)的模大于某個閾值的位置
強度的二階導(dǎo)數(shù)有過零點的位置
edge 提供幾個導(dǎo)數(shù)估算器,其中每個都實現(xiàn)以下定義之一。
對于其中一些估算器,您可以指定運算是否應(yīng)對水平邊緣、垂直邊緣敏感或?qū)烧叨济舾小?/p>
edge 返回二值圖像,其中包含的 1 對應(yīng)于找到邊的位置,0 對應(yīng)于其他位置。
edge 提供的最強大的邊緣檢測方法是 Canny 方法。Canny 方法與其他邊緣檢測方法的不同之處在于,它使用兩種不同閾值(用于檢測強邊緣和弱邊緣),并且僅當(dāng)弱邊緣連通到強邊緣時才在輸出中包括弱邊緣。
因此,這種方法不太可能受到噪聲的影響,更可能檢測到真正的弱邊緣。
檢測圖像中的邊緣
此示例說明如何同時使用 Canny 邊緣檢測器和 Sobel 邊緣檢測器來檢測圖像中的邊緣。
Matlab 代碼
I = imread('coins.png'); imshow(I); % 將 Sobel 和 Canny 邊緣檢測器同時應(yīng)用于圖像,并顯示它們以進行比較。 BW1 = edge(I,'sobel'); BW2 = edge(I,'canny'); figure; imshowpair(BW1,BW2,'montage') title('Sobel Filter Canny Filter');
代碼效果如下:
邊緣算法:robert
邊緣定位精度較高,對于陡峭邊緣且噪聲低的圖像效果較好,但沒有進行平滑處理,沒有抑制噪聲的能力。
BW1=edge(Img,'Roberts',0.16);
邊緣算法:sobel prewitt
進行了平滑處理,對噪聲具有一定抑制能力,但容易出現(xiàn)多像素寬度。
BW2=edge(Img,'Sobel',0.16); BW3=edge(Img,'Prewitt',0.16);
邊緣算法:laplacian
對噪聲較為敏感,使噪聲能力成分得到加強,容易丟失部分邊緣方向信息,造成一些不連續(xù)的檢測邊緣,同時抗噪聲能力較差。
邊緣算法:log
抗噪聲能力較強,但會造成一些尖銳的邊緣無法檢測到。
BW5=edge
邊緣算法:canny
最優(yōu)化思想的邊緣檢測算子,同時采用高斯函數(shù)對圖像進行平滑處理,但會造成將高頻邊緣平滑掉,造成邊緣丟失,采用雙閾值算法檢測和連接邊緣。
BW6=edge(Img,'Canny',0.16);
效果對比
審核編輯:郭婷
-
檢測器
+關(guān)注
關(guān)注
1文章
882瀏覽量
48281 -
噪聲
+關(guān)注
關(guān)注
13文章
1136瀏覽量
47796
原文標(biāo)題:Matlab 圖像—邊緣檢測算法及效果演示
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
基于FPGA的圖像邊緣檢測設(shè)計

AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測模型
《DNK210使用指南 -CanMV版 V1.0》第三十五章 image圖像特征檢測實驗
利用VLIB在TMS320C64x/64x+上實現(xiàn)Canny邊緣檢測

評論