Программа
Unique Colors SearchПрограмма может проанализировать несколько изображений предмета и несколько изображений фона, на котором нет этого предмета. После чего определяются наиболее часто встречающиеся цвета, которые являются уникальными для объекта.
По найденным цветам можно быстро искать этот предмет на экране (обычно используется для поиска мобов при создании ботов для онлайн-игр).
В UOPilot для поиска цвета используется функция findcolor
Скачать можно здесь в разделе Downloads
https://sites.google.com/site/leaxplace/Или с
iFolderИли прям
отсюда (IMG:
style_emoticons/default/smile.gif)
(IMG:http://s009.radikal.ru/i307/1010/b7/50be553a1addt.jpg)
(IMG:http://s006.radikal.ru/i213/1010/a5/36535076f4dct.jpg)
Как ни странно идея данной программы возникла по совершенно пустячному (и очень важному!) поводу: захотелось сделать бота для одной из онлайн игр.
Мысль вроде бы разумная - раз есть компьютер и он потр<вырезано анти-матом>ет электроэнергию, так пусть хоть отрабатывает часть своего хлеба сам, нечего меня ещё нагружать сбором всяких ресурсов, убийством мобов и т.д.! =))
Побродив по просторам инета наткнулся на очень интересную программу UOPilot, которая умеет сама "нажимать" кнопки мыши, клавиатуры по заданным пользователем алгоритмам и делать много других нужных вещей.
Одно из её полезных умений - поиск на экране пикселей заданного цвета. Эта функция как раз и используется при поиске объектов, на которых нужно кликнуть, чтоб что-нибудь с ними сделать (или просто проанализировать какую-то информацию на экране). И все было бы хорошо, но вот не попадались мне однотонно фиолетовые ёжики и однотонно зеленые яблоки. Ёжики были с разноцветными иголками и крутились всеми боками, яблоки тоже были с кучей оттенков и лежали в разноцветно-зеленом лесу на разноцветно-зеленой травке. Попробуй тут найди нужный тебе цвет, по которому можно обнаружить именно яблоко и не перепутать его с филейкой крокодила! =))
Программа Unique Colors Search именно это и умеет делать. Она находит те уникальные цвета объекта, по которым можно обнаружить только яблоко, а не листик, травинку или кузнечика.
При практическом использовании очень важно сохранять копии экрана в графические файлы без потери качества. Например, для этого подходят файлы в форматах PNG или BMP.
Принцип пользования простой: нажимая на кнопки над левым списком добавляете/удаляете картинки с яблоками. Файлы и папки также можно добавлять путем перетаскивания из окна Проводника Windows. Нажимая кнопки над правым списком добавляете/удаляете картинки леса без яблок, которые предварительно вырезаны (т.е. картинки фона). Я, например, просто грубо обвожу яблоки по контуру захватывая немного лишнего фона и все внутри заливаю белым цветом. В практике намного лучше ситуация, когда в изображениях объекта будут лишние пиксели фона, чем если в картинки фона попадут части объекта! Вывод: выделяйте объекты по контуру "с запасом наружу".
Потом нажимаем кнопку "Start Analyze", ждем немного (или много- зависит от размера картинок и количества присутствующих цветов) и получаем в окне отчета информацию по цветам, которые присутствуют только в яблоках, но отсутствуют на всех картинках леса! Вот по этим значениям цвета и можно автоматически найти фрукты. Чем больше значение Frequency (частота), тем с большей вероятностью можно обнаружить яблоко по данному цвету. Максимально возможное значение 100% (оно же является оптимальным и достаточным для поиска).
Программа позволяет искать не только отдельные цвета, но также может подобрать оптимальное сочетание 2-х и более цветов, дающих максимальное значение Frequency и Density (плотность цвета).
Также добавлена экспериментальная функция поиска шестнадцатеричного диапазона цветов, который дает максимальное значение Frequency.
В программе встречается несколько параметров цвета (или комбинаций цветов):
Frequency - наиболее важный параметр- частота появления цвета в наборе изображений. Чем выше частота - тем больше вероятность найти объект по данному цвету. Оптимальное значение 100%
Density - средняя плотность цвета. Чем выше средняя плотность, тем больше пикселей этого цвета на изображениях. Нужно учесть, что "больше" - не всегда значит "лучше". Например, цвет A встречается в 100% изображений объекта всего в 1 пикселе. Цвет B встречается в 50% изображений объекта, но зато в 500 пикселах в каждом. Таким образом плотность цвета B гораздо выше, но объект можно найти в 100% случаев именно по цвету A. Таким образом, параметр Frequency гораздо важнее параметра Density.
Duplication (Dubl, Dupl) - дублирование информации. Применяется к комбинации цветов или к диапазону цветов. Чем больше коэффициент дублирования, тем лучше. (Если он больше 1.0 - уже хорошо!). Его еще можно назвать "коэффициентом запаса надежности" при поиске объекта.
Анализ изображений и поиск оптимального диапазона цветов занимают довольно много времени (возможно несколько минут), так что просьба проявить терпение и подождать пока программа досчитает.
Результаты анализа и всех расчетов/поисков появляются в окне Отчета (добавляются в начало). Текст отчета можно выделить, а затем скопировать в буфер обмена нажав Ctrl+C или Ctrl+Ins.
При пользовании программой зацикливаться на ёжиках и яблоках не обязательно - можно искать и другие объекты/мобов. ;-)
Кроме того, чем больше
различных изображений объекта для анализа у вас будет, тем более точный результат даст программа!
Лично я для подбора уникальных цветов использую не менее 7-10 различных изображений объекта (иногда до 15-20) и столько же различных изображений фона без этого предмета. Вообще, чем больше, тем лучше (но считает дольше).
Для работы программы нужно иметь предварительно установленный пакет
Microsoft .NET Framework 3.5 SP1, который можно скачать
здесь.