2010年1月16日 星期六

HW7 - 邊緣偵測 (Sobel operator)。

  嗯,這次的作業是把一張圖片做邊緣偵測,也就是把圖片顏色梯度變化最大的地方顯現出來。實作的方法有很多種,而我是使用兩個Sobel operator的運算遮罩(一個是對x方向作用;一個是對y方向作用)來跟圖片做運算後取絕對值相加,這個方法可以讓出來的結果比較精準。而兩個Sobel operator的運算係數值如下:

對x方向作用↓


對y方向作用↓


我用的公式↓

-------------------------------------------------
M(x,y) : (x,y)這點的梯度大小。
gx : 圖片的值與對x方向作用的sobel遮罩運算結果。
gy : 圖片的值與對y方向作用的sobel遮罩運算結果。
-------------------------------------------------

  這次又是因為遲到沒有聽到老師的講解,一開始當然是找陪我走過一學期的課本啦,但課本的內容並不是描述的很通順(?),在加上一拖拉庫的公式就先昏了,所以進而求救於浩瀚的宇宙,喔不,是無邊的網路。我找到了一些關於Sobel的基本定義和比較清楚的數學函意講解,在我的實作過程中都有幫助到。程式撰寫方面跟上次的作業差不多,要注意的地方就是彩色和灰階所使用的矩陣個數不同(使用channel方式也可),彩色的RGB排列方式...等,以上就簡略帶過,而套用完公式後,還要再經過一些微調,才會使邊緣更清楚俐落。那廢話不多說,來看我的實作結果吧!

彩色原圖↓


彩色圖片邊緣偵測↓


灰階原圖↓


灰階圖片邊緣偵測↓


以上就是我的實作結果,光是找圖就花了不少時間呀(汗),不過努力沒有白費,最後做出了滿意的成果!

補充 :
  後來把SUBARU 的Impreza跑車轉成灰階圖片去跑邊緣偵測,覺得也滿漂亮的~給大家參考一下嚕。

灰階Impreza原圖↓


灰階Impreza邊緣偵測↓

2 則留言:

  1. 出來的結果很漂亮
    影像很單純的關係

    回覆刪除
  2. 可以請教您彩色部分的調整該怎麼做呢?
    SUBARU彩圖的邊緣偵測效果實在太驚艷了。

    回覆刪除