Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Сравнение цветов по RGB характеристикам Добавлено: 16.06.03 12:21  

Автор вопроса:  Гагик | Web-сайт: vanembroidery.narod.ru
Вопрос такой: Имеется исходный цвет с RGB характеристиками R0; G0; B0.   Также имеется второй цвет с характеристиками R1; G1; B1.  Как можно математически вычислить коэффициент (процент) сходства второго цвета с исходным?

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #1 Добавлено: 16.06.03 16:37

Сначала нужно перевести значения в монохромные.

C1 = 0
C2 = 1

А вот решение:
Q = 1 - abs(C1 - C2) / 255

Если Q=0, то цвета одинаковы, если Q=1, они максимально контрастны.

Ответить

Номер ответа: 2
Автор ответа:
 Гагик



Вопросов: 21
Ответов: 12
 Web-сайт: vanembroidery.narod.ru
 Профиль | | #2
Добавлено: 17.06.03 13:40

Идея понятна, спасибо. Остается один нерешенный вопрос, как перевести значения в монохромные? Долго копался в литературе, но ничего не нашел.

Ответить

Номер ответа: 3
Автор ответа:
 univercal



ICQ: 173084484 

Вопросов: 5
Ответов: 76
 Web-сайт: univercal-s.narod.ru
 Профиль | | #3
Добавлено: 17.06.03 13:48

А если нужно определить HSB'шную разницу между цветами? Т. Е. не только контрастность, а разницу вообще :) Я думаю, что-то вроде этого:

Diff = Sqr((R1-R2)^2+(G1-G2)^2+(B1-B2)^2)

Суть: если представить цвет как (R1, G1, B1) как координаты некой точки (X, Y, Z), то разница между этими цветами суть расстояние между точками.

Ответить

Номер ответа: 4
Автор ответа:
 Гагик



Вопросов: 21
Ответов: 12
 Web-сайт: vanembroidery.narod.ru
 Профиль | | #4
Добавлено: 17.06.03 13:56

Помоему это в точку!!!!   Но мне мнжно процентное соотношение сходства, скорее всего нужно будет еще и:

100(1 - Diff / 255) ?

Ответить

Номер ответа: 5
Автор ответа:
 univercal



ICQ: 173084484 

Вопросов: 5
Ответов: 76
 Web-сайт: univercal-s.narod.ru
 Профиль | | #5
Добавлено: 19.06.03 18:31

Ах, да, забыл... Проценнтное... По-моему, там нужно делить не на 255, а... sqr(3*255^2), т. е. на 255*sqr(3), потому что это - максимально возможная разница.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам