1. 程式人生 > >Opencv學習之影象邊緣檢測

Opencv學習之影象邊緣檢測

該部落格只為記錄點滴所學,若有誤導,還請大家原諒,並不吝賜教。

         一直不太明白應用函式求導的方法能求出影象強度變化的邊緣,其實就是影象邊緣檢測。現在終於想通了,解釋如下。比如一張如下的圖片:


圖1

檢測邊緣可以檢測到狗和兔子的輪廓。因為它們的輪廓跟其周圍的畫素值強度差是很明顯的。那怎樣理解這個呢?我們先假設有一個一維的圖片,一維的圖片就是一條線。它可以如下表示:


圖2

橫軸表示畫素座標,縱軸表示畫素值。(如果不太好理解的話,我們可以對應二維圖片來理解,畫素座標就是諸如(x,y)這樣的值,只不過一維圖片只需一個值來表示畫素座標,這裡只需用t表示。畫素值是一樣理解的。)

再說回上面圖2那張圖片,可以看到在紅色圓圈處畫素值跳躍比較大。即在同樣的delta t區間裡,該處的畫素值變化最大。而此處的導數值也越大,趨於無窮。於是我們就可以將其看成是一維影象的邊緣。將其延伸到二維圖片,即我們所認知的看到的普通的圖片,也是一樣的道理。我們可以將其拆分成兩個軸向的一維圖片,然後組合起來。

         綜上,就解釋了為什麼求導可以得出一張圖片的邊緣。比如我們假設當導數超過一個限度之後,就認為它是邊緣,我們就把它的畫素值設為255,否則設為0.