Преобразование цветового пространства

Преобразуйте информацию о цвете между цветовыми пространствами

Библиотека

Преобразования

visionconversions

Описание

Блок Color Space Conversion преобразовывает информацию о цвете между цветовыми пространствами. Используйте параметр Conversion, чтобы задать цветовые пространства, между которыми вы преобразовываете. Вашим выбором является R'G'B' to Y'CbCr, Y'CbCr to R'G'B', R'G'B' to intensity, R'G'B' to HSV, HSV to R'G'B', sR'G'B' to XYZ, XYZ to sR'G'B', sR'G'B' to L*a*b* и L*a*b* to sR'G'B'.

  • Если входом является uint8, YCBCR является uint8, где Y находится в области значений [16 235], и Cb и Cr находятся в области значений [16 240].

  • Если входом является double, Y находится в области значений, [16/255 235/255] и Cb и Cr находятся в области значений [16/255 240/255].

ПортВвод/выводПоддерживаемые типы данныхПоддерживаемые комплексные числа
Введите / Вывод

M N P окрашивают видеосигнал, где P является количеством цветных плоскостей

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • 8-битное беззнаковое целое

Нет

R

Матрица, которая представляет одну плоскость видеопотока входа RGB

То же самое как Входной порт

Нет

G

Матрица, которая представляет одну плоскость видеопотока входа RGB

То же самое как Входной порт

Нет

B

Матрица, которая представляет одну плоскость видеопотока входа RGB

То же самое как Входной порт

Нет

Y

Матрица, которая представляет luma фрагмент изображения

То же самое как Входной порт

Нет

Cb

Матрица, которая представляет один компонент цветности изображения

То же самое как Входной порт

Нет

Cr

Матрица, которая представляет один компонент цветности изображения

То же самое как Входной порт

Нет

I

Матрица значений интенсивности

То же самое как Входной порт

Нет

H

Матрица, которая представляет компонент оттенка изображения

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

Нет

S

Матрица, которая представляет компонент насыщения изображения

То же самое как порт H

Нет

V

Матрица, которая представляет значение (яркость) компонент изображения

То же самое как порт H

Нет

X

Матрица, которая представляет X компонентов изображения

То же самое как порт H

Нет

Y

Матрица, которая представляет компонент Y изображения

То же самое как порт H

Нет

Z

Матрица, которая представляет компонент Z изображения

То же самое как порт H

Нет

L

Матрица, которая представляет фрагмент яркости изображения

То же самое как порт H

Нет

a

Матрица, которая представляет* компонент изображения

То же самое как порт H

Нет

b

Матрица, которая представляет b* компонент изображения

То же самое как порт H

Нет

Тип данных выходного сигнала совпадает с типом данных входного сигнала.

Используйте параметр Image signal, чтобы задать как к вводу и выводу цветной видеосигнал. Если вы выбираете One multidimensional signal, блок принимает M N видеосигналом цвета P, где P является количеством цветных плоскостей в одном порте. Если вы выбираете Separate color signals, дополнительные порты появляются на блоке. Каждый порт принимает одну плоскость M на n видеопотока RGB.

Примечание

Главное обозначение указывает, что сигналы являются исправленной гаммой.

Преобразование между R'G'B' и цветовыми пространствами Y'CbCr

Следующие уравнения задают R'G'B' к преобразованию Y'CbCr и Y'CbCr к R'G'B' преобразование:

[YCbCr]=[16128128]+Α×[RGB]

[RGB]=Β×([YCbCr][16128128])

Значения в матрицах A и B основаны на вашем выборе для параметров Scanning standard и Use conversion specified by.

МатрицаUse conversion specified by = Rec. 601 (SDTV)Use conversion specified by = Rec. 709 (HDTV)
Scanning standard = 1125/60/2:1Scanning standard = 1250/50/2:1
A[0.256788240.504129410.097905880.14822290.290992790.439215690.439215690.367788310.07142737][                     0.18258588 0.61423059 0.06200706 -0.10064373 -0.33857195 0.43921569 0.43921569 -0.39894216 -0.04027352][0.256788240.504129410.097905880.14822290.290992790.439215690.439215690.367788310.07142737]
B[1.164383601.59602681.16438360.391762290.812967651.16438362.01723210][1.1643835601.792741071.16438356-0.21324861-0.532909331.164383562.112401790][1.164383601.59602681.16438360.391762290.812967651.16438362.01723210]

Преобразование из R'G'B' к интенсивности

Следующее уравнение задает преобразование из R'G'B' цветовое пространство к интенсивности:

интенсивность=[0.2990.5870.114][RGB]

Преобразование между R'G'B' и цветовыми пространствами HSV

R'G'B' к преобразованию HSV задан следующими уравнениями. В этих уравнениях MAX и МИН представляют максимальные и минимальные значения каждого R'G'B' триплет, соответственно. H, S, и V отличаются от 0 до 1, где 1 представляет самое большое насыщение и значение.

H={(GBMAXMIN)/6,еслиR=MAX(2+BRMAXMIN)/6,еслиG=MAX(4+RGMAXMIN)/6,еслиB=MAXS=MAXMINMAXV=MAX

HSV к R'G'B' преобразование задан следующими уравнениями:

Hi=6Hf=6HHip=1Sq=1fSt=1(1f)SеслиHi=0,Rtmp=1,Gtmp=t,Btmp=pеслиHi=1,Rtmp=q,Gtmp=1,Btmp=pеслиHi=2,Rtmp=p,Gtmp=1,Btmp=tеслиHi=3,Rtmp=p,Gtmp=q,Btmp=1еслиHi=4,Rtmp=t,Gtmp=p,Btmp=1еслиHi=5,Rtmp=1,Gtmp=p,Btmp=qu=V/max (Rtmp,Gtmp,Btmp)R=uRtmpG=uGtmpB=uBtmp

Преобразование Между sR'G'B' и Цветовыми пространствами XYZ

sR'G'B' к преобразованию XYZ является двухступенчатым процессом. Во-первых, блок преобразовывает исправленный гаммой sR'G'B' значения в линейные sRGB значения с помощью следующих уравнений:

ЕслиRsRGB,GsRGB,BsRGB0.03928RsRGB=RsRGB/12.92GsRGB=GsRGB/12.92BsRGB=BsRGB/12.92otherwise,еслиRsRGB,GsRGB,BsRGB>0.03928RsRGB=[(RsRGB+0.055)1.055]2.4GsRGB=[(GsRGB+0.055)1.055]2.4BsRGB=[(BsRGB+0.055)1.055]2.4

Затем блок преобразовывает sRGB значения в значения XYZ с помощью следующего уравнения:

[XYZ]=[0.412390799265960.357584339383880.180480788401830.212639005871510.715168678767760.072192315360730.019330818715590.119194779794630.95053215224966]×[RsRGBGsRGBBsRGB]

XYZ к sR'G'B' преобразование является также двухступенчатым процессом. Во-первых, блок преобразовывает значения XYZ в линейные sRGB значения с помощью следующего уравнения:

[RsRGBGsRGBBsRGB]=[0.412390799265960.357584339383880.180480788401830.212639005871510.715168678767760.072192315360730.019330818715590.119194779794630.95053215224966]1×[XYZ]

Затем блок применяет гамма-коррекцию, чтобы получить sR'G'B' значения. Этот процесс описан следующими уравнениями:

ЕслиRsRGB,GsRGB,BsRGB0.00304RsRGB=12.92RsRGBGsRGB=12.92GsRGBBsRGB=12.92BsRGBв противном случае,еслиRsRGB,GsRGB,BsRGB>0.00304RsRGB=1.055RsRGB(1.0/2.4)0.055GsRGB=1.055GsRGB(1.0/2.4)0.055BsRGB=1.055BsRGB(1.0/2.4)0.055

Примечание

Программное обеспечение Computer Vision Toolbox™ использует белую точку D65, которая задана в Рекомендации Купленный 709 ITU-R для этого преобразования. Напротив, преобразование Image Processing Toolbox™ основано на профилях ICC, и оно использует D65 для Брэдфордского преобразования адаптации D50 к белой точке D50. Если вы используете эти два продукта и сравниваете результаты, необходимо объяснить это различие.

Преобразование Между sR'G'B' и L*a*b* Цветовые пространства

Блок Color Space Conversion преобразовывает sR'G'B' значения в L*a*b* значения на двух шагах. Сначала это преобразовывает sR'G'B' в значения XYZ с помощью уравнений, описанных в Преобразовании Между sR'G'B' и Цветовыми пространствами XYZ. Затем это использует следующие уравнения, чтобы преобразовать значения XYZ к L*a*b* значения. Здесь, Xn, Yn, и Zn трехцветные значения ссылочной белой точки, вы задаете использование параметра White point:

L*=116(Y/Yn)1/316,forY/Yn>0.008856L*=903.3Y/Yn,в противном случаеa*=500(f(X/Xn)f(Y/Yn))b*=200(f(Y/Yn)f(Z/Zn)),гдеf(t)=t1/3,fort>0.008856f(t)=7.787t+16/166,в противном случае

Блок преобразовывает L*a*b* значения к sR'G'B' значения на двух шагах также. Блок преобразовывает L*a*b* значения к значениям XYZ с помощью этих уравнений:

ДляY/Yn>0.008856X=Xn(P+a*/500)3Y=YnP3Z=Zn(Pb*/200)3,гдеP=(L*+16)/116

Параметры

Conversion

Задайте цветовые пространства, между которыми вы преобразовываете. Вашим выбором является R'G'B' to Y'CbCr, Y'CbCr to R'G'B', R'G'B' to intensity, R'G'B' to HSV, HSV to R'G'B', sR'G'B' to XYZ, XYZ to sR'G'B', sR'G'B' to L*a*b* и L*a*b* to sR'G'B'.

Use conversion specified by

Задайте стандарт, чтобы использовать, чтобы преобразовать ваши значения между R'G'B' и цветовыми пространствами Y'CbCr. Вашим выбором является Rec. 601 (SDTV) или Rec. 709 (HDTV). Этот параметр только доступен, если для параметра Conversion вы выбираете R'G'B' to Y'CbCr или Y'CbCr to R'G'B'.

Scanning standard

Задайте стандарт сканирования, чтобы использовать, чтобы преобразовать ваши значения между R'G'B' и цветовыми пространствами Y'CbCr. Вашим выбором является 1125/60/2:1 или 1250/50/2:1. Этот параметр только доступен, если для параметра Use conversion specified by вы выбираете Rec. 709 (HDTV).

White point

Задайте ссылочную белую точку. Этот параметр видим, если для параметра Conversion вы выбираете sR'G'B' to L*a*b* или L*a*b* to sR'G'B'.

Image signal

Задайте как к вводу и выводу цветной видеосигнал. Если вы выбираете One multidimensional signal, блок принимает M N видеосигналом цвета P, где P является количеством цветных плоскостей в одном порте. Если вы выбираете Separate color signals, дополнительные порты появляются на блоке. Каждый порт принимает одну плоскость M на n видеопотока RGB.

Ссылки

[1] Poynton, Чарльз А. Техническое введение в цифровое видео. Нью-Йорк: John Wiley & Sons, 1996.

[2] Рекомендация ITU-R BT.601-5, параметры кодирования Studio цифрового телевидения для стандарта 4:3 и широкий экран 16:9 соотношения сторон.

[3] Рекомендация ITU-R BT.709-5. Значения параметров для стандартов HDTV для производства и международного обмена программы.

[4] Топит, Майкл, Мэтью Андерсон, Сринивасан Чандрэзекэр и Рикардо Мотта, “Стандартный Пробел Цвета по умолчанию для Интернета - sRGB”. 5 ноября 1996.

[5] Berns, Рой С. Принципы Цветной Технологии, 3-й редактор Нью-Йорк: John Wiley & Sons, 2000.

Смотрите также

Передискретизация цветности

Программное обеспечение Computer Vision Toolbox

rgb2hsv

MATLAB

hsv2rgb

Программное обеспечение MATLAB

rgb2ycbcr

Программное обеспечение Image Processing Toolbox

ycbcr2rgb

Программное обеспечение Image Processing Toolbox

rgb2gray

Программное обеспечение Image Processing Toolbox

makecform

Программное обеспечение Image Processing Toolbox

applycform

Программное обеспечение Image Processing Toolbox

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a