YCbCr空間中進行色彩調整的方法

2021-06-22 07:11:08 字數 1204 閱讀 6825

今天看到一篇對我很有幫助的文件,給大家轉轉。

ycbcr以極座標表示,則chroma和hue的計算公式如下:

chroma = sqrt(cb^2+cr^2)

hue    = arctg(cr/cb)

下面我們給出了6種顏色的c與h的值:

r    g    b    y   cb    cr    c     h

red    255  0    0     76   84  235 250  72

blue   0      0    255  29 235  106 257    24

green 0    255 0     150 42    18  45     24

yellow 255 255 0    226  0   150  150  270

cyan 0 255 255      179 172 0    172 360

magenta 255 0 255 105  214 235 319 50

那麼現在我們就有了最基本的調整關係公式了。

在ycbcr空間中,一般情況下我們進行調整都是利用乙個調整矩陣來實現的:

| y'  |   |k1  k2  k3|    | y|

|cb'| =|k4  k5  k6| * |cb|

|cr' |   |k7  k8  k9|    |cr|

這裡我們主要調整的就是這個矩陣的各個引數了,我們一般調整的物理引數主要有:contrast,cb_gain,cr_gain,hue這幾種引數,那麼這幾個引數是如何作用的呢?下面乙個乙個來說吧:

contrast:這個引數只需要調整第一行即可,一般的調整範圍在(0~4)之間;

cb_gain:需要調整的是就是第二行了,範圍大致也在(0~4);

cr_gain:這個與cb_gain類似,調整的是第三行,範圍(0~4);

hue:這個的調整是比較麻煩的,因為這個是在極座標系內處理的,而從公式看,它又與cb和cr都有關係,但與y無關。一般來說tan(hue)=k6/k5=-k8/k9。調整的時候由於還要考慮到chroma的歸一問題,所以還要進行如下限制:

k5^2+k6^2=1(不考慮cb_gain的時候)

k8^2+k9^2=1(不考慮cr_gain的時候)

這時候在上面的兩個限制前提下,再加上tan(hue)=k6/k5=-k8/k9,我們就可以按照hue(0~360)來一度一度的進行調節了。



管理表空間中的空間

空間管理在多個級別進行。第一,將空間分配給表空間。這通過設定資料檔案的大小來完成。第二,將表空間中的空間分配給段,這通過分配區間來完成。第三,將段中的空間分配給行,這通過維護那些跟蹤每個塊中的空閒空間量的位圖來完成。5.3.1 區間管理 區間管理方法為每個表空間設定,應用於表空間中的所有段。可以使用...

RGB與YCbCr顏色空間的轉換

y 明亮度 luminance或luma 也就是灰階值。亮度 是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。u v 色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。色度 則定義了顏色的兩個方面 色調與飽和度,分別用cr和cb來表示。...

RGB與YCbCr顏色空間的轉換

y 明亮度 luminance或luma 也就是灰階值。亮度 是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。u v 色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。色度 則定義了顏色的兩個方面 色調與飽和度,分別用cr和cb來表示。...