YCrCb知識總結

2021-09-30 19:36:38 字數 2313 閱讀 4688

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 作用是描述影像色彩及飽和度,用於指定畫素的顏色。...