【Matlab 图像】边缘检测算法及效果演示
【Matlab 圖像】邊緣檢測(cè)算法及效果演示
- 邊緣檢測(cè)
- 檢測(cè)圖像中的邊緣
- Matlab 代碼
- 代碼效果如下
- 邊緣算法:robert
- 邊緣算法:sobel prewitt
- 邊緣算法:laplacian
- 邊緣算法:log
- 邊緣算法:canny
- 效果對(duì)比
邊緣檢測(cè)
在圖像中,邊緣是一條曲線,其走勢(shì)與圖像中強(qiáng)度快速變化的路徑一致。邊緣通常與場(chǎng)景中目標(biāo)的邊界相關(guān)聯(lián)。邊緣檢測(cè)用于確定圖像中的邊緣。
要尋找邊緣,您可以使用 edge 函數(shù)。此函數(shù)使用以下兩個(gè)標(biāo)準(zhǔn)之一來(lái)尋找圖像中強(qiáng)度迅速變化的位置:
- 強(qiáng)度的一階導(dǎo)數(shù)的模大于某個(gè)閾值的位置
- 強(qiáng)度的二階導(dǎo)數(shù)有過(guò)零點(diǎn)的位置
edge 提供幾個(gè)導(dǎo)數(shù)估算器,其中每個(gè)都實(shí)現(xiàn)以下定義之一。對(duì)于其中一些估算器,您可以指定運(yùn)算是否應(yīng)對(duì)水平邊緣、垂直邊緣敏感或?qū)烧叨济舾小dge 返回二值圖像,其中包含的 1 對(duì)應(yīng)于找到邊的位置,0 對(duì)應(yīng)于其他位置。
edge 提供的最強(qiáng)大的邊緣檢測(cè)方法是 Canny 方法。Canny 方法與其他邊緣檢測(cè)方法的不同之處在于,它使用兩種不同閾值(用于檢測(cè)強(qiáng)邊緣和弱邊緣),并且僅當(dāng)弱邊緣連通到強(qiáng)邊緣時(shí)才在輸出中包括弱邊緣。因此,這種方法不太可能受到噪聲的影響,更可能檢測(cè)到真正的弱邊緣。
檢測(cè)圖像中的邊緣
此示例說(shuō)明如何同時(shí)使用 Canny 邊緣檢測(cè)器和 Sobel 邊緣檢測(cè)器來(lái)檢測(cè)圖像中的邊緣。
讀取圖像并顯示它。
Matlab 代碼
I = imread('coins.png'); imshow(I); % 將 Sobel 和 Canny 邊緣檢測(cè)器同時(shí)應(yīng)用于圖像,并顯示它們以進(jìn)行比較。 BW1 = edge(I,'sobel'); BW2 = edge(I,'canny'); figure; imshowpair(BW1,BW2,'montage') title('Sobel Filter Canny Filter');代碼效果如下
From: 邊緣檢測(cè)
邊緣算法:robert
邊緣定位精度較高,對(duì)于陡峭邊緣且噪聲低的圖像效果較好,但沒有進(jìn)行平滑處理,沒有抑制噪聲的能力。
BW1=edge(Img,'Roberts',0.16);邊緣算法:sobel prewitt
進(jìn)行了平滑處理,對(duì)噪聲具有一定抑制能力,但容易出現(xiàn)多像素寬度。
BW2=edge(Img,'Sobel',0.16); BW3=edge(Img,'Prewitt',0.16);邊緣算法:laplacian
對(duì)噪聲較為敏感,使噪聲能力成分得到加強(qiáng),容易丟失部分邊緣方向信息,造成一些不連續(xù)的檢測(cè)邊緣,同時(shí)抗噪聲能力較差。
邊緣算法:log
抗噪聲能力較強(qiáng),但會(huì)造成一些尖銳的邊緣無(wú)法檢測(cè)到。
BW5=edge(Img,'LOG',0.16);邊緣算法:canny
最優(yōu)化思想的邊緣檢測(cè)算子,同時(shí)采用高斯函數(shù)對(duì)圖像進(jìn)行平滑處理,但會(huì)造成將高頻邊緣平滑掉,造成邊緣丟失,采用雙閾值算法檢測(cè)和連接邊緣。
BW6=edge(Img,'Canny',0.16);效果對(duì)比
From: 【matlab 圖像處理】五種邊緣檢測(cè)算法比較
還有一篇更加偏向于原理講解的文章:圖像邊緣檢測(cè)及提取方法總結(jié)(含Matlab代碼)
數(shù)字圖像處理:邊緣檢測(cè)(Edge detection)
邊緣檢測(cè)matlab算法匯總
總結(jié)
以上是生活随笔為你收集整理的【Matlab 图像】边缘检测算法及效果演示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数理知识】第9章-树-《离散数学及其应
- 下一篇: 【Matlab 图像】滤波器原理使用及测