Как иметь дело с RGB к преобразованию YUV

Формула говорит:

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

U = -0.14713 * R - 0.28886 * G + 0.436 * B;

V = 0.615 * R - 0.51499 * G - 0.10001 * B;

Что, если, например, переменная U становится отрицательной?

U = -0.14713 * R - 0.28886 * G + 0.436 * B;

Примите максимальные значения для R и G и B = 0 Так, я интересуюсь реализацией этой функции convetion в OpenCV, Так, как иметь дело с отрицательными величинами? Используя изображение плавающее? так или иначе объясните меня, может быть, я не понимаю что-то..

17
задан Jacob 18 February 2011 в 01:44
поделиться

2 ответа

Вы можете преобразовать RGB <-> YUV в OpenCV с помощью cvtColor , используя код CV_YCrCb2RGB для YUV-> RGB и CV_RGBYCrCb для RGB-> YUV.

void cvCvtColor(const CvArr* src, CvArr* dst, int code)

Преобразует изображение из одного цветового пространства. к другому.

13
ответ дан 30 November 2019 в 12:43
поделиться

Y, U и V могут быть отрицательными, если представлены десятичными знаками, в соответствии с цветовой плоскостью YUV .

YUV Color space

14
ответ дан 30 November 2019 в 12:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: