О цветовых пространствах

    Я по образованию программист, но по работе мне пришлось столкнуться с обработкой изображений. И тут для меня открылся удивительный и неизведанный мир цветовых пространств. Не думаю, что дизайнеры и фотографы узнают для себя что-то новое, но, возможно, кому-нибудь это знание окажется, как минимум полезно, а в лучшем случае интересно.

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

    Наиболее популярными на сегодняшний день являются следующие цветовые модели: RGB (используется в основном в мониторах и камерах), CMY(K) (используется в полиграфии), HSI (широко используется в машинном зрении и дизайне). Существует множество других моделей. Например, CIE XYZ (стандартные модели), YCbCr и др. Далее дан краткий обзор этих цветовых моделей.

    Цветовой куб RGB


    Из закона Грассмана возникает идея аддитивной (т.е. основанной на смешении цветов от непосредственно излучающих объектов) модели цветовоспроизведения. Впервые подобная модель была предложена Джеймсом Максвеллом в 1861 году, но наибольшее распространение она получила значительно позже.

    В модели RGB (от англ. red – красный, green – зелёный, blue – голубой) все цвета получаются путём смешения трёх базовых (красного, зелёного и синего) цветов в различных пропорциях. Доля каждого базового цвета в итоговом может восприниматься, как координата в соответствующем трёхмерном пространстве, поэтому данную модель часто называют цветовым кубом. На Рис. 1 представлена модель цветового куба.



    Чаще всего модель строится так, чтобы куб был единичным. Точки, соответствующие базовым цветам, расположены в вершинах куба, лежащих на осях: красный – (1;0;0), зелёный – (0;1;0), синий – (0;0;1). При этом вторичные цвета (полученные смешением двух базовых) расположены в других вершинах куба: голубой — (0;1;1), пурпурный — (1;0;1) и жёлтый – (1;1;0). Чёрный и белые цвета расположены в начале координат (0;0;0) и наиболее удалённой от начала координат точке (1;1;1). Рис. показывает только вершины куба.



    Цветные изображения в модели RGB строятся из трёх отдельных изображений-каналов. В Табл. показано разложение исходного изображения на цветовые каналы.



    В модели RGB для каждой составляющей цвета отводится определённое количество бит, например, если для кодирования каждой составляющей отводить 1 байт, то с помощью этой модели можно закодировать 2^(3*8)≈16 млн. цветов. На практике такое кодирование избыточно, т.к. большинство людей не способно различить такое количество цветов. Часто ограничиваются т.н. режимом «High Color» в котором на кодирование каждой компоненты отводится 5 бит. В некоторых приложениях используют 16-битный режим в котором на кодирование R и B составляющих отводится по 5 бит, а на кодирование G составляющей 6 бит. Этот режим, во-первых, учитывает более высокую чувствительность человека к зелёному цвету, а во-вторых, позволяет более эффективно использовать особенности архитектуры ЭВМ. Количество бит, отводимых на кодирование одного пиксела называется глубиной цвета. В Табл. приведены примеры кодирования одного и того же изображения с разной глубиной цвета.



    Субтрактивные модели CMY и CMYK


    Субтрактивная модель CMY (от англ. cyan — голубой, magenta — пурпурный, yellow — жёлтый) используется для получения твёрдых копий (печати) изображений, и в некотором роде является антиподом цветового RGB-куба. Если в RGB модели базовые цвета – это цвета источников света, то модель CMY – это модель поглощения цветов.

    Например, бумага, покрытая жёлтым красителем не отражает синий свет, т.е. можно сказать, что жёлтый краситель вычитает из отражённого белого света синий. Аналогично голубой краситель вычитает из отражённого света красный, а пурпурный краситель вычитает зелёный. Именно поэтому данную модель принято называть субтрактивной. Алгоритм перевода из модели RGB в модель CMY очень прост:



    При этом предполагается, что цвета RGB находятся в интервале [0;1]. Легко заметить, что для получения чёрного цвета в модели CMY необходимо смешать голубой, пурпурный и жёлтый в равных пропорциях. Этот метод имеет два серьёзных недостатка: во-первых, полученный в результате смешения чёрный цвет будет выглядеть светлее «настоящего» чёрного, во-вторых, это приводит к существенным затратам красителя. Поэтому на практике модель СMY расширяют до модели CMYK, добавляя к трём цветам чёрный (англ. black).

    Цветовое пространство тон, насыщенность, интенсивность (HSI)


    Рассмотренные ранее цветовые модели RGB и CMY(K) весьма просты в плане аппаратной реализации, но у них есть один существенный недостаток. Человеку очень тяжело оперировать цветами, заданными в этих моделях, т.к. человек, описывая цвета, пользуется не содержанием в описываемом цвете базовых составляющих, а несколько иными категориями.

    Чаще всего люди оперируют следующими понятиями: цветовой тон, насыщенность и светлота. При этом, говоря о цветовом тоне, обычно имеют в виду именно цвет. Насыщенность показывает насколько описываемый цвет разбавлен белым (розовый, например, это смесь красного и белого). Понятие светлоты наиболее сложно для описания, и с некоторыми допущениями под светлотой можно понимать интенсивность света.

    Если рассмотреть проекцию RGB-куба в направлении диагонали белый-чёрный, то получится шестиугольник:



    Все серые цвета (лежащие на диагонали куба) при этом проецируются в центральную точку. Чтобы с помощью этой модели можно было закодировать все цвета, доступные в RGB-модели, необходимо добавить вертикальную ось светлоты (или интенсивности) (I). В итоге получается шестигранный конус:



    При этом тон (H) задаётся углом относительно оси красного цвета, насыщенность (S) характеризует чистоту цвета (1 означает совершенно чистый цвет, а 0 соответствует оттенку серого). Важно понимать, что тон и насыщенность не определены при нулевой интенсивности.



    Алгоритм перевода из RGB в HSI можно выполнить, воспользовавшись следующими формулами:



    Цветовая модель HSI очень популярна среди дизайнеров и художников, т.к. в этой системе обеспечивается непосредственный контроль тона, насыщенности и яркости. Эти же свойства делают эту модель очень популярной в системах машинного зрения. В Табл. показано изменение изображения при увеличении и уменьшении интенсивности, тона (выполняется поворот на ±50°) и насыщенности.



    Модель CIE XYZ


    С целью унификации была разработана международная стандартная цветовая модель. В результате серии экспериментов международная комиссия по освещению (CIE) определила кривые сложения основных (красного, зелёного и синего) цветов. В этой системе каждому видимому цвету соответствует определённое соотношение основных цветов. При этом, для того, чтобы разработанная модель могла отражать все видимые человеком цвета пришлось ввести отрицательное количество базовых цветов. Чтобы уйти от отрицательных значений CIE, ввела т.н. нереальные или мнимые основные цвета: X (мнимый красный), Y (мнимый зелёный), Z (мнимый синий).

    При описании цвета значения X,Y,Z называют стандартными основными возбуждениями, а полученные на их основе координаты – стандартными цветовыми координатами. Стандартные кривые сложения X(λ),Y(λ),Z(λ) (см. Рис.) описывают чувствительность среднестатистического наблюдателя к стандартным возбуждениям:



    Помимо стандартных цветовых координат часто используют понятие относительных цветовых координат, которые можно вычислить по следующим формулам:



    Легко заметить, что x+y+z=1, а это значит, что для однозначного задания относительных координат достаточно любой пары значений, а соответствующее цветовое пространство может быть представлено в виде двумерного графика:



    Множество цветов, задаваемое таким способом, называют треугольником CIE.
    Легко заметить, что треугольник CIE описывает только цветовой тон, но никак не описывает яркость. Для описания яркости вводят дополнительную ось, проходящую через точку с координатами (1/3;1/3) (т.н. точку белого). В результате получают цветовое тело CIE (см. Рис.):



    Это тело содержит все цвета, видимые среднестатистическим наблюдателем. Основным недостатком этой системы является то, что используя её, мы можем констатировать только совпадение или различие двух цветов, но расстояние между двумя точками этого цветового пространства не соответствует зрительному восприятию различия цветов.

    Модель CIELAB


    Основной целью при разработке CIELAB было устранение нелинейности системы CIE XYZ с точки зрения человеческого восприятия. Под аббревиатурой LAB обычно понимается цветовое пространство CIE L*a*b*, которое на данный момент является международным стандартом.

    В системе CIE L*a*b координата L означает светлоту (в диапазоне от 0 до 100), а координаты a,b – означают позицию между зелёным-пурпурным, и синим-жёлтым цветами. Формулы для перевода координат из CIE XYZ в CIE L*a*b* приведены ниже:


    где (Xn,Yn,Zn) – координаты точки белого в пространстве CIE XYZ, а


    На Рис. представлены срезы цветового тела CIE L*a*b* для двух значений светлоты:



    По сравнению с системой CIE XYZ Евклидово расстояние (√((L1-L2 )^2+(a1^*-a2^* )^2+(b1^*-b2^* )^2 )) в системе CIE L*a*b* значительно лучше соответствует цветовому различию, воспринимаемому человеком, тем не менее, стандартной формулой цветового различия является чрезвычайно сложная CIEDE2000.

    Телевизионные цветоразностные цветовые системы


    В цветовых системах YIQ и YUV информация о цвете представляется в виде сигнала яркости (Y) и двух цветоразностных сигналов (IQ и UV соответственно).

    Популярность этих цветовых систем обусловлена в первую очередь появлением цветного телевидения. Т.к. компонента Y по сути содержит исходное изображение в градациях серого, сигнал в системе YIQ мог быть принят и корректно отображён как на старых чёрно-белых телевизорах, так и на новых цветных.

    Вторым, возможно более важным плюсом, этих пространств является разделение информации о цвете и яркости изображения. Дело в том, что человеческий глаз весьма чувствителен к изменению яркости, и значительно менее чувствителен к изменению цветности. Это позволяет передавать и хранить информацию о цветности с пониженной глубиной. Именно на этой особенности человеческого глаза построены самые популярные на сегодняшний день алгоритмы сжатия изображений (в т.ч. jpeg). Для перевода из пространства RGB в YIQ можно воспользоваться следующими формулами:

    Share post

    Comments 66

      +1
      Поэтому на практике модель СMY расширяют до модели CMYK, добавляя к трём цветам чёрный (англ. black).

      Можно по подробней, пожалуйста?
        +7
        Конечно, вся суть в том, что смешивание трёх цветов (пурпурного, голубого и жёлтого) действительно даст чёрный, но, как вы понимаете, это очень дорого (тройной расход краски), да и цвет получается не совсем чёрным, а каким-то грязным.
          –5
          Формулы пожалуйста?
            +14
            Какие формулы? Краски просто не настолько чистые.
              +2
              Видимо имеются в виду формулы перевода из RGB. Как я понимаю, там просто условие — если R=G=B, то берём соответствующее количество чёрного, иначе как для CMY.
                +10
                Формулы слишком легко гуглятся, чтобы о них спрашивать.

                И всё же:
                K = 1 - MAX(R, G, B)
                C = (1 - R - K) / (1 - K)
                M = (1 - G - K) / (1 - K)
                Y = (1 - B - K) / (1 - K)
                  +3
                  Форумлы выражаются в цветовых профилях и в каждом пересчет черного свой. Все это так же жестко завязано с железом и составом красок. Такие вопросы возникают потому что нет необходимости использовать CMYK как самоцель. CMYK жестко привязан к печатной аппаратуре.
                    0
                    Профилей действительно хватает, но мы же говорим о RGB «физическом»?
                +1
                Невозможно в природе смешать эти краски до чисто черного, потому ввели чисто черный отдельно.
                  +2
                  Смешать можно — будет именно чёрный. Проблема в другом. Таким чёрным не напечатать текст — он будет расплываться (из-за неидеального совмещения CMY), именно для текста и придумали 4 K-цвет. Но, например, чёрная фотография будет напечатана CMY(K) смесью а не только K-цветом.
                    0
                    Почему?
                      0
                      Почему что?
                      Почему расплывается? Потому что печатающие устройства спозиционированы относительно друг-друга не идеально, и потому что бумага мокнет и расползается во время печати.

                      Почему черное фото будет напечатано всеми красками? Потому что цвет получится глубже и чернее (хоть и не точно позиционирован, что для фото не так важно, в отличие от текста).
                • UFO just landed and posted this here
              +1
              Я по образованию программист, но по работе мне пришлось столкнуться с обработкой изображений
              У меня случился когнитивный диссонанс. Даже в моем провинциальном вузе преподаются основы обработки изображений.
                +10
                Вам очень повезло, но по работе мне пришлось столкнуться далеко не с основами.
                +4
                спасибо за статью, пошел убийцу фотошопа писать
                  +2
                  Напишите лучше плагин для GIMP, а то он из коробки даже в LAB переводить не умеет.
                  0
                  Спасибо, очень познавательно! Всегда было интересно почему в мониторах RGB, а в принтерах и полиграфии какой-то непонятный CMYK.
                    +7
                    Кстати, K в CMYK так называется, потому что это Key — ключевой цвет. Он может быть и другим, не чёрным.
                    А светлота — это забавно) Это же brightness — просто яркость.
                    В целом статья интересная, спасибо.
                      +2
                      про K много споров, кто то говорит что это blacK.
                        +2
                        Английскаят вики утверждает, что

                        The «K» in CMYK stands for key because in four-color printing, cyan, magenta, and yellow printing plates are carefully keyed, or aligned, with the key of the black key plate. Some sources suggest that the «K» in CMYK comes from the last letter in «black» and was chosen because B already means blue.[1][2] However, this explanation, although useful as a mnemonic, is incorrect.[3]


                        То есть всё-таки от слова key.
                          0
                          Да это от слова Key. И он не всегда бывает черным. Бывает разного цвета. Я точно не помню, но если вам надо золотом напечатать полосочку на сине/зеленой пачечке в промышленных маштабах в ключевой цвет как раз золотую краску заливают. (Инфа почерпнута из каких лекций сестры-полиграфиста 2007 года)
                            +1
                            На самом деле К тут не при чём. То что вы говорите — это печать пантонами. Когда нужно очень точно передать какой-то определённый цвет, или напечатать цвет, который в принципе невозможно получить смешением основных цветов, то добавляют этот цвет отдельной краской. В отличие от струйных принтеров, в офсетной печати каждую краску печатает отдельная машина. Бумага проходит по конвееру от одной до другой и в зависимости от сложности работы таких машин может быть больше десятка. Но при этом 4 основные цвета никуда не деваются и всегда печатаются.

                            Пример из личного опыта: 4 цвета CMYK, 3 разных пантона, золото, серебро, выборочный лак — 10 красок на одну страницу глянцевого журнала. Всё печатается в один проход 10-ю машинами.
                              0
                              Теперь понятно, почему иногда цвета «уезжают» на миллиметр-другой.
                                0
                                Да, это основная проблема. Если машины хорошо настроены, то там 0.3-0.5мм может быть загул. В самом лучшем случае и 0.1мм добиваются. А вот когда оборудование старое и настройне уже не поддаётся, то только газеты на нём и печатают т.к. там бывает 2-3мм загул и полноцвет уже не напечатаешь, только отдельные цветные элементы на почтенном расстоянии.
                        +3
                        Неа, это именно светлота. Lightness.
                          0
                          Если сравнивать конус из статьи и цилиндр с вики, то видно, что это не L, а именно V.
                          0
                          >>> А светлота — это забавно) Это же brightness — просто яркость.
                          Это утверждение больше подходит к третьей компоненте HSV модели. HSV и HSL — это не одно и то же.
                          +1
                          Стараюсь картинки в LAB цветовом пространстве обрабатывать. Он хранит карту освещения в отдельном канале и при любых операциях с изменением яркости не происходит «съедание» цветов, как в RGB, где при увеличении яркости цвет 254,230, 251 может стать 255, 249, 255.
                            –2
                            Вот это на самом деле из разряда «я вижу искажения jpg при 100% качестве». На практике разница о которой вы пишите остается чистосимволической, математической.Если вы только потом какие мат вычисления не производите или у вас там потом швы, при наложении как карты нормалей, не сойдутся. Раньше об этом писали, сейчас все затихло давно за ненадобностью и количеством ограничений.
                            Если вам важно сохранять динамический диапазон, обрабатывайте в 16 битах)
                              +3
                              Так в LAB еще можно на каналы фильтры кидать, что дает свои интересные ништяки, которые не даст RGB.
                                –2
                                И главный вопрос, а нафига?)
                                За 6,7,8,9 10 лет игр в шопе, все эти ништяки оказываются обычно какой то более навороченной технологией, которая достигается в том же RGB но за пару шагов быстрее ну или чуть чуть не быстрее. Все от цели. Средства фотошопа позволяют повторить какой либо результат минимум в трех разных комбинациях. Цель работы в шопе обычно художственная, LAB скорее для каких то специфических задач. И современем все умные туторы остаются как данность, но отпадают за необоснованной навороченностью. Просто кажется, что если способ новый — он лучше)

                                Если помните, был такой урок, где копии слоя ставят фильтр highpass а потом ставят в режим смешивания overlay. Результат — изображение более резкое. То есть это еще один способ навести ту же самую резкость unsharpen mask только менее удобно.
                                  +6
                                  Что значит зачем? Преобразования то теоретически обратимые и все, что можно сделать в LAB можно и в RGB, но многие штуки в LAB делаются за три секунды, а в RGB с матами и костылями. Это как и везде в математике: главное подобрать наиболее удобную систему координат под задачу. Но никто не мешает вам решить задачу в любой другой системе, просто это неудобно, а многие вещи просто не видны.
                                    –2
                                    А здесь мы подошли к страшшшной вещи, к проверке что есть «костыли» и что есть «за три секунды».
                                    Дальше двигаться без входных данных невозможно. Да я не против LAB, просто юные юзеры принимают это как нечто важное. И писать без пометки в конкретном случае опасно)

                                    До необходимости LAB нужно доработаться в профессиональном уровне и потом в сообществе аналогичных товарищей будет вердикт, стоит ли оно того или это просто «ну а нафигга если можно тут про нажать и...»
                                    Да и не нуно забывать что есть паталогический перфекционизм. И мы все ему подвержены.Я не про вас я так, в слух.
                                      +2
                                      Тов. Маргулис посвятил этому цветовому пространству пару интереснейших книжек. Советую. «Загадка каньона», например.

                                      По теме. Lab идеально для цветокоррекции «уровнями» и «кривыми» — яркость просто не затрагивается.
                                        –1
                                        Тот самый Маргулис посвятил этому целых две книги. Это профессиональная, специфическая литература. И нельзя так просто сказать «Эй, LAB круче» или «Эй, rgb лучше» Прошу провещения за привязку к фотошопу. Я глазами пользователя фотошопа на это смотрю, а не с точки зрения оперирования данными с помощью какого либо ЯП. Я по опыту с вебом и полиграфии вижу, что советы для людей всеобрабатывать в lab зачастую только математически разные. Не несущие в результате никаких преимуществ. Просто вера что этот алгоритм лучше.И через LAB фотография набирает +50 к качеству.
                                        И о да, все повторяют одни и теже бесполезные действия). Прошу прощения за повернутость на редакторе еще раз.
                                          0
                                          Ну никто же не говорил, что Lab универсально :) Просто у каждого пространства свои «ништяки», и это всё нелишне учитывать. И да, я тоже говорю с точки зрения пользователя Photoshop.
                                    +1
                                    А причем здесь обязательно фотошоп? Цветами бывает нужно оперировать и в собственных приложениях. И в правильных цветовых пространствах это делается зачастую намного легче.
                                    Попробуйте, например, закодировать плавные переливы цветов на плоскости. В RGB получатся жуткие разводы, а в LAB можно сделать сечения пространства в любой плоскости и все переходы будут уже достаточно плавными.
                                    Да и любой фильтр, манипулирующий цветовосприятием (например, балансом белого) обязательно в своей основе будет иметь LAB, а не RGB.
                                      0
                                      В этом случае нет никаких вопросов. Аюсолютно правы. Прошу прощения за повернутось на фотошопе. Автор действительно не упоминал среду оперирования данными.
                                    0
                                    Прошу прощения за получившийся троллинг) Вот вы меня попутали словом фильтр). Я то еще дурень поверил что в фотошопе в LAB можно фильтры вешать на каналы, то то я думаю что то я не знал про это)
                                  0
                                  С RGB есть более фундаментальные проблемы, на мой взгляд:
                                  1) R, G и B — это эмиттеры с определенными частотами излучения. Соответственно, надо выносить эти и эмиттеры за пределы видимости человеческим зрением, чтобы полностью описать с помощью, только положительных чисел, все цветовое пространство, воспринимаемое человеком, либо, использовать и отрицательные значения, если эмиттеры попадают в видимый диапазон, что, согласитесь, «нефизично», невозможно из глаза «вынуть» фотон. Но, если эмиттеры будут вынесены за пределы человеческого восприятия, возникает еще один побочный эффект, цветовое пространство становится больше, чем минимально достаточное и часть значений цветов не используется.
                                  2) На самом деле оси в распространенных RGB пространствах (sRGB, Adobe RGB) еще и не ортогональны, что вносит дополнительные ошибки в расчеты. Например, длину вектора в RGB нельзя считать просто по формуле L = SQRT(R^2 + G^2 + B^2), необходимо учитывать косинусы углов между осями R, G и B.
                                  Вот на этом ресурсе есть набор статей про цветовые пространства, захват, хранение, обработку и воспроизведение изображений, на мой взгляд, достаточно интересных.
                                    0
                                    А зачем может понадобиться считать длину вектора в RGB? Как я понимаю, она не несёт особого смысла, т.к. восприятие цветов не отражает.
                                      +1
                                      … А хотелось бы, чтобы длина вектора несла информацию о яркости… А, в результате, если использовать sRGB пространство для корректировки яркости/контрастности изображения, то, либо нужен бубен, либо плывут хроматические координаты, то есть цвета. И перевод в черно-белое изображение «страдает». Вы почитайте матерьялы по приведенной ссылке, там много интересных картинок есть…
                                  0
                                  Когда разбирался со всем этим для себя, примерно представил, что в HSV S это положение цвета на шкале серый такой же яркости-цветной, V — на шкале черный-цветной
                                    0
                                    HSL? L- lightness эт самая человекопонятная подгонялка цветов.
                                      0
                                      В конкретной программе был только HSV-режим
                                        –2
                                        HSV, HSB, HSL — Value, Brightness, Lightness — названий много, суть одна.
                                          –1
                                          Ага) все в это упирается

                                            +4
                                            Нет.
                                            HSV и HSB действительно эквивалентны, но вот HSL — уже другое.
                                            Принципы их построения схожи, но не одинаковы.
                                              +3
                                              Неправильно выразился, да. Каюсь, грешен.

                                              Иллюстрация:
                                              image
                                                +1
                                                Я бы дополнил картинками из en-wiki, становится понятно почему в одном случае получается цилиндр с двумя одноцветными поверхностями, в другом — только с одной.
                                      0
                                      Господа, понимаю, что не сильно в тему, но ищу уже не первый год.
                                      Подскажите приложение, которое бы выводило четырехмерные графики в виде точек в X-Y-Z пространстве, где значение функции F(X, Y, Z) кодируется цветом (т. е. получаем трехмерную фигуру из разноцветных точек).
                                        +1
                                        Возможно 3D Color Inspector подойдет.
                                          0
                                          К сожалению, нет, он берет цветовые оттенки из изображения и отображает их в 3D в координатах R-G-B, мне же нужно отображать в X-Y-Z цветом, зависящим от F(x, y, z).
                                          0
                                          То, что вы описываете называется не четырёхмерные графики, а трёхмерные поля.
                                          И если двухмерное поле нарисовать на экране проблем не составит, то трёхмерное, так просто на нарисовать.

                                          Поясню: предположим область определения [0;10] по всем трём осям. Значение (цвета) в точке x=5, y=5,z=5 соответствует зеленой точке. Вопрос — как её увидеть, если она внутри куба со всех сторон «закрыта» наружными (например, красными) точками.

                                          Вы можете отобразить лишь двухмерные поля (градиенты полей, если хотите) на гранях этого куба. Либо «заглядывать» внутрь постепенно «счищая» слои с куба.

                                          Так же можно попробовать заменить кодирование цветом на кодирование прозрачностью точки. Но это тоже не панацея. Если снаружи непрозрачно — не видно что внутри.
                                            0
                                            А чем скалярное трехмерное поле отличается от «четырехмерного» графика, построенного по той же же функции f(x, y, z)? :)
                                            Посмотрите как это реализовано в том же 3D Color Inspector: rsb.info.nih.gov/ij/plugins/images/3d-inspector.jpg
                                            Достаточно выбрать не слишком маленький шаг между точками, и все прекрасно отображается. В крайнем случае картинку можно покрутить и показать, где концентрация красных точек выше. Очевидно, что подобные иллюстрации не будут использованы для снятия численных данных, а создаются лишь для наглядной иллюстрации.
                                            Сейчас я пытаюсь соорудить что-то подобное через gnuplot, но пока что-то не сильно получается :(
                                          0
                                          Представляю какой кошмар бы творился с цветовыми моделями, если бы у человека было не три типа рецепторов, а четыре как у птиц или вообще 12 как у раков-богомолов.
                                          Кстати, 16 бит явно мало для кодирования цвета, так как человек различает порядка 10 миллионов цветов. Поэтому нужно как минимум 24 бита, чтоб гарантированно покрыть все воспринимаемые цвета.
                                            0
                                            Ещё не забывайте про цветовые профили (sRGB, Adobe RGB, ProPhotoRGB и прочее), там тоже много граблей закопано.
                                              +1
                                              Ага. А монитор у вас с честной 8, или даже 10 битной матрицей (на канал)?
                                                0
                                                С битами немного сложнее.

                                                Если в чистом виде взять 216 web-safe цветов (т.е. разбить RGB-куб по каждой оси на шесть секторов и получить 216 кубиков), большую часть мы на адекватном мониторе сможем различить, даже тёмные цвета, но скорее всего не все, особенно если цвета не ставить рядом, а показывать с перерывом 5 секунд и спрашивать, был ли цвет одинаковым.

                                                Для видео и фото, конечно же, важны точные оттенки, но даже там количество бит будет расти линейно, т.е. для 12-компонентного цвета объём RGB-файла будет в 4 раза больше, что вполне приемлемо. А RGB — не самый распостраненный colorspace для видео :)

                                                Ведь если рецепторы аналогичны нашим колбочкам и воспринимают определенную длину волны, Hue-основанные модели могут быть использованы без изменений. К примеру, если у человека была бы 4 колбочка, воспринимающая строго желто-оранжевый цвет, это внесло бы искажения в то, что чистый спектральный цвет мы отличали бы от «смеси» красного и зеленого на мониторе, не более того. Возможно, я в чём-то ошибаюсь, но кажется так.
                                                  0
                                                  будь у нас 12 колбочек — Hue компнента в HSV как минимум требовалась бы гораздо более точная, да и Saturate Value тоже нужны точные. А так да, думаю смогли бы в 3-х компонентный цвет преобразовать
                                                +3
                                                Штука с 24 битным ргб цветом в том, что во-первых человек видит больше цветов, чем можно выразить в 16 битах (которыми давно никто не пользуется, ужасающе выглядит картинка), а во-вторых динамический диапазон мониторов намного меньше доступного глазу (о чем, кстати, написали в разделе про тв стандарты), поэтому даже 24 бита в таком виде — это меньше, чем видит человек. Поэтому люди давно изобрели и используют 30 и более битные мониторы для профессиональной работы с цветом.
                                                  +2
                                                  Есть прекрасная серия апплетов с описанием основ цветовых моделей и CIE XYZ: graphics.stanford.edu/courses/cs178/applets/applets.html#color

                                                  Можно подёргать своими руками и увидеть, откуда берутся такие странные формы.
                                                    +1
                                                    В копилку подбор материалов NASA по теме.
                                                      0
                                                      В CMYK K — это не blacK, а Key. И key может быть любой, например золотой металлик.
                                                        +1
                                                        Давайте мухи отдельно, колеты отдельно.

                                                        К в CMYK по самой распространенной версии это именно Key. Однако Key-color может быть золотым металликом точно так же как им мог быть Cyan или Magenta. То есть налить-то можно любой краски. И если печатная машина четырёхкрасочная, а нужно золото, то приходится как-то выкручиваться и лить в K золото (а можно и в Y налить). Однако по-правильному такие цвета называются Spot color и льются в отдельные банки.

                                                        Причём бывает даже так, что в spot color банку льют смесь из красок точно тех же, что уже заправлены в машину (CMY в определённой пропорции, например). Т.е. смесь дающую точно такой цвет можно было бы получить на бумаге прямо в процессе печати, однако отдельно замешанный spot-color позволит напечатать чёткий текст шестым кеглем, а CMY — расплывётся.
                                                        И если кто-то такую смесь (от бедности) зальёт в K-банку это ещё не значит что K-любой цвет.

                                                        K — чёрный. Spot — любой.

                                                      Only users with full accounts can post comments. Log in, please.