作業說明
利用所學的Color顏色的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。
作業環境
Windows 10
anaconda
python 3.8.5
OpenCV 4.5.1
實作方法
我嘗試了兩個方法,分別是以HSV及YCRCB做判斷
HSV:
- 使用cvtColor將圖片轉為HSV color space
- 將圖片利用cv2.split分為H、S、V三個通道
- 對H、S、V通道進行膚色偵測,判斷膚色範圍,將範圍7<H<20、28<H<255、50<V<255外的顏色設為黑色
- 使用cvtColor將圖片轉為YCrCb color space
- 將圖片利用cv2.split分為y、cr、cb三個通道
- 對cr通道進行膚色偵測,判斷膚色範圍,將範圍140<Cr<175、100<Cb<120外的顏色設為黑色
而第二張圖的結果,YCRCB的結果比HSV較好,頭髮大多都有被去除,YCRCB中間下面的背景也有被去除(HSV的則被保留)
沒有留言:
張貼留言