Pull to refresh

Comments 66

UFO just landed and posted this here
Конечно, вся суть в том, что смешивание трёх цветов (пурпурного, голубого и жёлтого) действительно даст чёрный, но, как вы понимаете, это очень дорого (тройной расход краски), да и цвет получается не совсем чёрным, а каким-то грязным.
UFO just landed and posted this here
Какие формулы? Краски просто не настолько чистые.
Видимо имеются в виду формулы перевода из RGB. Как я понимаю, там просто условие — если R=G=B, то берём соответствующее количество чёрного, иначе как для CMY.
Формулы слишком легко гуглятся, чтобы о них спрашивать.

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

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

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

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

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

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

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

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

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

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

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

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

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

Ведь если рецепторы аналогичны нашим колбочкам и воспринимают определенную длину волны, Hue-основанные модели могут быть использованы без изменений. К примеру, если у человека была бы 4 колбочка, воспринимающая строго желто-оранжевый цвет, это внесло бы искажения в то, что чистый спектральный цвет мы отличали бы от «смеси» красного и зеленого на мониторе, не более того. Возможно, я в чём-то ошибаюсь, но кажется так.
будь у нас 12 колбочек — Hue компнента в HSV как минимум требовалась бы гораздо более точная, да и Saturate Value тоже нужны точные. А так да, думаю смогли бы в 3-х компонентный цвет преобразовать
Штука с 24 битным ргб цветом в том, что во-первых человек видит больше цветов, чем можно выразить в 16 битах (которыми давно никто не пользуется, ужасающе выглядит картинка), а во-вторых динамический диапазон мониторов намного меньше доступного глазу (о чем, кстати, написали в разделе про тв стандарты), поэтому даже 24 бита в таком виде — это меньше, чем видит человек. Поэтому люди давно изобрели и используют 30 и более битные мониторы для профессиональной работы с цветом.
В CMYK K — это не blacK, а Key. И key может быть любой, например золотой металлик.
Давайте мухи отдельно, колеты отдельно.

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

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

K — чёрный. Spot — любой.
Sign up to leave a comment.

Articles