作業說明:
Skin Color Detection
利用所學的Color顏色的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。
操作環境:
l 作業系統 : Windows10
l 編譯軟體 : Visual Studio Code
l 使用語言 : Python / OpenCV 4.5.1
實作方法:
1. YCbCr
針對YCbCr中Cb、Cr分量的處理,將RGB轉換為YCbCr,對Cr與Cb兩個通道綜合考慮。
Y = 0.299R + 0.587G + 0.114B
Cr = (R-Y)*0.713 + 128
Cb = (B-Y)*0.564 + 128
YCrCb膚色範圍:140 < Cr < 175;100 < Cb < 120;80 < Y
Y = 0.299R + 0.587G + 0.114B
Cr = (R-Y)*0.713 + 128
Cb = (B-Y)*0.564 + 128
YCrCb膚色範圍:140 < Cr < 175;100 < Cb < 120;80 < Y
2. HSV:
轉換空間後每個通道設置一個閾值綜合考慮,進行二值化操作。
色相(H):色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
飽和度(S):
色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。
明度(V)亮度(L):取0-100%。
HSV膚色範圍:7 < H < 20;25 < S < 255;50<V<255
色相(H):色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
飽和度(S):
色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。
明度(V)亮度(L):取0-100%。
HSV膚色範圍:7 < H < 20;25 < S < 255;50<V<255
3. CR+OTSU:
針對YCbCr中Cr分量的處理,將RGB轉換為YCbCr,對Cr通道單獨進行otsu處理(運用opencv的threshold做otsu)
沒有留言:
張貼留言