1. 程式人生 > >0044-利用橢圓模型在OpenCV環境下檢測人體面板

0044-利用橢圓模型在OpenCV環境下檢測人體面板

原理:
YCbCr顏色空間是一種常用的膚色檢測的色彩模型,其中Y代表亮度(為了消除光照的影響一般放棄亮度通道),Cr代表光源中的紅色分量,Cb代表光源中的藍色分量,人體的面板的顏色集中在色度的較小區域內。膚色的CbCr平面分佈在近似橢圓的區域內,通過判斷當前畫素點的CbCr值是否落在膚色分佈的橢圓區域內,就可以很容易確認當前畫素點是否屬於膚色。。

程式碼中用到了OpenCV的ellipse函式。
函式原型如下:
C++: void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=LINE_8, int shift=0 )
引數意義如下:


img:橢圓影象生成儲存陣列
center:橢圓的中心點座標
axes:橢圓軸的半長度。
angle :橢圓的旋轉角度
startAngle:圓弧起始角的角度。
endAngle:圓弧終結角的角度。
color:線條的顏色
thickness:線條的粗細程度,如果為負值,代表為填充
lineType:線條的型別
shift:中心點和軸長度的小數部分
示例程式碼如下:
程式碼請加Q2034196302獲取
程式碼請加Q2034196302獲取
程式碼請加Q2034196302獲取

執行結果截圖如下圖所示