2019年5月14日 星期二

s1043339的作業4

一、作業說明:

      利用你所學的顏色的知識,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。 

二、實作環境:

  • anaconda + python3.7 
  • opencv 3.4
、執行結果:
        

、過程說明

        以YCrCb的部分對圖片去進行處理->
        將圖片讀入後只針對其Cr和Cb部分進行處理->
        處理方式為Otsu的方式->
        
        Otsu方法說明:
                                
先計算影像的直方圖
                                   把直方圖強度大於閾值的像素分成一組,把小於閾值的像素分成另一組。
                                   分別計算這兩組的組內變異數,並把兩個組內變異數相加。
                                   將0~255依序當作閾值來計算組內變異數和,總和值最小的就是結果閾值。

        考慮兩個值(Cr和Cb)的範圍後對應其閥值做skin的二值化->
        最後利用得到的skin遮罩將其疊加在原圖上進行輸出
        

  、遇到問題
          其閥值range的挑選要多少
          以及對應皮膚較黑的人或是相近於批膚色的東西(沙灘),效果不是那麼的明顯
 

       

沒有留言:

張貼留言