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

Вниз

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

 
Сашенька   (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 вся ветка

Форум: "Media";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
3-1092312735
sesh
2004-08-12 16:12
2004.09.05
PostgreSQL


1-1093023657
dracula
2004-08-20 21:40
2004.09.05
Как отделить имя файла?


1-1093017618
Скромный инкогнито
2004-08-20 20:00
2004.09.05
Как написать маленькую программу?


14-1092776663
Cheater
2004-08-18 01:04
2004.09.05
Загадили природу....


1-1092906179
Марат
2004-08-19 13:02
2004.09.05
Fatal Error





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