Предисловие
В области обработки видео и изображений мы часто сталкиваемся с преобразованием изображений в разных цветовых гаммах, например преобразованием между цветовыми гаммами 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分量