Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 10:00   #1
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость Поиск максимально похожего цвета в массиве

Добрый день
Есть набор цветов из массива 64

Color:array [1..64] of Tcolor;

есть эталонный цвет
ColorValue :Tcolor;

как найти максимально похожий цвет в массиве
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 12.04.2012, 11:30   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

По RGB-составляющим надо бы:

delta = 30*(Ri-R0)^2 + 59*(Gi-G0)^2 + 11*(Bi-B0)^2.

Перебираем в цикле и ищем минимальную дельту.
30, 59, 11 - множители чуствительности глаза к RGB.
EUGY вне форума Ответить с цитированием
Старый 12.04.2012, 11:52   #3
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Понятие "максимально похожий" сильно зависит от задачи. Обычно, "максимально похожий" будет ближайший цвет в евклидовом пространстве sqrt(sqr(r1-r2)+sqr(g1-g2)+sqr(b1-b2)). Если необходимо учитывать особенности восприятия, в таком случае используются более сложные формулы и отличные от RGB цветовые пространства.
x128 вне форума Ответить с цитированием
Старый 12.04.2012, 12:29   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну, а смысл вычислять точное значение гипотенузы, беря квадратный корень?
Вычисления из целочисленных превращаются ... брюки преврашаются...)
Лишнее движение, требуется всего лишь найти индекс в массиве.
EUGY вне форума Ответить с цитированием
Старый 12.04.2012, 12:46   #5
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

отлично! спасибо вопрос решен.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 13.04.2012, 18:13   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

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

На мой взгляд для решения задачи имеет смысл перейти в другое цветовое пространство, включающее яркость, цветовой тон и насыщенность, и определять расстояние уже по этим величинам, опять же с некоторыми весовыми коэффициентами. Причем, выбор коэффициентов зависит от задачи (т.е. нельзя привести единый набор коэффициентов пригодный для всего). Опять же, коэффициент при цветовом тоне сам по себе может зависеть от насыщенности, а по большому счету и от яркости (последнее уже особенность человеческого глаза).
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как произвести поиск наиболее похожего материала Andreog Microsoft Office Excel 1 07.09.2010 23:08
поиск цвета пикселей nolz Общие вопросы Delphi 1 27.05.2010 13:30
Поиск максимально приближенного файла coNsept Общие вопросы C/C++ 9 26.05.2010 17:28
Поиск похожего текста Valg Microsoft Office Excel 18 04.10.2009 20:32
Поиск похожего. Kukkk Общие вопросы Delphi 4 06.10.2007 23:11