Алгоритм сравнения цветов?
847225 837225 -Цвета разные, как визуально так и символьно
9C982D 9B982D - только 2ой символ отличается и визуально цвета неотличить.
Собственно есть ли функции алгоритмы? Куда копать? работаю в AutoIt но это не важно.
Есть мысли идеи?:)
847225 837225 -Цвета разные, как визуально так и символьно
9C982D 9B982D - только 2ой символ отличается и визуально цвета неотличить.
Собственно есть ли функции алгоритмы? Куда копать? работаю в AutoIt но это не важно.
Есть мысли идеи?:)
Цвета даны в формате RGB.
Для понятности: [COLOR=Blue]9C[/COLOR][COLOR=SeaGreen]98[/COLOR][COLOR=Red]2D
[COLOR=Black]Можно сказать, что цвет - это точка в трехмерном пространстве. Вот и оценивайте, насколько удалены две точки друг от друга: если расстояние между точками меньше некоторого порогового значения, можно считать, что цвета неотличимы.[/COLOR]
[/COLOR]
А как с 16тиричной системой быть?
Сравнивать ёё надо переводя в 10ку а потом обратно или... есть проще методы?
Просто сравнение это есть if abs(a-b)<const then ....
вот эти A и B как получить?
А как с 16тиричной системой быть?
Сравнивать ёё надо переводя в 10ку а потом обратно или... есть проще методы?
Просто сравнение это есть if abs(a-b)<const then ....
вот эти A и B как получить?
Вам нужно получить компоненты цвета. Каждая компонента - один байт, записаный в 16ричной системе счисления. Не позорьтесь, алгоритм чтения числа, записанного в 16ричной СС есть в любой стандартной библиотеке любого языка программирования.
Формула у вас неправильная. Расстояние между точками расчитывается не так (формула "длины вектора"):
d = sqrt( sqr(p1.r - p2.r) + sqr(p1.g - p2.g) + sqr(p1.b - p2.b) )
Изначально она получается функцией
Это функция берёт цвет из потока $vDC на координатах $x $y и возврощает - C26B0B (к примеру)
Ммм... я просто думал, что-то интереснее ;)
847225 837225 -Цвета разные, как визуально так и символьно
9C982D 9B982D - только 2ой символ отличается и визуально цвета неотличить.
Если эти цвета в формате RGB, то визуально их не отличишь. Так что, ИМХО, что-то ты лукавишь :)
Так с цветами разобрался.
Теперь всё тоже и так же, только как получить массив:
допустим есть 91982A, а надо получить массив a=[9,1,9,8,2,11]
Только средствами AutoIt я просто не могу найти функции...
Просто дело дошло до оптимизации, и сравнивать вектора не так акутально как сравнивать массивные блоки