YUV и RGB поворачивают друг друга (2024)

вперед от:https://www.cnblogs.com/luoyinjie/p/7219319.html

1. Формула: на основе BT.601-6

YUV и RGB поворачивают друг друга (1)

Диаграмма координат UV BT601 (количественно): (горизонтальная координата - U, вертикальные координаты V, а нижний левый угол является источником)

Через координатную диаграмму мы видим, что ультрафиолетовое излучение не включает всю систему координат, а является восьмиугольником, который вращает определенный угол. Чем больше синий, тем больше синий, тем больше красный, а красный красный.

Глоссарий:

После количественной оценки: y ~ [16,235] u ~ [16-240] V ~ [16-240] Количественная, чтобы сделать Y или U или V в определенном диапазоне посредством линейного преобразования y '(16,235), реализуется таким образом: y '= y* (235-16)/(1-0) + 16 is y' = 219* y + 16

Не определено количественно: y ~ [0,1] u, v ~ [-0,5,0,5]

YUV: То есть YCBCR эквивалентен

Как количественно оценить?

1. Как мы все знаем, диапазон RGB составляет [0,255]. Диапазон char равен [-128,127], который не может быть указан до 127,5,

Затем нам нужно количественно оценить данные Y U V;

2. После количественной оценки, когда мы выполняем RGB для YUV, если нам нужно выносить граничные суждения, аналогично Y = Y_INT <0? 0: (Y_INT> 255? 255: y_int); это утверждение потребляет процессор, если YUV выполняет выполнение выполнения После количественной оценки RGB не нужно судить по границе при обращении к ЮВ;

3. После количественной оценки будет сохранена часть пропускной способности.

Как судить, является ли изображение количественно определено?

Распечатайте данные y изображения во время полностью черной картинки.

1. Десятичная форма, не определяющая количественно (u ~ [-0,5-0,5], r ~ [0,1])

R = Y + 1.4075 * V;
G = Y - 0.3455 * U - 0.7169*V;
B = Y + 1.779 * U;


Y = 0.299*R + 0.587*G + 0.114*B;

U = (B-Y)/1.772;

V = (R-Y)/1.402;

или написать это ::
Y = 0.299*R + 0.587*G + 0.114*B;

U = -0.169*R - 0.331*G + 0.5 *B ;

V = 0.5 *R - 0.419*G - 0.081*B;

2. Наша целочисленная форма (сниженное расчет) не определяет r, g, b ~ [0,255] u, v ~ [-128,128]

R= Y + ((360 * (V - 128))>>8) ;
G= Y - (( ( 88 * (U - 128) + 184 * (V - 128)) )>>8) ;
B= Y +((455 * (U - 128))>>8) ;

Y = (77*R + 150*G + 29*B)>>8;

U = ((-44*R - 87*G + 131*B)>>8) + 128;

V = ((131*R - 110*G - 21*B)>>8) + 128 ;

3. Количественная формула (Y ~ (16,235) U/V ~ (16,240)) Количественная

[Y, u, v, 1] t = m [r, g, b, 1] t, где m =

[ 0.2568, 0.5041, 0.0979, 16

-0.1479, -0.2896, 0.4375, 128

0.4375, -0.3666, -0.0709, 128,

0, 0, 0, 1 ]

  [R,G,B,1]T = M[Y,U,V,1]T M =

1.1644 0 1.6019 -223.5521

1.1644 -0.3928 -0.8163 136.1381

1.1644 2.0253 0 -278.0291

0.0000 0.0000 0.0000 1.0000

Из этого вы можете получить красный компонент YUV

YUV = ( 81,91,240 )

На рисунке ниже показан скриншот в документе BT601: Скриншот 1 Скриншот 2

YUV и RGB поворачивают друг друга (2)YUV и RGB поворачивают друг друга (3)

YUV и RGB поворачивают друг друга (4)

4 Формула после количественной оценки записывается в целочисленную форму (сниженное расчет) (Y ~ (16,235) U/V ~ (16,240))

yuv --> rgb

R = (298*Y + 411 * V - 57344)>>8
G= (298*Y - 101* U- 211* V+ 34739)>>8
B= (298*Y + 519* U- 71117)>>8

rgb --> yuv

Y= ( 66*R + 129*G + 25*B)>>8 + 16

U= (-38*R - 74*G + 112*B)>>8 +128

V= (112*R - 94*G - 18*B)>>8 + 128

5. yuv Количественная и неконтролирующая взаимодействие

Yuv Количественная оценка до неквадратификации

Y=(Y'-16 )*255/219 ;

U=(U'-128)*128/112;

V=(V'-128)*128/112;

Yuv Количественно по неконтиторному U ~ (-128-127) -----> U ~ (16-240)

Y' = ((219*Y)>>8) + 16;

U' = ((219*U)>>8) + 128;

V' =((219*V)>>8) + 128;

6. YV12 до RGB (это необходимо проверить ... !!)

R = y + 1,370705 * (v -128); // r Значение оценки
g = y -0.698001 * (u -128) -0.703125 * (v -128) // g Значение компонента
b = y + 1,732446 * (u -128); // b Значение веса

7. Форма матрицы (BT601):

Матричная форма

Перед количественной оценкой

[Y, u, v] t = m [r, g, b] t, где m = 0,299, 0,587, 0,114, -0,169, -0,331, 0,5, 0,419-0,081

[R, g, b] t = m [y, u, v] t, где m = 1 0 1,4017 1 -0,3437 -0,7142 1 1,7722 0

После количественной оценки

[Y, u, v, 1] t = m [r, g, b, 1] t, где m = [0,2568, 0,5041, 0,0979, 16 -0,1479, -0,2896, 0,4375, 128 0,4375, -0,3666, -0709, 128, 0, 0, 0, 1]

  [R,G,B,1]T = M[Y,U,V,1]T M = 1.1644 0 1.6019 -223.5521 1.1644 -0.3928 -0.8163 136.1381 1.1644 2.0253 0 -278.0291 0.0000 0.0000 0.0000 1.0000

Количественная формула написана как целочисленная форма

[Y, U, V, 1] T = (M [R, G, B, 1] T) >> 8 из которых M = 66, 129, 25, 4096, -74, 112, 32768, 112, -94 , -18, 32768, 0, 0, 0, 0, 256

  [R,G,B,1]T = (M[Y,U,V,1]T)>>8 M = 298, 0, 410, -57229, 298, -101, -209, 34851, 298, 518, 0, -71175, 0, 0, 0, 256

2. Формула преобразования YUV и RGB под RUV и RGB под RG2020 (BT2020) (я думаю, что она более объединена и координируется в форме написания в матрицу)

YUV и RGB поворачивают друг друга (5)

Координатная диаграмма UV BT2020 (количественно): (горизонтальные координаты - U, вертикальные координаты V, а нижний левый угол является исходной точкой)

Через координатную диаграмму мы видим, что ультрафиолетовое излучение отличается от протокола BT601. Ультрафиолетовое излучение представляет большую цветовую диапазон, а цветовой диапазон является нерегулярным восьмиугольником.

1. full range

YUV и RGB поворачивают друг друга (6)

YUV и RGB поворачивают друг друга (7)

который:

Y = 0.2627*R + 0.6780*G + 0.0593*B;

U = -0.1396*R - 0.3604*G + 0.5*B;

V = 0.5*R - 0.4598*G -0.0402*B;

Матричная форма

Перед количественной оценкой

[Y, u, v] t = m [r, g, b] t, где m = 0,2627 0,6780 0,0593, -0,1396 -0,3604 0,5000, 0,5000 -0,4598 -0,0402

[R, g, b] t = m [y, u, v] t, где m = 1,0000 -000.0000 1.4746 1.0000 -0.1645 -0,5713 1.0000 1.8814 -0.0001

После количественной оценки

[Y, U, V, 1] T = M [R, G, B, 1] T, где M = 0,2256, 0,5823, 0,05093, 16, -0,1222, -0,3154, 0,4375, 128, 0,4023, -0,0352, 128 , 0,0,0,1

  [R,G,B,1]T =M[Y,U,V,1]T M =1.1644, 0, 1.6853, -234.3559, 1.1644, -0.1881, -0.6529, 89.0206, 1.1646, 2.1501, 0.0000, -293.8542, 0.0000, 0.0000, 0.0000, 1.0000

Количественная формула написана как целочисленная форма

[Y, u, v, 1] t = (m [r, g, b, 1] t) >> 8, где m =58, 149, 13, 4096, -31, -81, 112, 32768, 112, -103, -9, 32768, 0, 0, 0, 256

  [R,G,B,1]T = (M[Y,U,V,1]T)>>8 M = 298, 0, 431, -59995, 298, -48, -167, 22789, 298, 550, 0, -75227, 0, 0, 0, 256

2. BT601 до BT2020

_Y = (256*Y - 32*U -30*V+ 7826)>>8;
_U = (258*U +17*V - 2208)>>8;
_V = (22*U + 264*V - 3369)>>8;

3. BT2020 ROTOR BT601

YUV_601 = M*[Y,U,V,1]T

M=[

1.0000 0.1157 0.1037 -28.0756

0.0000 0.9951 -0.0602 8.3197

-0.0000 -0.0835 0.9767 13.6686

0.0000 0.0000 0.0000 1.0000

]

RGB и HSV обращаются друг к другу

1.RGB к HSV

 1: max=max(R,G,B) 2: min=min(R,G,B) 3: if R = max, H = (G-B)/(max-min) 4: if G = max, H = 2 + (B-R)/(max-min) 5: if B = max, H = 4 + (R-G)/(max-min) 6: 7: H = H * 60 8: if H < 0, H = H + 360 9: 10: V=max(R,G,B) 11: S=(max-min)/max 

2. Hsv to rgb

 1: if s = 0 2: R=G=B=V 3: else 4: H /= 60; 5: i = INTEGER(H) 6: 7: f = H - i 8: a = V * ( 1 - s ) 9: b = V * ( 1 - s * f ) 10: c = V * ( 1 - s * (1 - f ) ) 11: 12: switch(i) 13: case 0: R = V; G = c; B = a; 14: case 1: R = b; G = v; B = a; 15: case 2: R = a; G = v; B = c; 16: case 3: R = a; G = b; B = v; 17: case 4: R = c; G = a; B = v; 18: case 5: R = v; G = a; B = b; 
YUV и RGB поворачивают друг друга (2024)

References

Top Articles
Latest Posts
Article information

Author: Jonah Leffler

Last Updated:

Views: 5519

Rating: 4.4 / 5 (65 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Jonah Leffler

Birthday: 1997-10-27

Address: 8987 Kieth Ports, Luettgenland, CT 54657-9808

Phone: +2611128251586

Job: Mining Supervisor

Hobby: Worldbuilding, Electronics, Amateur radio, Skiing, Cycling, Jogging, Taxidermy

Introduction: My name is Jonah Leffler, I am a determined, faithful, outstanding, inexpensive, cheerful, determined, smiling person who loves writing and wants to share my knowledge and understanding with you.