2012-01-12 157 views
3

有沒有人可以幫我解釋 「邊緣點可能位於梯度的 模塊的最大值處,並且邊緣輪廓的方向與梯度方向正交。」圖像邊緣和漸變之間的關係是什麼?

+1

你學過數學(微積分)嗎?你知道什麼是漸變嗎? – leonbloy 2012-01-12 15:31:38

+0

是的,但我只是有一個漸變的基本概念。 – 2012-02-02 04:43:22

回答

14

Paul R給了你一個答案,所以我只是添加一些圖像來幫助表達觀點。

在圖像處理中,當我們提到「漸變」時,我們通常意味着一系列像素的亮度變化。您可以使用軟件(如GIMP或Photoshop)創建漸變圖像。

下面是從黑色(左側)的線性梯度的一個例子,以白色(右側):

linear gradient

梯度是「線性」的含義是,在強度的變化成正比之間的距離像素。這個特定的漸變是平滑的,我們不會說這個圖像中存在「邊緣」。

如果我們繪製梯度對X位置(從左至右)的亮度,我們得到了一個情節,看起來像這樣:

plot of linear gradient

下面是一個對象的例子在後臺。邊緣有點模糊,但這在真實物體的圖像中很常見。像素亮度不會從一個像素到另一個像素從黑色變爲白色:存在包含灰度陰影的漸變。這並不明顯,因爲您通常必須放大照片才能看到模糊的邊緣。

black box on white background

在圖像處理中,我們可以通過查看急劇過渡(銳梯度)從一個亮度到另一個找到的那些邊緣。如果我們放大那個盒子的左上角,我們可以看到只有幾個像素從白色到黑色的過渡。這種轉變也是一種漸變。區別在於漸變位於兩個恆定顏色區域之間:左側爲白色,右側爲黑色。

zoomed corner of box

紅色箭頭顯示了從背景到前景的梯度的方向:像素左側的光,如我們在+ x方向移動的像素變暗。如果我們繪製沿着箭頭採樣的亮度,我們會得到如下圖所示的內容,紅色方塊表示特定像素的亮度。的變化是不是線性的,而是會看起來像一個鐘形曲線的一側:

plot of edge

藍色線段是曲線的斜率的粗略近似在最陡。 「真實」邊緣點是斜率沿對應於物體邊緣的梯度最陡峭的點。

可以使用水平和垂直Sobel濾波器計算梯度幅度和方向。然後,可以計算出梯度的方向:

gradientAngle =反正切(gradientY/gradientX)

梯度將是最陡峭的,當它是垂直於物體的邊緣。

如果您查看一些真實場景的黑白圖像,可以放大,查看各個像素值,並瞭解這些原理如何應用。

+0

非常感謝您的詳細解答。我想開發一個血細胞計數系統,您能告訴我我應該學什麼以及它的過程是什麼? – 2012-02-02 09:36:30

+0

我想你會得到一個很好的圖像處理教科書,例如岡薩雷斯和伍茲(第3版)的**數字圖像處理**。你可以在網上找到關於圖像處理的信息,但是有一本教科書會有很大的幫助。要了解不同算法的工作原理,可以下載ImageJ(http://rsbweb.nih.gov/ij/)。這將允許您立即開始處理示例圖像。一旦你知道使用什麼算法,你可以瞭解這些算法,實現它們,並做出必要的改變。學習圖像處理需要時間。祝你好運! – Rethunk 2012-02-03 03:10:00

3

對象邊緣通常會導致強度的階躍變化。因此,如果您採用強度的導數,那麼它將在邊緣處具有較大(正值或負值)值,而其他值則較小。如果你能確定最陡的梯度方向,那麼它將與物體邊緣成直角(正交)。

+0

非常感謝您的詳細解答。我想開發一個血細胞計數系統,您能告訴我應該學什麼以及它的過程是什麼? – 2012-02-02 09:39:48

+1

聽起來好像你需要先閱讀一些關於**圖像處理**和**計算機視覺**的好書。你可能也想看看OpenCV。 – 2012-02-02 09:59:58

相關問題