2021年5月14日 星期五

s1071546 影像處理作業 4

作業說明:

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

Coding環境:

  • Windows 10 20H2
  • Anaconda 3.18.11
  • Python 3.9.1
  • OpenCV 4.5.1

程式說明:

    主要使用Cr+OSTU與YCrCb範圍選取兩種方式來做膚色偵測
  1. 使用者在呼叫此程式時使用參數呼叫s1071546_hw4.py -i <要處理的檔案檔名> 來使用
  2. 使用cv2.imread將檔案載入並存成變數img
  3. 使用cv2.cvtColor將讀入圖片的色彩空間轉成YCrCb
  4. 使用cv2.split將YCrCb的通道切分出來
  5. 使用cv2.GaussianBlur套用5*5的Filter減小邊界的影響 (Cr+OSTU)
  6. 使用cv2.threshold配合cv2.THRESH_BINARY + cv2.THRESH_OTSU來實現OTSU演算法找出適合的閥值並二值化 (Cr+OSTU)
  7. 使用cv2.inRange來濾出膚色的範圍 (YCrCb),取的範圍為135 < Cr < 180、85 < Cb < 135、80 < Y
  8. 最後輸出以Cr+OSTU和YCrCb範圍選取的兩種結果
處理結果:


原圖



使用Cr+OTSU來做膚色偵測的結果

使用YCrCb來做膚色偵測的結果


沒有留言:

張貼留言