Текущий архив: 2003.07.28;
Скачать: CL | DM;
Вниз
Цветовая задачка. Найти похожие ветки
← →
Radionov Alexey (2003-07-11 07:26) [0]Для желающих размяться предлагаю одну практическую задачу, с которой я недавно столкнулся и которая оказалась довольно нетривиальной.
Итак: Задано некоторое натуральное число N. Необходимо в пр-ве RGB найти N максимально отличающихся (контрастных) друг от друга цветов фиксированной интенсивности (если угодно - яркости).
← →
Думкин (2003-07-11 07:58) [1]1. Каую метрику вводим для контрастности?
2. Что значит максимально? Сумма растояний между всеми парами максимальна?
3. Про интенсивность подробнее.
← →
Radionov Alexey (2003-07-11 08:07) [2]>Думкин © (11.07.03 07:58)
1. Метрика евклидова. Про "контрастность" становится ясно после прочтения 2.
2. Максимально возможное расстояние между двумя ближайшими точками.
3. Интенсивность здесь - евклидово расстояние от начала координат (от черного цвета)
← →
Думкин (2003-07-11 08:15) [3]Задача не всегда имеет решение. Пространство дискретно.
Количество точек с заданной интенсивностью конечно. Соответственно N точек может и не найтись.
← →
Radionov Alexey (2003-07-11 08:21) [4]>Думкин © (11.07.03 08:15)
Сорри, пр-во считаем непрерывным ;) Обычное R^3
← →
Думкин (2003-07-11 08:29) [5]Хорошо.
А тогда работаем и с отрицательными значениями или как?
← →
SergP (2003-07-11 08:37) [6]Думаю все же нужно определиться что такое контрастность и что такое интенсивность.
2 Radionov Alexey
что ты считаешь интенсивностью:
Y=R+G+B,
Y=sqrt(R*R+G*G+B*B)
или что-то другое, типа Y=a*R+b*G+c*B ?
и насчет контрастности:
как ее считать:
K=abs(R1-R2)+abs(G1-G2)+ABS(B1-B2) или по другому?
← →
Radionov Alexey (2003-07-11 08:37) [7]>Думкин © (11.07.03 08:29)
В принципе, запрета нет. Но если рассматривать естественные ограничения (единичный куб (после нормирования RGB куба) пересеченный сферой) - то отрицательные значения как-то не приходят на ум.
← →
Думкин (2003-07-11 08:45) [8]SergP © (11.07.03 08:37)
Это он уже указал. Второй вариант.
Radionov Alexey © (11.07.03 08:37)
Приходить - не приходят, но раз уж дискретность побоку, то почему бы и нет? :-)
← →
MBo (2003-07-11 08:46) [9]HSL-пространство не подойдет?
← →
Radionov Alexey (2003-07-11 08:46) [10]>SergP © (11.07.03 08:37)
Я уже писал, что метрика евклидова.
То есть
Y=sqrt(R*R+G*G+B*B)
K=sqrt(sqr(R1-R2)+sqr(G1-G2)+Sqr(B1-B2))
← →
Radionov Alexey (2003-07-11 08:53) [11]>MBo © (11.07.03 08:46)
В принципе, подойдет. Ведь оно однозначно в RGB преобразуется. Так что переходить к другой системе координат можно, только все-таки хорошо бы обратный переход "домой" сделать:)
← →
MBo (2003-07-11 08:59) [12]В RGB-пространстве у тебя есть кривая поверхность равной яркости.
В HSL H-оттенок от 0 до 1 или от 0 до 240, S - насыщенность, L- яркость. Если цветовой куб в этой системе построить, то задача в плоскость переходит, находим в ней цвета - полагаю, гексагональная сетка - плотнейшая, затем переводим найденные значения обратно в RGB
← →
Думкин (2003-07-11 09:01) [13]MBo © (11.07.03 08:59)
А при этом сохранится условие по контрастности?
← →
Radionov Alexey (2003-07-11 09:05) [14]>MBo © (11.07.03 08:59)
Борис, если не ошибаюсь, HSL - это куб, "поставленный на вершину". То есть преобразование линейное и сфера не перейдет в плоскость. Или я неправильного мнения об HSL?
← →
MBo (2003-07-11 09:36) [15]http://www.iro.umontreal.ca/~ostrom/publications/pdf/Scottsdale97_LEF.pdf
http://diwww.epfl.ch/w3lsp/pub/publications/colour/scdialcs_.pdf
http://www.sapdesignguild.org/resources/glossary_color/index1.html#cs_lab
http://www.normankoren.com/color_management.html
http://perlhorizons.com/article_images/manning/graphicsprogrammingwithperl-chap01.pdf
http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html
← →
MBo (2003-07-11 10:11) [16]http://www.efg2.com/Lab/Library/Color/Science.htm
разделы contrast и differences
особенно ссылки XRite и по CIE-модели
← →
Катерина (2003-07-11 16:02) [17]Если перевести задачу в R^3, то на 1/8 сферы радиуса "интенсивность", x,y,z >= 0 (сферический треугольник), надо найти точки в кол-ве N, ближайшие из которых равноудалены друг от друга на максимальное расстояние (контрастность).
Мое решение таково:
1. Найти ровно N точек не всегда получится. Определим k так, чтобы N <= 1+2+3+...+k+(k+1), причем k - минимальное. Именно столько точек и получится.
2. Разобьем каждую сторону треугольника на к равных частей и проведем из этих точек дуги, "параллельные" сторонам треугольника. Координаты (x,y,z) точек пересений дуг друг с другом и со сторонами треугольника (а их будет 1+2+3+...+k+(k+1)) и будут удовлетворять заднным условиям.
Страницы: 1 вся ветка
Текущий архив: 2003.07.28;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.005 c