Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Доработка поиска изображений по неполному совпадению
Kibor
Отправлено: 09 Августа, 2013 - 16:26:21
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8094
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Доработана функция findimage.
А конкретнее ее расширенный вариант для поиска по неполному совпадению.
Добавлен еще один параметр:
 Цитата:
findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, Красный_меньше_на, Красный_больше_на, Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на, Процент_совпадений_достаточный_для_идентификации, флаг_не_искать_в_области_где_найдено, -1);


Каждый цвет состоит из трех основных цветов - Красный(R), Зеленый(G), Синий(B). (R, G, B). Каждый из этих трех цветов обозначается числом от 0 до 255. К примеру цвет (0, 0, 0) будет черный, а (255, 255, 255) белым. (255, 0, 0) красным, а (255, 50, 70) красным с примесью зеленого и синего.

Обозначение параметров:
Красный_меньше_на - тут указываем число НА которое красный компонент может быть меньше того что находится в поиске.
Красный_больше_на - тут указываем число НА которое красный компонент может быть больше того что находится в поиске.
Зеленый_меньше_на, Зеленый_больше_на, Синий_меньше_на, Синий_больше_на аналогично.

Процент_совпадений_достаточный_для_идентификации - процент от общего количества пикселей участвующих в поиске достаточный для того что бы изображение считалось совпавшим. 100 - необходимо что бы все изображение совпало. 20 - достаточно совпадения одной пятой части изображения. Применять для поиска изображений которые могут частично быть перекрыты или часть цвета пикселей может выйти за пределы колебаний описанных вышеприведенными параметрами.

флаг_не_искать_в_области_где_найдено - если 1 больше не искать в областях на экране по размеру искомого рисунка где найден уже рисунок.

Объяснение:
При поиске изображений к примеру разной яркости или имеющие различные незначительные расхождения можно использовать или разброс цветов или/и процент совпадения пикселей. Применение таких погрешностей может привести к нахождению более одного совпадения практически там где в наличие только один рисунок.

К примеру как на рисунке может быть найдено два и более совпадения (синяя и красные рамки)

Установив параметр флаг_не_искать_в_области_где_найдено в 1 можно запретить поиск с областях где уже нашли одно совпадение (область перекрытая синей и красной рамкой сразу).



Пример использования:
Скачать этот рисунок пешки:http://kibor-bot.com/files/peshka.rar
Рапаковать на диск С. Рисунок должен быть в C:\peshka\peshka.bmp
Скопировать скрипт в Кибор:
CODE:
int Image_0[27][48];
int color, xe, ye;
sleep(1000);
getdisplay(color, xe, ye);
loadimage (#Image_0[0][0], "C:\peshka\peshka.bmp");

int PosX_0[512];int PosY_0[512];

int k=findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, xe, ye, 50, 50, 50, 50, 50, 50, 90, 1, -1);

int n=0;
j:if (n<k)
{
mousemove(PosX_0[n]+imagewidth(#Image_0[0][0])/2, PosY_0[n]+imageheight(#Image_0[0][0])/2);
sleep(500);
n++;
goto j;
}


messagebox(k);


И протестировать на этом изображение. Тут все пешки имеют небольшое различие и короткая функция их не найдет. В тесте попробуйте установить предпоследний параметр в 0. На одну пешку будет несколько найденных изображений:
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by