Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Сравнение цветов   Найти похожие ветки 

 
Сашенька   (2004-06-08 18:59) [0]

может кто знает какие есть способы обьединения нескольких цветов
по похожести(коэфициент может меняться)


 
Сашенька   (2004-06-11 11:14) [1]

ау


 
Сашенька   (2004-06-11 11:15) [2]

это же не такой и сложный вопрос, просто у меня все идеи кончились


 
Damage ©   (2004-06-11 11:20) [3]

Ну, например, раскладывай цвета на RGB составляющие и вычисляй разницу между каждой составляющей для двух цветов (по модулю).
Потом эти 3 числа, например, складывай - чем меньше результат, тем цвета похожее.


 
Сашенька   (2004-06-11 13:35) [4]

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


 
Amoeba ©   (2004-06-11 15:54) [5]

А что есть упоминаемый тобой коэффициент? Как делается группировка?


 
Amoeba ©   (2004-06-11 15:56) [6]

Может кластерный анализ поможет?


 
Сашенька   (2004-06-11 16:19) [7]

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


 
Pipa   (2004-06-11 19:43) [8]

HSL + CMYK


 
Jurijs ©   (2004-06-12 01:44) [9]

Вот кусок кода для сравнения цветов. В принципе, то же, что Damage предлагал.


// This function is only intended to demonstrate the concept of finding the
// "nearest" color from a list.
FUNCTION NearestColor(CONST color:  TColor):  TColor;
 CONST
   ColorList:  ARRAY[0..15] OF TColor =
     (clBlack, clMaroon,  clGreen,  clOlive, clNavy, clPurple,
      clTeal,  clGray,    clSilver, clRed,   clLime, clYellow,
      clBlue,  clFuchsia, clAqua,   clWhite);
 VAR
   DistanceSquared:  INTEGER;
   B1, B2:  INTEGER;
   G1, G2:  INTEGER;
   i:  INTEGER;
   R1, R2:  INTEGER;
   SmallestDistanceSquared:  INTEGER;
BEGIN
 RESULT := clBlack;                       // Assume black is closest color
 SmallestDistanceSquared := 256*256*256;  // Any distance would be shorter
 R1 := GetRValue(color);
 G1 := GetGValue(color);
 B1 := GetBValue(color);
 FOR i := 0 TO High(ColorList) DO
 BEGIN
   R2 := GetRValue(ColorList[i]);
   G2 := GetGValue(ColorList[i]);
   B2 := GetBValue(ColorList[i]);
   DistanceSquared := SQR(R1-R2) + SQR(G1-G2) + SQR(B1-B2);
   IF   DistanceSquared < SmallestDistanceSquared
   THEN BEGIN
     RESULT := ColorList[i];
     SmallestDistanceSquared := DistanceSquared
   END
 END
END {NearestColor};


Взято с http://homepages.borland.com/efg2lab/Library/Delphi/Graphics/Color.htm
Там же можно найти огромное количество информации (уже реализованные алгоритмы на Delphi) по работе с цветом.


 
Сашенька   (2004-06-16 15:21) [10]

спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.025 c
14-1092895082
Пубертанец
2004-08-19 09:58
2004.09.05
Как сконвертировать *.rm в *mp3?


14-1092373880
DION
2004-08-13 09:11
2004.09.05
Как узнать...Присутствует ли клавиатура???


1-1092850538
Реактор
2004-08-18 21:35
2004.09.05
Имитация клика мыши и нажатия кнопок.


14-1092362894
Думкин
2004-08-13 06:08
2004.09.05
С днем рождения! 13 августа


3-1092053243
Dmitry
2004-08-09 16:07
2004.09.05
Проблема с полем Char в Interbase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский