С Новым годом! Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/105: Рейтинг темы: голосов - 105, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
1

Формула субтрактивного смешения цветов (CMYK)

20.05.2013, 12:29. Показов 21516. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна формула субтрактивного смешения 2 и 3 цветов. Это цвета в формате CMYK. Например, есть первый цвет: С = 10%, M = 95%, Y = 93%, K = 2% и второй цвет: С = 66%, M = 0%, Y = 100%, K = 0%. Как расчитать значения CMYK с учетом того, что цвета могут браться в разной пропорции?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2013, 12:29
Ответы с готовыми решениями:

Нужна формула субтрактивного смешивания цветов
Здравствуйте. Сразу извиняюсь за возможно глупые вопросы. Интересует такие вопросы: 1) Нужна...

Красный, синий и желтый называются основными цветами, потому что их нельзя получить путем смешения других цветов
Красный, синий и желтый называются основными цветами, потому что их нельзя получить путем смешения...

Гистограмма CMYK/RGB - некорректный перевод из CMYK в RGB
Возникла проблема с правильностью перевода из RGB в CMYK. Все переменные до самого конца - double,...

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов....

28
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 12:42 2
Цитата Сообщение от 011119xx
Нужна формула субтрактивного смешения 2 и 3 цветов. Это цвета в формате CMYK. Например, есть первый цвет: С = 10%, M = 95%, Y = 93%, K = 2% и второй цвет: С = 66%, M = 0%, Y = 100%, K = 0%. Как расчитать значения CMYK с учетом того, что цвета могут браться в разной пропорции?
Название темы неправильное. CMYK - аддитивная схема смешения, RGB - субтрактивная.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 12:43 3
Цитата Сообщение от 011119xx
Как расчитать значения CMYK с учетом того, что цвета могут браться в разной пропорции?
Как альфа-блендинг не получится?
C = C1*a + C2*(1-a); и т.д.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
20.05.2013, 13:03 4
Цитата Сообщение от OtyxPM
Название темы неправильное. CMYK - аддитивная схема смешения, RGB - субтрактивная.
Ты не прав!
Цитата Сообщение от OtyxPM
Как альфа-блендинг не получится?
C = C1*a + C2*(1-a); и т.д.
Это не то. Нужна реальная формула, а не гадание.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 13:28 5
Цитата Сообщение от 011119xx
Цитата Сообщение от OtyxPM
Название темы неправильное. CMYK - аддитивная схема смешения, RGB - субтрактивная.
Ты не прав!Да, с утра перепутал :-) , поэтому альфу и предложил.
CMYK для печати на буниге, действительно субтрактивный. (RGB - для активных источников света, аддитивный).
Альфа-блендинг 100% подходит для аддитивного смешения,и это не гадание :-) Но для субтрактивного альфа не пойдёт.

Можно получить работающую формулу в три этапа:
1) конверсия CMYK -> RGB (формулу найдёте?);
2) операция альфа-блендинга с RGB-цветами, результат RGB;
3) конверсия RGB -> CMYK.

Проверка - хотя бы в Экселе: там удобно цвета вычислять через VBO, по результатам красить клетки.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
20.05.2013, 13:31 6
У меня на экране изначально цвета RGB. Я их преобразую в CMYK. Тут их надо смешать, а потом обратно в RGB на экран.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 13:33 7
Цитата Сообщение от 011119xx
У меня на экране изначально цвета RGB. Я их преобразую в CMYK. Тут их надо смешать, а потом обратно в RGB на экран.
Нельзя как-то перенести смешивание на более ранний момент в алгоритме, пока цвета ещё в пространстве RGB?
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
20.05.2013, 13:40 8
Нет. Потому, что RGB смешивание это уже аддитивное, оно подходит для мониторов. Мне то надо краску смешивать.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 13:51 9
Цитата Сообщение от 011119xx
Нет. Потому, что RGB смешивание это уже аддитивное, оно подходит для мониторов. Мне то надо краску смешивать.
Это мне что-то напомнило... В нигазинах OBI в отделах, где продают краски, установлены компьютеры с мониторами, на которых покупатель может визуально смешивать краски (т.е. на RGB-мониторе имитируется субтрактивное смешивание!) и подбирать желаемый оттенок.
Значит, OBI эту задачу уже решило.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
20.05.2013, 14:06 10
И не только OBI решило эту задачу.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 15:30 11
Цитата Сообщение от 011119xx
У меня на экране изначально цвета RGB. Я их преобразую в CMYK. Тут их надо смешать, а потом обратно в RGB на экран.
Всё ещё не решаетесь?

1) конверсия CMYK -> RGB:
Код
R1 = 1-C1-K1;  G1 = 1-M1-K1;  B1 = 1-Y1-K1;
R2 = 1-C2-K2;  G2 = 1-M2-K2;  B2 = 1-Y2-K2;
2) операция альфа-блендинга с RGB-цветами, результат RGB:
Код
R = R1*a + R2*(1-a);  G = G1*a + G2*(1-a);  B = B1*a + B2*(1-a);
3) конверсия RGB -> CMYK:
Может, уже и не нужно, раз отправляете обратно на RGB-дисплей. Но если хотите, то
Код
C = 1-R;  M = 1-G;  Y = 1-B;
K = min(min(C,M),Y);
C -= K;  M -= K;  Y -= K;
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
20.05.2013, 15:49 12
У меня в качестве исходных идут RGB цвета, а не CMYK. Я перевожу RGB -> CMYK. Надо CMYK смешивать, а не RGB.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.05.2013, 16:03 13
Цитата Сообщение от 011119xx
У меня в качестве исходных идут RGB цвета, а не CMYK. Я перевожу RGB -> CMYK. Надо CMYK смешивать, а не RGB.
Понятно. Разговор с глухим. Подставьте формулы (1) в формулы (2), (3) и получите одну длинную формулу.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
20.05.2013, 23:16 14
011119xx, а нету формулы.
Можно подобрать две пары красок с одинаковыми cmyk, которые при смешивании в одной и той же пропорции дадут разные цвета.

Ну и метод смешивания вы не описали. Одно дело - перемешать две краски, другое - типографский растр (вот он более-менее предсказуем).
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
21.05.2013, 07:34 15
Смешивать нужно 2 и 3 реальных краски... Благодаря инету продвинулся до следующего. Реальнее сделать преобразование каждого цвета в Lab, то есть RGB -> Lab. Потом смешать цвета в Lab. Якобы это делается просто: L = (L1 + L2)/2, a = (a1 + a2)/2, b = (b1 + b2)/2. А потом преобразовать обратно Lab -> RGB. Нашел алгоритмы этих преобразований здесь http://www.easyrgb.som/index.php?X=MATH и написал тестовую программу. Но почему-то результат моих преобразований отличается от того что получается в виртуальном миксере http://www.goldenpoymts.som/products/mixer/ , который я пытаюсь повторить.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
21.05.2013, 09:48 16
Эта формула - для смешивания растром.
И то тут есть подвох в виде гаммы монитора.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
22.05.2013, 10:55 17
Да. Эти формулы не подходят. Цвет смеси не тот получается.
0
TomobotV_1.0
22.05.2013, 12:25 18
Тут проблема в семантике, ибо ЦМИК это цвет, а РГБ это свет, а цвет и свет смешиваются по разному... :)
И никогда преобразование туда-сюда не будет однозначным. Потому что черный в цмике можно получить 2-мя способами, один это просто черный, а второй, это смесь всех. И этим 2-м черным будет соответствовать один черный в ргб. То же самое относится ко всем оттенкам серого, да и вообще куче цветов в ргб соответствует 2 цмиковых. Для корректного отображения нужно работать только со цмиковыми цифрами, а потом конвертить их в ргб только для отображения. Из РГБ получить однозначный цмик нельзя, а уж темболее нельзя смешать ргб и получить тот же цвет что и при смешивании цмика!
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
22.05.2013, 14:47 19
Совершенно верно все!
0
TomobotV_1.0
22.05.2013, 15:15 20
Ну а проблема тода в чем? Если ты берешь смешиваешь 2 цмиковых цвета в соотношение а к в, а+в=1, то новый получится аС1+вС2 аМ1+вМ2... т.е. твой 38/47,5/96,5/1 получится, ну если в равной пропорции мешать...
22.05.2013, 15:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2013, 15:15
Помогаю со студенческими работами здесь

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

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

Математическая модель химико-технологического аппарата смешения растворов
Задача: вывести математическую модель химико-технологического аппарата смешения растворов....

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

Задать два перечислимых типа: первый - коды цветов, второй - названия цветов
Задать два перечислимых типа: первый коды цветов, второй - названия цветов. Вводится имя цвета,...

Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее...

CMYK -> RGB
Какой алгоритм конвертирования из цветового пространства CMYK в RGB. В гугле был найден только RGB...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru