Преобразование Yxy в RGB - PullRequest
       3

Преобразование Yxy в RGB

2 голосов
/ 18 августа 2011

Я пытаюсь реализовать метод преобразования из цветового пространства Yxy в RGB.Это делается путем первого преобразования в XYZ, а затем в RGB.Я обнаружил, что «официальная» матрица для Yxy -> XYZ -

3.2410 -1.5374 -0.4986

-0.9692 1.8760 0.0416 

0.0556 -0.2040 1.0570 

Это также та, которая используется в книге Мэтта Фарра «Физическое рендеринг».люди в области 3D-графики используют

2.5651-1.1665 -0.3986

-1.0217 1.9777 0.0439

0.0753 -0.2543 1.1892

Теперь, насколько я понимаю, если x = 0.33333 и y = 0.33333, Yxy дает серый оттенок.Это действительно то, что я получаю со второй матрицей.Первая создает красное значение RGB.

Вторая матрица работает, но откуда она берется?Я нахожу много людей, использующих его в своих примерах кода, но никто не объясняет, имеет ли он физическое происхождение.

Заранее спасибо

1 Ответ

1 голос
/ 24 августа 2011

Преобразование из xyY в XYZ является нелинейным, то есть не может быть вычислено умножением матрицы.Из Википедии о цветовом пространстве CIE 1931 :

X = Y / y * x
Z = Y / y * ( 1 - x - y )

Кажется, что обе ваши матрицы предназначены для преобразования XYZ в RGB.Первая дана праймериз sRGB и белой точкой.Второе - по основным цветам, очень близким к sRGB (зеленый имеет x = 0.29, y = 0.60) и x = 0.334, y = 0.334 белая точка.

Если вы хотите использовать другие основные цвета RGB и белую точку, естьэто список по адресу: http://brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...