基於OpenCv的(YCrCb 顏色空間的膚色檢測

2021-08-19 03:14:09 字數 903 閱讀 7478

基於opencv的(ycrcb)顏色空間的膚色檢測

yuv空間:

一、 yuv即ycrcb,是被歐洲電視系統所採用的一種顏色編碼方法。

「y」:表示明亮度(luminance或luma),即灰階值;

「u」和「v」: 表示的則是色度(chrominance或chroma),作用是描述影像色彩及飽和度,用於指定畫素的顏色。

「亮度」是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。

「色度」則定義了顏色的兩個方面─色調與飽和度,分別用cr和cb來表示。

cr反映了rgb輸入訊號紅色部分與rgb訊號亮度值之間的差異。

cb反映的是rgb輸入訊號藍色部分與rgb訊號亮度值之同的差異。

二、實驗分為三個步驟,部分**如下:

(1)開啟攝像頭,判斷攝像頭是否開啟

(2)轉換顏色空間,分割顏色通道

cvtcolor(tmp, tmp, cv_bgr2ycrcb);//轉換顏色空間為yuv(第乙個tmp為讀入的影象,第二個為轉化成yuv的影象)

split(tmp, channels);//把影象tmp分割為單通道

y = channels.at(0);//y為明度

cr = channels.at(1);//cr為色調

cb = channels.at(2);//飽和度

(3)遍歷影象

for (int j = 1; j < y.rows - 1; j++)}

三、執行結果如下:

OpenCV 基於YCrCb顏色空間的膚色檢測

膚色ycbcr顏色空間是一種常用的膚色檢測的色彩模型,其中y代表亮度,cr代表光源中的紅色分量,cb代表光源中的藍色分量。人的膚色在外觀上的差異是由色度引起的,不同人的膚色分布集中在較小的區域內。膚色的ycbcr顏色空間cbcr平面分布在近似的橢圓區域內,通過判斷當前畫素點的cbcr是否落在膚色分布...

基於Opencv的SIFT SURF HOG的實現

sift實現 surf的實現 include include includeusing namespace std using namespace cv using namespace cv xfeatures2d int main int argc,char ar namedwindow inpu...

基於opencv的meanshift演算法的初步學習

meanshift 均值漂移。其核心是利用概率密度的梯度來找到區域性最優。影象上用,其實現過程就是在乙個給定的範圍,一直按要求 靠近重心的方向 迭代直到達到預期效果。由於本人以後碩士階段做影象識別和跟蹤方面的研究,索性在目標跟蹤上進一步學習。在opencv2.3中這樣定義 cvapi int cvm...