В настоящее время я пытаюсь преобразовать цвета между цветовым пространством RGB (красный, зеленый, синий) и цветовым пространством RYB (красный, желтый, синий) и обратно.
Основываясь на деталях в следующей статье, я могу преобразовать RYB в RGB с помощью трилинейной интерполяции - где параметрические веса (s, t, u) - это цвета RYB, а вершины кубаявляются трехмерными точками в пространстве RGB.
Краска, вдохновленная смешиванием цветов и композицией для визуализации - Госсет и Чен - Раздел 2.1 - Детали реализации
Мои трудности заключаются в обращении преобразованияпроцесс.
Во второй статье упоминается использование этого метода, а также указывается, что обратное преобразование было достигнуто с использованием метода Ньютона.Но не предоставляет более подробной информации.Это, вероятно, указывало бы на корень в решении трилинейных интерполяционных уравнений.
О передаче стиля рисования фотографическим изображениям с помощью внимания к цветовому контрасту - Сяоянь Чжан;Констебль, М .;Ин Хе;
Прежде чем я углублюсь в этом вопросе с помощью уравнений, кто-нибудь видел или решил это на таком языке, как Java / C / C ++ / C #?
Мой текущий подход состоит в том, чтобы взять прямые уравнения трилинейной интерполяции (RYB в RGB), расширить и переставить, чтобы обеспечить 3 одновременных уравнения для 3 неизвестных (параметрические весовые коэффициенты: s, t и u), а затем выработатькак найти корни, используя метод Ньютона-Рафсона.Я иду об этом в правильном направлении?
Я отредактирую этот вопрос в ближайшее время, чтобы представить уравнения.
Большое спасибо за ваше время,
Бен