1. ycrcb格式,給所有畫素賦值白色
iplimage* dst=cvcreateimage(cvgetsize(_dst),8,3);
for (int i = 0; i < src->height; i++) //賦值
}2. ycrcb格式,給所有畫素賦值黑色
cvzeros(dst);
yuv公式有很多,
包括未量化 : y (0,255) u (-128,128) v (-128 ,128)
負數取正後: y (0,255) u (0,255) v (0,255)
量化後 :y(16,235) u(16,240) v( 16,240 )
yuv(256 級別) 可以從8位 rgb 直接計算:
y = 0.299 r + 0.587 g + 0.114 b
u = - 0.1687 r - 0.3313 g + 0.5 b + 128
v = 0.5 r - 0.4187 g - 0.0813 b + 128
反過來,rgb 也可以直接從yuv (256級別) 計算:
r = y + 1.402 (cr-128)
g = y - 0.34414 (cb-128) - 0.71414 (cr-128)
b = y + 1.772 (cb-128)
3. ycrcb基礎知識
「y」表示明亮度(luminance或luma),也就是灰階值,「亮度」是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。
「u」和「v」 表示的則是色度(chrominance或chroma),作用是描述影像色彩及飽和度,用於指定畫素的顏色。「色度」則定義了顏色的兩個方面─色調與飽和度,分別用cr和cb來表示。cr反映了rgb輸入訊號紅色部分與rgb訊號亮度值之間的差異。而cb反映的是rgb輸入訊號藍色部分與rgb訊號亮度值之間的差異。
yuv:是一種顏色空間,基於yuv
的顏色編碼是流**的常用編碼方式,這種表達方式起初是為了彩色電視與黑白電視之間的訊號相容;其中
y』cbcr:(也稱為 yuv),是yuv
的壓縮版本,不同之處在於y』cbcr
用於數字影象領域,yuv
用於模擬訊號領域;mpeg
、***
、攝像機中常說的yuv
其實是y'cbcr
,二者轉換為rgba
的轉換矩陣是不同的。
4. 不同顏色之間的轉換
//hsv顏色空間轉換
cv::cvtcolor(srcimage, image_hsv, cv_bgr2hsv);
cv::imshow("image_hsv", image_hsv);
//ycrcb顏色空間轉換
cv::cvtcolor(srcimage, image_col, cv_bgr2ycrcb);
cv::imshow("image_col", image_col);
//hls顏色空間轉換
cv::cvtcolor(srcimage, image_col, cv_bgr2hls);
cv::imshow("iamge_hls", image_col);
//lab顏色空間轉換
cv::cvtcolor(srcimage, image_col, cv_bgr2lab);
cv::imshow("image_lab", image_col);
//分離hsv各個通道
std::vectorhsvchannels;
cv::split(image_hsv, hsvchannels);
//0通道為h分量,1通道為s分量,2通道為v分量
image_h = hsvchannels[0];
image_s = hsvchannels[1];
image_v = hsvchannels[2];
//分別顯示各通道影象
cv::imshow("image_h", image_h);
cv::imshow("image_s", image_s);
cv::imshow("image_v", image_v);
OpenCV 基於YCrCb顏色空間的膚色檢測
膚色ycbcr顏色空間是一種常用的膚色檢測的色彩模型,其中y代表亮度,cr代表光源中的紅色分量,cb代表光源中的藍色分量。人的膚色在外觀上的差異是由色度引起的,不同人的膚色分布集中在較小的區域內。膚色的ycbcr顏色空間cbcr平面分布在近似的橢圓區域內,通過判斷當前畫素點的cbcr是否落在膚色分布...
原創 HSV和YCrCb色彩空間介紹
通常 情況下,彩色影象使用r g b三個通道表示,這種通過三基色可以到其它的各種顏色,但是具體是哪種顏色,我們就無從可知,如果我想知道 r,g,b 三元組具體什麼顏色呢?這時候可以用hsv顏色空間表示。hsv都是一種將rgb色彩模型中的點在原著座標體系中的表示法。這中表示法試圖做到比基於笛卡爾座標系...
基於OpenCv的(YCrCb 顏色空間的膚色檢測
基於opencv的 ycrcb 顏色空間的膚色檢測 yuv空間 一 yuv即ycrcb,是被歐洲電視系統所採用的一種顏色編碼方法。y 表示明亮度 luminance或luma 即灰階值 u 和 v 表示的則是色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。...