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()複製一個與原圖片一樣大、各項皆為0的array用於顯示成功過濾的部分(skin),設定imask為在mask範圍的結果,並將其放入skin獲得過濾膚色過後的圖片,接著再使用cv2,cvtColr()將skin轉成灰階圖片(img_grey),再將其透過cv2.GaussianBlur()進行高斯模糊(img_blur)以及cv2.threshold()進行二值化去除雜訊,獲得目標圖片(result)並回傳。
設定對應的函式回傳的圖片與顯示的視窗,顯示之後按任意鍵會消失。
Demo影片: https://youtu.be/p_ARdDlXDxM
留言
張貼留言