【MATLAB】Взаимное преобразование RGB и YCbCr

Предисловие

В области обработки видео и изображений мы часто сталкиваемся с преобразованием изображений в разных цветовых гаммах, например преобразованием между цветовыми гаммами RGB, YUV и YCbCr. Вот набор формул преобразования для вашей справки.

цветовая модель

RGB

Цветовая модель RGB — это цветовое пространство, используемое для представления цифровых изображений, где «RGB» означает красный, зеленый и синий. В модели RGB интенсивность каждого цвета может быть представлена ​​от 0 до 255, где 0 представляет интенсивность отсутствия цвета, а 255 представляет интенсивность максимального цвета. Желаемый цвет можно получить, регулируя интенсивность этих трех цветов. Например, если вы установите интенсивность красного и зеленого цвета на 255, а интенсивность синего — на 0, вы получите желтый цвет.

ЮВ

Цветовая модель YUV — это модель, описывающая цвет изображения. Он делит цвет на две составляющие: яркость (Y) и цветность (U, V).

Компонент Y представляет информацию о яркости изображения со значением в диапазоне от 0 до 255, где 0 представляет черный цвет, а 255 — белый.

Компоненты U и V представляют информацию о цветности соответственно. Компонент U представляет собой разницу между синим и желтым цветом и имеет значение от -128 до 127, где -128 соответствует самому чистому синему, а 127 соответствует самому чистому желтому. Компонент V представляет собой разницу между зеленым и красным, а диапазон значений также составляет от -128 до 127, где -128 представляет самый чистый зеленый цвет, а 127 представляет самый чистый красный.

Цветовая модель YUV в основном используется при кодировании и передаче видео и может эффективно сжимать и передавать данные изображения. В теле- и видеотехнологиях цветовая модель YUV обычно используется для обработки и представления цветных изображений.

YCbCr

Цветовая модель YCBCr — это цветовая модель, основанная на информации о яркости и цвете, которая обычно используется при обработке изображений и видео. Y представляет яркость (Luma), CBCr представляет цветность (Chroma). В этой модели информация о яркости представлена ​​Y, а информация о цветности представлена ​​CBCr.

Информация о яркости (Y) представляет яркость изображения, обычно значение в оттенках серого, извлеченное из исходного изображения RGB. Более высокие значения яркости указывают на более светлое изображение, а более низкие значения яркости указывают на более темное изображение.

Информация о цветности (CBCr) представляет собой информацию о цвете изображения, полученную из цветовых каналов исходного изображения RGB. Эти цветовые каналы могут представлять собой разницу между красным (R), зеленым (G) и синим (B). Поскольку человеческий глаз более чувствителен к яркости и относительно слабо воспринимает цвет, отделение информации о цвете от информации о яркости может уменьшить объем данных в таких приложениях, как сжатие изображений или видео.

Преобразуя изображения RGB в цветовые модели YCBCr, информацию о яркости и цветности можно обрабатывать независимо для достижения некоторых целей обработки изображений и видео, таких как улучшение изображения, коррекция цвета, сжатие и т. д.

Отношения между YUV и YCbCr

YUV и YCbCr — две распространенные модели цветового пространства, и между ними существует сильная корреляция.

Модель YUV — это модель цветового пространства, которая разделяет яркость (Y) и цветность (U, V) изображения. Яркость представляет яркость и темноту изображения, а цветность представляет информацию о цвете изображения. В модели YUV компонент яркости (Y) несет большую часть информации об изображении, а компоненты цветности (U, V) фиксируют цветовое различие изображения.

Модель YCbCr — это модель цветового пространства, разработанная на основе модели YUV. Он очень похож на модель YUV, но имеет небольшие отличия. В частности, компонент яркости (Y) в модели YCbCr такой же, как компонент яркости (Y) в модели YUV, тогда как компоненты цветности (Cb, Cr) заменяют компоненты цветности (U, V) в модели YUV. ). Cb и Cr представляют собой разницу цветности синего и красного соответственно.

Фактически модель YCbCr и модель YUV можно конвертировать друг в друга. При фактической обработке изображений часто можно преобразовать изображение RGB в изображение YCbCr, а затем после некоторой обработки преобразовать его обратно в изображение RGB. Это преобразование может быть достигнуто с помощью простых матричных операций. Преобразованное изображение может иметь некоторые незначительные отличия в цвете для человеческого глаза, но в целом приемлемо для большинства приложений.

В общем, связь между моделями YUV и YCbCr можно рассматривать как вариант зависимости, и обе они используются для описания информации о яркости и цветности изображения.

Конвертировать

%RGB_to_YUV

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

U = -0.147*R - 0.289*G + 0.436*B+128;

V = 0.615*R - 0.515*G - 0.100*B+128;
%YUV_to_RGB

R = y + 1.140.(vv-128);

G = y - 0.394.(uu-128) - 0.581.(vv-128);

B = y + 2.032.(uu-128);

Извлечение видеоданных

Считайте видео avi в matalb, извлеките 100-й кадр, а затем извлеките слои RGB отдельно.

mov=VideoReader('**.avi');       %读视频
I=read(mov,100);                 %读入某一帧,RGB图
IR=I1(:,:,1);                    %R分量
IG=I1(:,:,2);                    %G分量
IB=I1(:,:,3);                    %B分量

おすすめ

転載: blog.csdn.net/sqqwm/article/details/135206252