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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2013, 14:32   #1
hiho
Форумчанин
 
Регистрация: 29.04.2008
Сообщений: 100
По умолчанию Цвет пикселя

Добрый день. Возникла необходимость определять цвет пикселя не стандартным способом, а точнее - определить к какому из 4 цветов(красный, зелёный, желтый, белый) "ближе" цвет пикселя. Задача стоит не столько в написании на конкретном языке, а в самом алгоритме, можно ли заставить программу "визуально" отличать цвета?
hiho вне форума Ответить с цитированием
Старый 20.06.2013, 15:47   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Компоненты (красный, зеленый, синий):
Красный 255 0 0
Зеленый 0 255 0
Желтый 255 255 0
Белый 255 255 255

Разбиваем цвет на 3 компонента, считаем расстояние, определяем к какому цвету ближе.
Расстояние можно считать как обычно - (r1-r2)^2+(g1-g2)^2+(b1-b2)^2, где (r1,g1,b1) и (r2,g2,b2) - требуемый для определения цвет и цвет-эталон.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.06.2013, 16:07   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Кстати, может быть путаница с названиями:
R=0;G=255;B=0 - это clLime (цвет лайма), хотя " чистый " цвет.
а зеленый (clGreen) это :R=0;G=128;B=0
type_Oleg вне форума Ответить с цитированием
Старый 20.06.2013, 21:12   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Расстояние можно считать как обычно - (r1-r2)^2+(g1-g2)^2+(b1-b2)^2, где (r1,g1,b1) и (r2,g2,b2) - требуемый для определения цвет и цвет-эталон.
В цветовом пространстве евклидова геометрия не действует.
Например, каким цветом должен считаться спектрально чистый синий?
s-andriano вне форума Ответить с цитированием
Старый 20.06.2013, 21:15   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Например, каким цветом должен считаться спектрально чистый синий?
Не могу ответить на этот вопрос.
Формула цветового отличия
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.06.2013, 00:00   #6
hiho
Форумчанин
 
Регистрация: 29.04.2008
Сообщений: 100
По умолчанию

хм, заявленного на вики 2,3 так и не удалось достичь, да и определение хромает:
тестируемый цвет: 408404 - темно зелёный
эталонный цвет 1: 79000F - малиновый
эталонный цвет 2: A1DB66 - салатовый оттенок
Итог: Тестируемый цвет - красный
hiho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать цвет пикселя. sergeyrulit Общие вопросы Delphi 6 02.07.2010 11:55
Как определить цвет пикселя? zotox Общие вопросы Delphi 2 15.11.2009 19:05
Цвет пикселя неактивного окна. GrindeX Общие вопросы Delphi 2 08.11.2009 16:10
определить цвет каждого пикселя Dimarik Общие вопросы C/C++ 4 17.08.2009 16:21
Быстро получить цвет пикселя... prizrak1390 Мультимедиа в Delphi 4 09.01.2008 20:28