Falbhanachaich
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Уважаемые гуру Photoshop и цветотональных наук! Есть необходимость поднять (а заодно задать) вопрос по теме, которая — в известных кругах — столь изъезжена, что даже неловко: вопрос перевода цветного изображения в grayscale; а именно — как эта кухня работает в Фотошопе, а ещё точней - алгоритм (формула) работы Photoshop при переводе Image -> Mode -> Grayscale. По теме сей написаны тома - в бумаге и в Web, — но на своё удивление, перелопатив кучу сайтов, хелпов и несколько книжек, я обнаружил полное отсутствие единогласия... и внятного ответа на свой вопрос. КАК же (с точностью до формул) ОН это всё-таки делает? Заранее оговорюсь, что я говорю не о техниках и художественных методиках перевода RGB в полутональное изо (их я тоже обчитался), а конкретно о тех алгоритмах, формулах и инструментах, которые входят непосредственно в функционал ФШ. Ясно, что ФШ использует в разных местах несколько цветовых моделей и формул над оными как основу для перевода в полутона. Но где — какие? Я провёл кучу вычислений с найденными в инете по статьям формулами, и обнаружил несколько интересных закономерностей и зависимостей, которые, к моему опять же удивлению, не так просто с наскоку найти в паутине. В ФШ есть несколько инструментов перевода в grayscale, а также "скрытой" концепции соответствия цвета тону, и всё это работает по-разному. Вот мой список с комментариями (он неполон, но остальные аспекты меня меньше волновали; один бы выяснить со всей точностью): 1) среднее арифметическое каналов (R+G+B)*1/3. Используется для расчёта I (Intensity) в третьей "вочеловеченной" цветовой модели (после HLS и HSB) — HSI. Но ФШ-ом, похоже, нигде не используется (по кр. мере явно); 2) "composite GRAY equivalent" - это мой окказионализм; называется это иначе, но хотелось сортировать вещи по тому критерию, ГДЕ и КАК мы это видим в ФШ. Итак -- это именно та цифра, которую мы видим как эквивалент данного цвета по 255- серой шкале в таких инструментах, как Curves (если нажать Ctrl и повозить по фото, то на кривой будет бегать кружок именно ЭТОГО значения); а также именно так переводится цвет в grayscale при работе в Levels (RGB-совмещённый канал), Blend If... (в Layer Style -- поддиалог Blending Options) и куче других мест. На самом деле этот мой "composite GRAY equivalent" не что иное, как одна из трёх формул светлоты/светимости т.н. "средневзвешенной суммы" — 0.299R + 0.587G + 0.114B. Ещё её упрощают до 30-60-10, но ФШ считает точно . Кстати, насчёт именования величины, которая считается по этой формуле - тоже никакого консенсуса, что в наших источниках; то это у них светлота, то яркость, то светимость; то, соотв., Lightness, Brighntess, Luminance и даже Luminosity... Есть ещё вторая, альтернативная формула этой величины -- 0.2126R + 0.7152G + 0.0722B, но ФШ-ом она, похоже, также нигде не используется. По крайней мере, по ней больше единогласия: в основном сходятся на том, что это Luma (обозн. Y), и коэфф. завязаны на силе восприятия различных диапазонов видимого спектра (их "силе яркости" при равной силе излучения); 3) GRAY при использовании Desaturate (Image -> Adjustments ->). В этом инструменте тупо используется такая величина, как L (кстати тоже фигурирует в разных источниках то Lightness, то Luminosity — с равной частотой!) из модели HLS. Это просто ср. арифметическое максимального и минимального значения в каналах: L(hls) = 0.5*(max(RGB) + min(RGB)). Работает на редкость тупо по прямому назначению; 4) значение L (правильнее L*) из модели Lab (правильнее опять же L*a*b*). Останавливаться не буду, гуру и так в курсе; а я сам мало что смыслю в этом, хоть и подкопил инфы. Понятно, что аппаратно-независимая модель, понятно, что расчет ведётся из цв. пространства CIE XYZ (cielab) через "истинные" координаты цвета (а точнее -- координаты Y), понятно, что двухчастная формула и график схожий с кубическим корнем, и понятно, что прямых формул с RGB или ей подобной модели нет. 5) GRAY из перевода Mode -> Grayscale. Это, наконец, то, что вызывает все недоумения и споры. Алгоритма (или хотя бы объяснения откуда ноги растут) получения цифр, оказывающихся при переводе цветного изображения в полутон при помощи этой команды Я ТАК И НЕ НАШЁЛ. Для наглядности я составил небольшую таблицу, чтобы комментировать свой основной вопрос, который ниже. Я взял "на анализ" три цвета, один произвольный, а также R и G. Этого достаточно, чтобы иллюстрировать казус. цвет | ср.арифм (I) | композит. "RGB-gray" из п. 2) | значение L* из Lab | L*(Lab) в пер. со 100% на 255-ед. | Gray при Desaturate | GRAY при Mode -> Grayscale | | | | | | | | 23/81/177 | 94 | 74 | 31 | 79 | 100 | 88 | R(255/0/0) | 85 | 76 | 57 | 145 | 127 | 146 | G(0/255/0) | 85 | 150 | 86 | 219 | 127 | 218 | Итак. Как мы видим, существует ба-альшая разница и разброд в понимании "серого эквивалента" какого-л. цвета (впрочем, факт известный — эта тема вообще предмет фундаментальных споров). Местами разница в 2 раза. Например, при той же работе кривыми (или уровнями), или в Blend if: Gray..., отсекая диапазон с нуля, мы увидим, что красный затронется почти одновременно с цветом 23/81/77 ("композитная концепция" считает его таким же тёмным, как и Red), но переведя ту же имагу в -> Grayscale, увидим, что красный аж почти в 2 раза светлее этого синеватого оттенка; а в Lab и вовсе почти без "почти". Так что, кстати, думайте, насколько "объективно" затрагиваются цвета при работе "композитными" движками... и как это может разниться с вашими целями... Так вот что поразительно! Есть три (!) разных — но ни одно из них не доставляет!!! — объяснения работы Image -> Mode -> Grayscale. а) Многие авторы сайтов по теории цвета вообще, и по ФШ конкретно, а главное — авторы серьёзных книг (в частности, такой столп как Дэн Маргулис, да и другие весьма компетентные мастера ФШ) прямо заявляют, что инструмент Mode -> Grayscale работает по принципу "2)", т.е. по формуле 30-60-10 (вернее, 0.299R + 0.587G + 0.114B). А это дьявольски неверно, это грубая дезинформация!! Не работает ни разу ФШ при переводе в режим Grayscale по этой формуле. Он по ней работает я написал где. б) Другие называют почти (но лишь почти!) верный вариант: что "Переводить изображение в Lab и брать оттуда канал Lightness, как многие делают, имеет немного смысла — то же самое вам сделает команда Mode -> Grayscale" (это почти цитата, как я её запомнил). Действительно, похоже на то, что цифры из посл. колонки всё же берутся из L*, но они не совпадают. в) Наконец, третьи говорят дельную и толковую вещь, но, к сожалению, не объясняют досконально, КАК. После поисков я всё же нашёл места (и то на забугорном), где прямо говорится, что НЕТ единой формулы, по которой ФШ переводит цветные изображения в Grayscale, это зависит от входного (т.е. в котором был при открытии файл) и выходного (текущего, который в Color Settings) рабочих пространств — причём как Gray, так и RGB, а также текущей гаммы монитора. Это -- в) которое -- действительно так; меняя рабочее пространство Gray, я (вслед за другими искателями правды) получал разные результаты. Я всё понимаю, что единой ф-лы нет; но какой-то набор формул по-любому существует; Фотошоп не художник, он цифры нам выдаёт, и цифры он может получать лишь из формул. Пусть их куча, и они сложные -- да хоть ряды Тейлора и операторы Лапласа, но что-то нигде нет ответа... Понимаю я и то, что расчёт перевода и получения этих загадочных цифр из последней колонки будет зависеть от координат примитивов RGB, и белых точек в текущем пространстве и гамме монитора; и если они завязаны на L*, то полюбому при переводе аппаратно-зависимых координат эти примитивы и точки задействованы... Но как? Я же знаю (из того же диалога Color Settings) эти фундаментальные показатели! ...кстати, забыл добавить, что работа шла в сеансе с рабочим пространством Gamma Gray 2.2 Так что, уважаемые мастера цвета (если кто осилил мои многабукоф), кто-нибудь сможет помочь? Дать компетентный и исчерпывающий ответ, откуда берутся и по какому принципу высчитываются эти конечные данные после перевода в Image -> Mode -> Grayscale? Или хотя бы сказать, из какой модели как исходника рассчитываются? Из Lab всё-таки? Или?... Формула(-ы) получения этих цифр-то по-любому есть!!! |