Student: 孫于婷 Student ID: 498410095 照片處理器 Student: 孫于婷 Student ID: 498410095
Outline Motivation Introduction Method Limit Demo Histogram Equalization Spatial Filtering Image Enhancement Edge Detection Limit Demo Reference and Appendix
Motivation 我們可以藉由一些技巧對照片做處理,使一些狀況 不好的照片(過亮、過暗、雜訊等等),經過處理後 能呈現比較好的結果。 因此我就想結合多個影像處理的技術,做一個照片 處理器。
Introduction 作業環境與相關工具:Visual Studio 2012 在我的照片處理器中實作了以下幾種功能: Histogram Equalization (Global / Local) Spatial Filtering (Averaging filter / Median filter) Image Enhancement (histogram equalization / HSI) Edge Detection ( Sobel operators / LoG filter)
介面
Method Histogram Equalization Spatial Filtering Image Enhancement -增加照片顏色對比 Spatial Filtering -過濾照片雜訊 Image Enhancement -增強彩色照片對比 Edge Detection -照片物體邊緣偵測
Histogram Equalization Step1: 先算出圖片各像素出現個數 Step2: 個別將像素除以(圖的長*寬),取得個別機率 Step3: 再算出新的機率值=目前項之前的累加機率 Step4: 再將每個值都乘以255,得到一個新的值 Step5: 最後把值存回去,就完成Histogram Equalization了。 Global與Local的差別: Global是對一整張圖做Histogram Equalization。 Local 是先把圖切成16等分,再對每等分做Histogram Equalization。
Histogram Equalization 成果 原圖 Global Local
Spatial Filtering 利用3x3的mask對圖片做處理,達到除去雜訊的目 的。 方法: Averaging filter和Median filter Averaging filter 針對圖片中每個像素的灰階值和圍繞在 它周圍的像素(8個點),求平均值做為新值。 Median filter 針對圖片中每個像素的灰階值和圍繞在它 周圍的像素(8個點),取中間值做為新值。 Averaging filter: Z5=(Z1+Z2+Z3+…+Z8+Z9)/9 Median filter: Z5=Z1~Z9排序後取中間值
Spatial Filtering 成果 原圖 Averaging filter Median filter
Image Enhancement Color image enhancement: 分別對R,G,B做Histogram Equalization 。 HSI: 影像從原本的RGB space轉成HSI space,在HIS space上, 分別對Saturation以及Intensity做Histogram equalization,之 後再轉回原本的RGB space。
HSI Step1: 將原圖的RGB值域轉成HSI Step2: θ= cos-1{ ( 0.5*[(R-G)+(R-B)] ) / ( [(R-G)*(R-G)+(R-B)*(G- B)]0.5 ) } Step3: H: HSI[x, y, 0] = (B > G) ? (360 - angle) : angle; S: min = Math.Min(Math.Min(R, G), B); HSI[x, y, 1] = 1 - (3 * min)/(R + G + B); I: HSI[x, y, 2]=(R+G+B)/3 Step4: 對I做Histogram Equalization,並且不能更動到H Step5: 再將HSI值域轉回RGB值域
Image Enhancement 成果 原圖 Histogram HSI
Edge Detection Sobel operators / LoG filter Sobel operators : 利用3x3 map,分別做四個方向(0、45、90、135) G0 = (Z7 + 2Z8 + Z9) - (Z1 + 2Z2 + Z3) G45 = (Z2 + 2Z3 + Z6) - (Z4 + 2Z7 + Z8) G90 = (Z3 + 2Z6 + Z9) - (Z1 + 2Z4 + Z7) G135 = (Z6 + 2Z9 + Z8) - (Z2 + 2Z1 + Z4) ▽f = |G0| + |G45| + |G90| + |G135| <=將做完的四個方向取絕 對值相加
Edge Detection LoG filter 並加上threadshold 利用5x5 map執行LoG ▽2f = 16Z13 – 2(Z8 + Z12 + Z14 + Z18) – (Z3 + Z7 + Z9 + Z11 + Z15 + Z17 + Z19 + Z23) 並加上threadshold 將影像分割成各個特殊屬性的區域,可用於判定影像的邊緣點 灰階值為+者(> 0)調為255 <=白色 灰階值為-者(< 0)調為0 <=黑色
Edge Detection 成果 原圖 Sobel operators
Edge Detection 成果 原圖 LoG threadshold LoG
Discussion Histogram Equalization Spatial Filtering 將原本集中在某區塊的機率函數平均分布在所有顏色上,可以增加圖 片的對比,讓圖片更清晰。我覺得Global approach的視覺效果比 Local approach好,Local approach對每個小區塊分別做處理,會造 成結果圖呈現一格一格的感覺,而Global approach是對一整張圖處理, 所以顏色會比較均勻也比較好看。 Spatial Filtering 在處理Random noise圖檔時,Averaging filter和Median filter沒有顯著的差異,而且產生的圖片都會變得比較模糊,而 在處理pepper and salt noise時,覺得Median filter的效 果 好很多,不會有黑斑殘留。因為Averaging filter會把雜訊也考 慮進去,而Median filter會避開它,所以Median filter的效果 會比較好。
Discussion Image Enhancement Edge Detection 兩張彩色的原圖,做完Histogram後的結果很像,而做完HSI後, 第一張原圖做完後有變鮮豔,第二張原圖做完則比原圖清楚。 *HSI要注意度數和弧度的轉換(度數 = 弧度 * 180o / π) 另外就是最後像素值要介於0~255,但在做轉換時,若超過 255,我就把它等於255,若小於0,則讓它等於0。 Edge Detection 在Sobel operators的部分我做了把四個方向(0、45、90、135) 加起來。 由實驗結果發現,Log對處理雜訊比較敏銳,能比較明顯的找 出許多邊線,而加了threshold處理的LoG更加明顯,而相較之 下Sobel operators對雜訊較不敏感。
Limit 對照片的處理效果有的是會累加的,所以要使用不 同處理效果時,重新load圖片進去會比較好。
Demo Youtube link: http://youtu.be/WGYD_qTbdHo demo影片
Reference and Appendix Histogram Equalization http://www.cs.mcu.edu.tw/~s0170234/ip/ip5.htm http://bouwhat.pixnet.net/blog/post/22814961- %E7%9B%B4%E6%96%B9%E5%9C%96%E5%9D%87%E5%8C%96(histogram-equalization) 彩色影像處理中文版slide http://nova.bime.ntu.edu.tw/~ttlin/Course01/lecture_notes/C1_LECTURE_NOTE_06(2 %20in%201).pdf RGB to HSI http://www.wretch.cc/blog/davidyeh/10804161
Thank you ~