Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.07.28;
Скачать: [xml.tar.bz2];

Вниз

Цветовая задачка.   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
14-91839
Вован
2003-07-10 19:28
2003.07.28
ВОЗМОЖНО ЛИ В ВИНДОВСЕ РИСОВАТЬ ПО ВСЕМУ ЭКРАНУ ПОВЕРХ ВСЕГО


6-91783
MegaVolt
2003-05-22 11:10
2003.07.28
Как определить по имени компа реально включен ли он или нет?


3-91653
oleg_SYS
2003-07-05 17:43
2003.07.28
Графика в MS Access


14-91865
Феликс
2003-07-10 23:14
2003.07.28
Вопрос по Перлу.


14-91901
Jumbo
2003-07-12 17:51
2003.07.28
Дискеты и CD-диски





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский