Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помогите. бот нестабильно распознает изображения

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

1. shumomonstr - 22 Января, 2017 - 03:42:38 - перейти к сообщению
Здравствуйте уважаемые ботоводы. Столкнулся с проблемой. Я с помощью графического редактора кибора вырезал области и они должны были нажиматься ботом. Области статичны. Но если 1 область он нажимает почти стабильно, затем вторую он нажимает через раз а третью и 4 вообще не распознает. Вопрос что я делаю не так? Заранее спасибо! (скринил приложение и запускал его с ботом в одинаковом размере окна. пробовал в fullscreen)





Ниже представлен код. Сгенерированный графическим редактором.
 Цитата:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[117][34];
int Image_1_KIB[12][12];
int Image_2_KIB[101][56];
int Image_3_KIB[70][27];

start_();

m_KIB1: findimage_(#Image_1_KIB[0][0], 0, 0, 0, 1, 0, 0, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
m_KIB3: if (findimage_(#Image_2_KIB[0][0], 2000, 0, 0, 1, 0, 0, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB4;
else goto m_KIB1;
m_KIB4: findimage_(#Image_3_KIB[0][0], 0, 0, 0, 1, 0, 0, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 5, 5, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto m_KIB3;



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "D:\skript\dalshe.bmp");
loadimage (#Image_1_KIB[0][0], "D:\skript\Image_0.bmp");
loadimage (#Image_2_KIB[0][0], "D:\skript\clock.bmp");
loadimage (#Image_3_KIB[0][0], "D:\skript\vikup.bmp");
}
2. Kibor - 22 Января, 2017 - 04:13:05 - перейти к сообщению
Так вполне возможно что надо искать по неполному совпадению. Кнопки меняются..
3. shumomonstr - 22 Января, 2017 - 04:43:12 - перейти к сообщению
 Kibor пишет:
Так вполне возможно что надо искать по неполному совпадению. Кнопки меняются..

Спасибо. но странно что все нормально кликается если кнопка которую кликаю идет сразу после старта она кликается. а в цепочке нормально кликается только 1 остальные не выполняются. где моя ошибка?
(Добавление)
4. Kibor - 22 Января, 2017 - 04:49:12 - перейти к сообщению
Откуда знать? Может паузы надо поставить? Потом может надо с ожиданием искать? И по неполному совпадению.
5. shumomonstr - 22 Января, 2017 - 04:49:58 - перейти к сообщению
 Kibor пишет:
Откуда знать? Может паузы надо поставить? Потом может надо с ожиданием искать? И по неполному совпадению.

Спасибо большое!
(Добавление)
 Kibor пишет:
Откуда знать? Может паузы надо поставить? Потом может надо с ожиданием искать? И по неполному совпадению.

подскажите пожалуйста почему у меня находит и кликает рисунок тока в том положении экрана где я его отскринил, а другие такие же абсолютно не находит? вводил неполное совпадение 80
6. Kibor - 22 Января, 2017 - 05:34:53 - перейти к сообщению
не знаю. значит не такой там рисунок.
7. Dantes3000 - 23 Января, 2017 - 06:00:11 - перейти к сообщению
делай после нахождения паузу 1 секунду, потом клик.
Фильтруй динамику по неполному совпадению, тогда точно нажиматься будет.
(Добавление)
И смотри уроки по визуальному редактору, там об этом говорится по 2-3 раза
8. Kutuz_off - 24 Ноября, 2018 - 13:59:33 - перейти к сообщению
В связи с не самым подробным описанием функций, некоторые тонкости остаются не понятными... Например, я не сразу понял: что при поиске изображения с неполным совпадением, нужно так же учитывать вычитание цветов, которые кибор не будет учитывать при поиске изображения (по умолчанию: абсолютный черный 000000). Т.е. если в искомом изображении 50% пикселей не искомых, то при выставлении 50% поиска в функции по не полному совпадению (или диалог. окне виз. ред.) - это будет = 100% реального поиска. Если же в такой ситуации выставить 51% - то Киб не найдет картинку никогда.

Только что, специально перепроверился создав точно такие же условия как и в моем примере.

при разбросе цвета +-40 и совпадении 51% - не нашел, а при 50% - нашел.
9. Zireael - 24 Ноября, 2018 - 16:39:07 - перейти к сообщению
 Цитата:
при выставлении 50% поиска в функции по не полному совпадению (или диалог. окне виз. ред.) - это будет = 100% реального поиска

Нет. Если на картинке 10*10, т. е. 100 пикселей будет 30% фонового цвета, то для поиска картинки со 100% точностью надо 70 пикселей.
10. Kutuz_off - 25 Ноября, 2018 - 02:19:04 - перейти к сообщению
Zireael, но при поиске картинки мы выставляем только % искомых. а не кол-во пикселей.

??? Непонял!

Powered by ExBB FM 1.0 Final