(一)RGB to HSI
H: Hue
S: Saturation
I :Intensive
將 RGB modle 轉換成 HSI modle
其 OPENCV 中有內建的HSV轉換
但是自己實作還是可以了解比較多
所以沒去使用 OPENCV的函式
轉換步驟:
1.取得 RGB pixel值
2.將其值域 Nomalize to [0,1]
3.套用計算公式
Hue
Saturation
Intensive
結果DEMO:
由左至右為:Hue , Saturation , Intensive ,Original
(二)膚色辨識
膚色檢驗有許多方式,可以從RGB的顏色空間做判斷,可以利用邊緣檢測+RGB做判斷
可以轉型成其他顏色空間做判斷,在此我挑選了將RGB轉換成YCrCb module
YCrCb空間的膚色提取
YCrCb是一種顏色空間,也可以說是YUV的顏色空間。Y是亮度的分量,而膚色偵測是對亮度比較敏感的,由攝像頭拍攝的RGB圖像轉化为YCrCb空間的話可以去除亮度對膚色偵測的影響。
Cr反映了RGB输入信號红色部分和RGB信號亮度值之間的差异。而CB反應的是RGB输入信號藍色部分和RGB信號亮度值之間的差異。
而我挑選膚色檢測的範圍在
133<=Cr<=173 77<=Cb<=127 會有最好的效果
DEMO:
沒有留言:
張貼留言