膚色ycbcr顏色空間是一種常用的膚色檢測的色彩模型,其中y代表亮度,cr代表光源中的紅色分量,cb代表光源中的藍色分量。人的膚色在外觀上的差異是由色度引起的,不同人的膚色分布集中在較小的區域內。膚色的ycbcr顏色空間cbcr平面分布在近似的橢圓區域內,通過判斷當前畫素點的cbcr是否落在膚色分布的橢圓區域內,就可以很容易地確認當前畫素點是否屬於膚色。將影象轉換到ycbcr空間並且在cbcr平面進行投影,可以採集到膚色的樣本點。
將cbcr平面均分為許多小區域,將每個區域的中心點cbcr色度值作為當前區域的特徵值,對膚色區域畫素值進行遍歷,如果當前畫素值落在該區域內則替換當前區域特徵值。
**實現:
int main()
} //形態學閉操作
cv::morphologyex(temp, temp, cv::morph_close, element);
//定義輪廓引數
std::vector> contours;
std::vector> tempcontours;
std::vectorhierarchy;
//查詢連通域
//cv_retr_external:只檢測出最外輪廓
cv::mat tmp(image.size(), cv_8uc1, cv::scalar::all(0));
//篩選的輪廓
for (int i = 0; i < contours.size(); i++)
cv::imshow("temp", tmp);
temp.setto(0);
//繪製輪廓
cv::mat result;
cv::drawcontours(temp, tempcontours, -1, cv::scalar(255, 0, 0), cv_filled);
image.copyto(result, temp);
cv::imshow("result", result);
cv::waitkey(0);
return 0;
}
執行結果:
基於OpenCv的(YCrCb 顏色空間的膚色檢測
基於opencv的 ycrcb 顏色空間的膚色檢測 yuv空間 一 yuv即ycrcb,是被歐洲電視系統所採用的一種顏色編碼方法。y 表示明亮度 luminance或luma 即灰階值 u 和 v 表示的則是色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。...
基於Opencv的顏色識別
hsv模型中顏色的引數分別是 色調 h hue 飽和度 s saturation 亮度 v value 由a.r.smith在1978年建立的一種顏色空間,也稱六角錐體模型 hexcone model 1 色調 h hue 用角度度量,取值範圍為0 360 從紅色開始按逆時針方向計算,紅色為0 綠色...
OpenCV基於python改變顏色空間
opencv中有超過150種顏色空間轉換方法。但是我們將研究只有兩個最廣泛使用的,bgr gray和bgr hsv。對於顏色轉換,我們使用cv函式。cvtcolor input image,flag 其中flag決定轉換的型別。對於bgr gray轉換,我們使用標誌cv.color bgr2gray...