Почему мы используем RGB вместо длин волн для представления цветов? - Фотопедия
47 голосов
/ 04 июня 2017

Как мы знаем, цвет конкретного луча света зависит от его частоты (или длины волны ). Кроме того, разве это не та информация, которая сначала захватывается цифровыми камерами? Тогда почему мы используем форматы, такие как RGB (или CMYK , HSV и т. Д.) Для цифрового представления цветов?

Ответы [ 8 ]

44 голосов
/ 04 июня 2017

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

Вы спрашиваете, почему камеры не фиксируют весь диапазон лучистой энергии, которая создала визуальный отклик человека. Почему современная камера улавливает только три узких сегмента, которые мы называем основными цветами освещения: красный, зеленый и синий?

Ответ относится к категории того, как мы видим, а именно к человеческому визуальному ответу. За эти годы было предложено много теорий о том, как люди видят цвет. До сих пор все не смогли дать удовлетворительное объяснение каждого аспекта того, как мы видим цвета. Длина волны, к которой чувствительны наши глаза, охватывает диапазон от 400 до 700 миллимикрон. Не случайно атмосфера Земли прозрачна для этого диапазона.

Когда мы смотрим на источник света, мы не можем различить какую-либо конкретную длину волны, если она не представлена ​​одна. Когда мы смотрим на источник белого света, мы не можем выделить и идентифицировать какой-либо конкретный цвет. Наша комбинация глаз / мозг интерпретирует цвет света без анализа того, что составляет сочетание частот. Основываясь на этом, ученые экспериментально доказали, что, смешивая только три цвета в разных пропорциях, можно получить почти все цвета. Другими словами, представляя человеческому глазу, с различной интенсивностью, смесь красного, зеленого и синего, большинство цветов спектра можно воспроизвести, не совсем, но в близком приближении. Это была работа Томаса Янга (англ. 1773 - 1829) под названием «Молодая теория цветового зрения».

Основываясь на теории Юнга, Джеймс Клерк Максвелл (британский 1831 - 1879) показал миру первую цветную фотографию, созданную. В 1855 году он использовал три проектора и наложил три изображения, спроецированные на один экран. Каждый проектор был оснащен цветным фильтром. Каждое из трех изображений представляло собой один из трех основных цветов: красный, зеленый и синий. Проецируемые пленочные изображения были сделаны с помощью трех отдельных снимков на трех черно-белых пленках, каждая из которых экспонировалась через один фильтр из трех световых премьеров.

С того дня, в 1855 году, были исследованы неисчислимые методы создания и отображения цветных изображений. Ранние цветные движущиеся изображения проецировали слабые цветные изображения, используя только два цвета. Эдвин Лэнд (американский 1909 - 1991) основатель Polaroid Corp. экспериментировал с созданием цветных картин, используя только два основных цвета. Это осталось лабораторным любопытством. Пока что самые точные цветные изображения сделаны с использованием трех основных цветов. Однако один человек, Габриэль Липпманн (франц. 1845 - 1921), сделал красивые цветные изображения, которые захватили весь спектр визуального света. Он разработал метод, который использовал черно-белую пленку с зеркальной подложкой. Облучающий свет проникал в пленку, ударялся о зеркало и отражался обратно в пленку. Таким образом, экспонирование осуществлялось через два прохода экспонирующего света. Изображение состоит из серебра, расположенного с интервалом, равным длине волны экспонирующего света. При просмотре фильм пропускал только свет, соответствующий длине волны экспонирующего света. Можно было видеть полноцветную картину, не содержащую пигмента. Уникальный и красивый процесс Липпмана остается непрактичным. Наши пленочные и цифровые камеры используют метод Максвелла. Возможно, если вы будете изучать человеческое зрение и теорию цвета, возможно, вы будете тем, кто продвинет нашу науку и получит первое по-настоящему верное изображение.

35 голосов
/ 04 июня 2017

Вы сказали,

это информация, которая сначала захватывается цифровыми камерами.

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

Для большинства датчиков камер camera, чтобы захватывать цвета, перед датчиком располагаются цветные фильтры, называемые массивом цветных фильтров (CFA). CFA превращает каждый пиксель датчика (иногда называемый sensel ) в в основном датчик красного, зеленого или синего света. Если бы вы рассматривали необработанные данные датчика как черно-белое изображение, оно выглядело бы размытым, что-то вроде полутонированного черно-белого изображения газетной бумаги. При увеличении при большом увеличении отдельные пиксели изображения будут иметь вид шахматной доски.

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

Bayer color filter array, from Wikimedia Commons
Массив цветовых фильтров Bayer, пользователь Cburnett , Wikimedia Commons. CC BY-SA 3.0

С помощью процесса, называемого demosaicing либо при сохранении данных изображения в камере, либо при последующей обработке на компьютере, массив цветных данных вычислительным образом комбинируется для создания полного разрешение цветного изображения RGB. В процессе демозаики значение RGB каждого пикселя вычисляется с помощью алгоритма, который учитывает не только значение пикселя, но и данные в соседних пикселях, окружающих его.

Тогда, почему мы используем формат RGB для цифрового представления цветов?

Мы используем трихромную цветовую модель, потому что именно так люди воспринимают цвета. Из Wikipedia'а Трихроматическая статья ,

Теория трихроматического цвета началась в 18 веке, когда Томас Янг предположил, что цветовое зрение является результатом трех разных фоторецепторных клеток. Позднее Герман фон Гельмгольц развил идеи Юнга с помощью экспериментов по подбору цветов, которые показали, что людям с нормальным зрением необходимы три длины волны для создания нормального диапазона цветов.

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


  1. Не все датчики используют CFA. Датчик Foveon X3 , используемый в зеркальных и беззеркальных камерах Sigma, основан на том факте, что световые волны различной длины проникают в кремний на разные глубины. Каждый пиксель на датчике X3 представляет собой набор фотодиодов, обнаруживающих красный, зеленый и синий цвета. Поскольку каждый пиксель действительно является датчиком RGB, для датчиков Foveon демозаксирование не требуется.

    Leica M Monochrom - это дорогая черно-белая камера, которая не имеет CFA на датчике. Поскольку нет фильтрации входящего света, камера более чувствительна к свету (согласно Leica, 100% или 1 ступень, более чувствительна).

12 голосов
/ 05 июня 2017

Попытка ответить просто:

  • Мы не можем практически собрать достаточно информации, чтобы сохранить полный разброс по частоте всех различных длин волн присутствующего света, даже в пределах видимого спектра. С помощью RGB мы можем описать цвет пикселя, используя только три числа. Если бы мы захватили весь частотный спектр света, каждый пиксель потребовал бы не 3 числа, а график данных. Передача и хранение данных были бы огромными.

  • Это не обязательно для наших глаз. Наши глаза видят не только три отдельные волны, но вместо этого каждый из наших «красных», «зеленых» и «синих» рецепторов улавливает частично перекрывающиеся диапазоны света:

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

11 голосов
/ 07 июня 2017

Я думаю, что в предыдущих ответах есть некоторые заблуждения, поэтому вот то, что я считаю верным. Ссылка: Нобору Охта и Алан Р. Робертсон, Колориметрия: основы и приложения (2005).

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

Как было обнаружено в девятнадцатом веке, люди видят много разных спектров как имеющие один и тот же цвет. Проводятся эксперименты, в которых свет двух разных спектров генерируется с помощью ламп и фильтров, и людей спрашивают, один ли это цвет? С помощью таких экспериментов подтверждается, что люди не видят спектр, а только его интегралы с определенными весовыми функциями.

Цифровые камеры фиксируют отклик на свет наборов фотодиодов, покрытых разными фильтрами, а не более полный спектр, который вы могли бы увидеть с помощью спектрофотометра. Используются три или четыре разных типа фильтров. Результат сохраняется в виде необработанного файла, выводимого камерой, хотя многие люди подозревают, что необработанные файлы в большей или меньшей степени «готовятся» производителями камеры (датчики камеры, разумеется, являются запатентованными). Физиологические ответы могут быть аппроксимированы путем применения преобразования матрицы к необработанным данным.

Для удобства, вместо использования аппроксимаций к физиологическим реакциям, для обозначения цветов используются другие типы троек чисел, например, Lab, описанные в https://en.wikipedia.org/wiki/Lab_color_space (но обратите внимание на предупреждение на странице). Нужно различать тройки, которые могут выражать полный спектр оценочных физиологических реакций от других, как RGB, который не может. Последние используются потому, что они отображают цвета, которые могут отображать экраны компьютеров. Они являются результатом преобразований из троек, таких как Lab, или из необработанных данных. CMYK для принтеров.

11 голосов
/ 05 июня 2017

Причина, по которой камеры и дисплеи работают в RGB, заключается в том, что наши сетчатки работают так .

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

Обоснованием было бы «если любая цветовая комбинация может быть доставлена ​​в мозг только как комбинация из трех компонентов, я могу обмануть зрительную систему, представив только заданную комбинацию этих изолированных, чистых компонентов (через дисплей RGB) и пусть зрительная система расшифрует их, как будто они настоящие.

Интересно отметить, что, поскольку мы являемся трихроматами, большинство цветовых систем имеют трехмерную природу (Lab, HSV, YCbCr, YUV и т. Д.), не из-за внутренних физических свойств цвета но вместо этого из-за того, как работает наша зрительная система.

8 голосов
/ 04 июня 2017

Есть две взаимодействующие причины.

Причина (1) заключается в том, что глаз (обычно) принимает световые волны различной длины из любой заданной точки [так сказать]. Белый свет, например, на самом деле [как правило] представляет собой смесь многих различных длин волн; нет «белой» длины волны. Точно так же пурпурный цвет (часто называемый в настоящее время «розовым» (через «ярко-розовый»)) представляет собой смесь красного и синего, но без зеленого (из-за чего он выглядит белым). Точно так же, что-то, что кажется зеленым, может иметь немного извести и некоторые голубые компоненты.

Следовательно, причина (2) в том, что RGB - это то, как работает человеческий глаз - у него есть красный, зеленый и синий сенсоры.

Таким образом, объединяя (1) и (2): чтобы человеческий мозг интерпретировал световые сигналы так же, как он будет интерпретировать исходные сигналы, они должны быть закодированы в его терминах.

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

По тому же признаку ... если бы оригинал был белым, то есть смесью всего спектра цветов, то человеческий глаз, воспринимая это, закодировал бы это с точки зрения только красного, зеленого и синего ... и воспроизведения, используя только красный, зеленый и синий (в тех же пропорциях) представляются человеческому восприятию чистым белым - суть в том, что информация теряется в обоих случаях, но конечный результат кажется идеальным, потому что потери соответствуют. К сожалению, они будут соответствовать точно только в том случае, если датчики [RGB] в камере имеют чувствительность кривых точно так же, как датчики [RGB] в человеческом глазу [отмечая, что каждый датчик активируется рядом цветов] - если, например, салатовый цвет активировал каждый из красных, зеленых и синих датчиков в одинаковой степени в двух случаях.

4 голосов
/ 05 июня 2017

ТЛ; др: Намного легче обнаружить свет в трех широких частях спектра, чем точно анализировать частоту. Кроме того, более простой детектор означает, что он может быть меньше. И третья причина: цветовое пространство RGB имитирует принципы работы человеческого глаза.


Как доказал Макс Планк, каждое горячее тело испускает излучение с различными частотами. Он предложил и доказал, что энергия излучается вспышками, называемыми фотонами, а не непрерывно, как предполагалось ранее. И с того дня физика никогда не была прежней. Единственное исключение - идеальный ЛАЗЕР / МАЗЕР, который испускает излучение только одной частоты и разряжает (неоновые полосы ...) излучает излучение с несколькими изолированными частотами.

Распределение интенсивностей по частотам называется спектром. Аналогично, у детекторов также есть свои спектры, в этом случае это распределение отклика детектора на излучение нормированной интенсивности.

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

Конечно, есть детекторы, которые могут собирать спектры и извлекать информацию. Они используются в методах оптической эмиссионной спектроскопии и рентгеновской дифракции и флуоресценции, где химический состав или микроструктура оцениваются по спектрам. Для фотографии это излишне; за исключением астрофотографии, где мы хотим оценить «химический» состав, но изображения «переведены» в поддельные цвета. Эти детекторы точные и огромные или маленькие, но неточные, и для их анализа требуется гораздо больше вычислительных мощностей.

Человеческий глаз или любой другой глаз не тот случай. Мы не видим химического состава или состояния связи объекта. В глазу четыре разных «детектора»:

  • бесцветный: они наиболее чувствительны и работают на всех видимых частотах. Без них вы бы ничего не увидели ночью.
  • красные: они наиболее чувствительны в области низких частот. Вот почему горячие вещи сначала светятся красным.
  • зеленые: они наиболее чувствительны в высокочастотных областях. Вот почему горячие вещи превращаются из красного в желтый при дальнейшем нагревании.
  • блюз: они наиболее чувствительны в области высоких частот. Вот почему нагретые вещи светятся белым при нагревании гораздо больше. Если вы сможете нагревать их все больше и больше, они начнут светиться голубым.

Если мы посмотрим на радугу, или на CD, или на DVD, мы увидим, как цвета меняются с красного на фиолетовый. Лучи света для данной части радуги имеют в основном одну перикулярную частоту. Инфракрасные лучи невидимы для наших глаз, и они не возбуждают никаких клеток в сетчатке. Увеличивая частоту, лучи начинают возбуждать только красные «ячейки», а цвет ic рассматривается как красный. Увеличивая частоту, лучи возбуждают «в основном красные клетки», а чуть-чуть «зеленые» и цвет выглядит как оранжевый. Желтые лучи возбуждают "зелень" немного больше ...

Датчики в камерах, CCD или CMOS, возбуждаются световыми лучами любой частоты, чтобы сделать снимок, который наши глаза увидят как цвет, который мы просто имитируем человеческим глазом - мы используем, например, фильтр Байеса. Он состоит из трех цветовых фильтров с преднамеренно подобными спектрами пропускания для типов клеток нашей сетчатки.

Свет, отраженный от желтой бумаги, освещенной Солнцем, полностью покидает «красные» (100%), полностью «зеленые» (100%) и немного «голубой» (5%), так что вы видите это желтый. Если вы сделаете снимок, то, скажем, то же самое, возбуждение собирается камерой. При взгляде на изображение на экране экран посылает 100 красных фотонов, 100 зеленых фотонов и 5 синих фотонов за действительно короткий период времени к вам. Уровни возбуждения вашей сетчатки будут аналогичны уровням возбуждения, вызванным прямым наблюдением, и вы увидите фотографию желтой бумаги.

Есть еще одна проблема, которую нужно решить, если мы хотим воспроизвести цвета. При использовании цветового пространства RGB нам нужно всего три типа источников света на пиксель. У нас может быть три цветовых фильтра (ЖК-дисплеи работают таким образом), у нас может быть три типа светодиодов (используются светодиодные и OLED-панели), у нас может быть три типа люминофоров (используется ЭЛТ). Если вы хотите полностью воспроизвести цвет, вам понадобится бесконечное количество фильтров / источников на пиксель. Если вы хотите использовать симуляцию цвета информации по частоте, это тоже не поможет.

Вы также можете попытаться воспроизвести цвет по его температуре. Я полагаю, вы сможете воспроизводить только красно-оранжево-желто-белые цвета, и вам придется нагревать каждый пиксель до температуры около 3000 К.

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

Другая проблема, которую нужно решить, - это как хранить данные? Обычное изображение 18MPx RGB состоит из трех матриц 5184x3456 ячеек, каждая из которых имеет размер 8 бит. Это означает, что 51 МБ несжатого файла на изображение. Если мы хотим сохранить полный спектр для каждого пикселя, скажем, в 8-битном разрешении, это будет 5184x3456x256 übermatrix, что приведет к несжатому файлу 4 ГиБ. Это означает сохранение интенсивностей 256 различных частот в диапазоне 430–770 ТГц, то есть разрешение с интервалом 1,3 ТГц на канал.

Совершенно не стоит усилий, если можно так сказать ...

2 голосов
/ 07 июня 2017

Краткий ответ: поскольку длина волны - это одно значение, а весь диапазон цветов, который мы можем воспринимать, не может быть представлен одним значением, больше, чем размеры прямоугольного тела могут быть представлены одним измерением.

Чтобы продолжить аналогию, вы можете указать объем твердого тела, но есть много разных твердых тел с одинаковым объемом.

RGB, CMY, HLS и т. Д., Все они используют три «измерения», потому что теперь вам нужно адекватно описать цвета, видимые людьми.

Длина волны соответствует Hue в системе HLS, но она не может сказать вам яркость или насыщенность.

Re "Кроме того, разве это не [[длина волны]] информация, которая сначала захватывается цифровыми камерами?" , нет, это не так.

Как отмечали другие, цифровые камеры фиксируют относительную интенсивность красного, зеленого и синего цветов. (И некоторые использовали по крайней мере один дополнительный цвет, чтобы лучше различать критическую красную область с зеленым.) Прямое измерение частоты входящего света было бы намного сложнее. У нас просто нет дешевых датчиков, которые могут это сделать, и уж точно, нет таких, которые мы можем изготовить в сетке из нескольких миллионов из них. И нам все же нужен способ для камеры измерять яркость и насыщенность.

...