2012-03-16 32 views
0

我正在做這給用戶過濾的灰度圖像(具有卷積但沒有尋找邊緣)的可能性使用MATLAB(2011)的一個項目。我知道邊緣有[邊緣]函數,並且我知道對於某些運算符(如sobel),可以使用[fspecial]來獲取矩陣。MATLAB中的Canny算子矩陣:如何實現/獲取? (只是篩選,沒有邊緣檢測器)

我發現對應每一個操作員,我需要一個矩陣(或多個):索貝爾,羅伯茨,羅賓遜,拉普拉斯等..

然後我應用過濾器是這樣的:

Result_image = conv2(Original_image, matrix_filter); 

但是我找不到一個Canny算子...

我讀到,canny是在應用拉普拉斯算子開始的varius步驟中實現的。但是呢?以下步驟是什麼?我怎樣才能讓矩陣適用於圖像?

我在尋找矩陣,或一種方式來獲得它或至少一個例子來理解「多步程序」。

我發現告訴步驟獲得的邊緣運營商實施的頁面。什麼是僅僅過濾的步驟? (導數X,導數Y,梯度,非最大抑制,滯後)。該頁面是Canny Edge Detector(由米克爾羅德里格斯)。

+0

你有權訪問圖像處理工具箱嗎? canny探測器在那裏可用。 – 2012-03-16 19:21:38

+0

你是指功能邊緣('canny')還是其他什麼?關鍵是我不能申請緣(因爲它要求剛剛過濾灰度圖像,而不是將其過濾) – dragonmnl 2012-03-16 19:22:46

+0

是,在http://www.mathworks.fr/help/toolbox/images/ref/ edge.html – 2012-03-16 19:24:59

回答

1

正如你指出的,Canny邊緣檢測是算法不是一個過濾器。這意味着您無法擁有「Canny」過濾器。

讓我們看看參與算法(WikipediaOpenCV implementation)中的步驟:

  • 梯度圖像的

    1. 高斯濾波(使用高斯濾波器)(使用一些其它邊緣過濾器例如Sobel濾波器)
    2. 非最大supression(無過濾器參與)
    3. 閾值(沒有過濾器參與)

    正如你看到的,有沒有坎尼過濾行不通的,所以恐怕你不能得到這樣的過濾器。