s1091403 作業5

 

1112 Digital Image Processing Assignment #5

主題: 膚色偵測 Skin Color Detection

作業說明:

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


(原圖)


(標註後的偵測結果)

 

開發環境:

Windows10

        Anaconda 3(22.9.0)

        Spyder 5.4.1

Python 3.9

Opencv(4.7.0)

Numpy(1.24.2)

程式片段(程式碼截圖在readme):

使用cv2.imread()輸入照片,並透過cv2.resize()將圖片的大小固定成400*400方便看結果。接著進入detection函式。

首先先透過cv2.cvtColor()將圖片轉換成用HSV儲存的形式(hsv),再透過cv2.inRange()設定對應的膚色的顏色範圍(mask),並使用np.zeros_like()複製一個與原圖片一樣大、各項皆為0array用於顯示成功過濾的部分(skin),設定imask為在mask範圍的結果,並將其放入skin獲得過濾膚色過後的圖片,接著再使用cv2,cvtColr()skin轉成灰階圖片(img_grey),再將其透過cv2.GaussianBlur()進行高斯模糊(img_blur)以及cv2.threshold()進行二值化去除雜訊,獲得目標圖片(result)並回傳。

設定對應的函式回傳的圖片與顯示的視窗,顯示之後按任意鍵會消失。

Demo影片: https://youtu.be/p_ARdDlXDxM

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6