0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何同時使用Canny和 Sobel邊緣檢測器檢測圖像中的邊緣

新機器視覺 ? 來源:古月居 ? 作者:古月居 ? 2022-11-18 14:24 ? 次閱讀

在圖像中,邊緣是一條曲線,其走勢與圖像中強度快速變化的路徑一致。邊緣通常與場景中目標的邊界相關(guān)聯(lián)。邊緣檢測用于確定圖像中的邊緣。

要尋找邊緣,您可以使用 edge 函數(shù)。此函數(shù)使用以下兩個標準之一來尋找圖像中強度迅速變化的位置:

強度的一階導(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 方法與其他邊緣檢測方法的不同之處在于,它使用兩種不同閾值(用于檢測強邊緣和弱邊緣),并且僅當弱邊緣連通到強邊緣時才在輸出中包括弱邊緣。

因此,這種方法不太可能受到噪聲的影響,更可能檢測到真正的弱邊緣。

檢測圖像中的邊緣

此示例說明如何同時使用 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');

代碼效果如下:

f6aa5c06-66f6-11ed-8abf-dac502259ad0.png

邊緣算法: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);

效果對比

f6b8ba9e-66f6-11ed-8abf-dac502259ad0.png

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測器
    +關(guān)注

    關(guān)注

    1

    文章

    847

    瀏覽量

    47560
  • 噪聲
    +關(guān)注

    關(guān)注

    13

    文章

    1099

    瀏覽量

    47281

原文標題:Matlab 圖像—邊緣檢測算法及效果演示

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    DSP國產(chǎn)教學(xué)實驗箱_實驗案例_操作教程:5-11 邊緣檢測

    的噪聲不應(yīng)產(chǎn)生假的邊緣。 為了滿足這些要求,Canny使用了變分法。Canny檢測器的最優(yōu)函數(shù)使用四個指數(shù)項的和來描述,它可以由高斯函數(shù)的
    發(fā)表于 07-19 10:38

    圖像邊緣檢測系統(tǒng)的設(shè)計流程

    圖像邊緣檢測系統(tǒng)的設(shè)計流程是一個涉及多個步驟的復(fù)雜過程,它旨在從圖像中提取出重要的結(jié)構(gòu)信息,如邊界、輪廓等。這些邊緣信息對于
    的頭像 發(fā)表于 07-17 16:39 ?199次閱讀

    opencv圖像識別有什么算法

    圖像識別算法: 邊緣檢測邊緣檢測圖像識別的基
    的頭像 發(fā)表于 07-16 10:40 ?374次閱讀

    基于FPGA的實時邊緣檢測系統(tǒng)設(shè)計,Sobel圖像邊緣檢測,F(xiàn)PGA圖像處理

    進行 Sobel 邊緣檢測并送入 VGA 顯示,通過獨立按鍵可以切換顯示模式和設(shè)定邊緣檢測閾值。 2
    發(fā)表于 05-24 07:45

    算法系列:基于 FPGA 的圖像邊緣檢測系統(tǒng)設(shè)計(sobel算法)

    [8:3]; 五、sobel 邊緣檢測 邊緣檢測的原理 該算子包含兩組 3x3 的矩陣,分別為橫向及縱向,將之與
    發(fā)表于 03-26 16:40

    OpenCV邊緣檢測算子Laplace、LoG詳解

    一階導(dǎo)數(shù)算子(例如 Sobel 算子)通過對圖像求導(dǎo)來確定圖像邊緣,數(shù)值絕對值較高的點對應(yīng)了圖像邊緣
    的頭像 發(fā)表于 12-21 16:34 ?1618次閱讀
    OpenCV<b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>算子Laplace、LoG詳解

    國產(chǎn)嵌入式實驗箱操作教程_創(chuàng)龍教儀:5-12 邊緣檢測(LCD顯示)

    的情況下,圖像的噪聲不應(yīng)產(chǎn)生假的邊緣。 為了滿足這些要求,Canny使用了變分法。Canny檢測器
    發(fā)表于 12-14 14:09

    圖像處理算法——邊緣檢測

    基于邊緣檢測的分析不易受整體光照強度變化的影響,同時利用邊緣信息容易凸顯目標信息和達到簡化處理的目的,因此很多圖像理解方法都以
    的頭像 發(fā)表于 11-30 16:56 ?760次閱讀
    <b class='flag-5'>圖像</b>處理算法——<b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>

    Canny雙閾值邊緣檢測和弱邊緣連接詳解

    在上一篇FPGA圖像處理--Canny邊緣檢測(一)里介紹了Canny邊緣
    的頭像 發(fā)表于 11-18 17:07 ?1956次閱讀

    python中用Canny邊緣檢測和霍夫變實現(xiàn)車道線檢測方法

    Canny邊緣檢測+霍夫變換 顏色閾值+圖像掩模的方法雖然簡單,但是只能應(yīng)對一些固定顏色車道線的場景。圖像像素受光照影響將是一個極其常見的問
    的頭像 發(fā)表于 11-17 16:55 ?677次閱讀
    python中用<b class='flag-5'>Canny</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>和霍夫變實現(xiàn)車道線<b class='flag-5'>檢測</b>方法

    FPGA圖像處理之Canny邊緣檢測

    邊緣檢測算法里面Sobel是比較簡單的一個算法,但是其檢測出來的邊緣往往是比較粗的,效果不是很好,因為我們最理想的
    的頭像 發(fā)表于 11-17 09:10 ?1309次閱讀
    FPGA<b class='flag-5'>圖像</b>處理之<b class='flag-5'>Canny</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>

    OpenCV圖像處理之圖像梯度+Canny邊緣檢測

    了解了Sobel和Scharr高通濾波的內(nèi)核,我們再來看看cv.Sobel()和cv.Scharr()函數(shù)的參數(shù),cv.Sobel(img,cv.CV_64F,dx,dy,ksize
    的頭像 發(fā)表于 11-14 15:54 ?412次閱讀
    OpenCV<b class='flag-5'>圖像</b>處理之<b class='flag-5'>圖像</b>梯度+<b class='flag-5'>Canny</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>

    以下是一個簡單的OpenCV矩形檢測代碼示例,其中包括了Canny邊緣檢測和approxPolyDP多邊形擬合的步驟

    讀取了一張圖像,并將其轉(zhuǎn)換為灰度圖像。然后使用Canny邊緣檢測算子提取圖像
    發(fā)表于 11-01 09:28

    openCV邊緣檢測原理是什么?

    openCV是通過什么原理來實現(xiàn)邊緣檢測
    發(fā)表于 10-10 06:21

    迅為RK3568開發(fā)板Scharr濾波算子邊緣檢測

    ()函數(shù)展示 x 方向梯度邊緣檢測計算之后的圖像 8 scharry = cv2.Scharr(img,cv2.CV_64F,0,1) #使用 Sobel 算子進行
    發(fā)表于 10-09 11:03