Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.27 Функция распознавания текста.

Страниц (30): В начало « ... 17 18 19 20 [21] 22 23 24 25 ... » В конец
 

201. Zireael - 12 Декабря, 2020 - 10:29:43 - перейти к сообщению
Толку от этого куска кода никакого. Что тут не так работает только вы можете проверить. Выводите в messagebox нужные переменные и смотрите в какой момент что не так.
202. konctantin777 - 15 Декабря, 2020 - 14:36:42 - перейти к сообщению
Ок, спасибо.
Подскажите ещё момент- сделал для игры бота на распознавании вместо картинок. Т.е. постоянно ищет 25 текстов и, если находит, нажимает ЛКМ. Всё норм, но сама прога тормозит жуть- постоянно "не отвечает". Может какие паузы надо или ещё какие условия ? Если 3-4 текста, то норм, а после 10(всё по шаблону только искомое слово различается) начинает зависать..
203. Zireael - 15 Декабря, 2020 - 16:45:11 - перейти к сообщению
 Цитата:
на распознавании вместо картинок

Функция предназначена для распознавания текста, а не поиска. Искать объект с помощью findimage/findheapcolor, потом уже распознавать когда известна область, в которой находится текст.
204. konctantin777 - 15 Декабря, 2020 - 23:57:53 - перейти к сообщению
Область известна. Просто часто там нет искомого слова, иногда вообще ничего. Надо, чтобы что то было ?
(Добавление)
Только это крутиться по кругу. И тормозит..
CODE:
sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, 50, 226, 687, 294, 707, w_KIB);
sleep(20);
if (text_KIB=="гильдия") // если слово найдено- нажимаем
{//textout(1, w_KIB.leftclient+226, w_KIB.topclient+707+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 226+20, 687-10, w_KIB); // добавить начальные координаты из readtext
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, 50, 290, 476, 378, 496, w_KIB);
sleep(20);
if (regexsearch(-1, #text_KIB, text_KIB, "подзем")) // если слово найдено- нажимаем
{//textout(1, w_KIB.leftclient+290, w_KIB.topclient+476+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 10+290, 476-10, w_KIB); // добавить начальные координаты из readtext
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, 50, 648, 552, 745, 582, w_KIB);
sleep(20);
if (text_KIB=="напасть") // справа внизу
{//textout(1, w_KIB.leftclient+648, w_KIB.topclient+552+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 648+20, 552-10, w_KIB); //
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, -1, 1017, 658, 1104, 687, w_KIB);
sleep(20);
if (regexsearch(-1, #text_KIB, text_KIB, "вбои")) //
{//textout(1, w_KIB.leftclient+1017, w_KIB.topclient+658+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 1017+20, 658-10, w_KIB); //
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, -1, 1150, 627, 1170, 648, w_KIB);
sleep(20);
if (text_KIB=="&") // авто
{//textout(1, w_KIB.leftclient+1150, w_KIB.topclient+627+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 1150-20, 627, w_KIB); //
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, -1, 675, 599, 717, 629, w_KIB);
sleep(20);
if (text_KIB=="ок") // ок победа
{//textout(1, w_KIB.leftclient+675, w_KIB.topclient+599+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 675+20, 599-10, w_KIB); //
}

sleep(20);
readtext (RU | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, 50, 1065, 690, 1140, 713, w_KIB);
sleep(20);
if (text_KIB=="правила") // если слово найдено- нажимаем
{//textout(1, w_KIB.leftclient+1065, w_KIB.topclient+690+20, ""+text_KIB, 1); sleep(500);
sendmouse(LEFT, 689, 256, w_KIB); // добавить начальные координаты из readtext
}

/*
readtext (RU | MARK, #Text, 8, 1, -1, -1, -1, -1, -1, 0, 50, 290, 476, 378, 496, w_KIB);
if (regexsearch(-1, #text_KIB, text_KIB, "подзем")) // если слово найдено- нажимаем
{sendmouse(LEFT, 10+290, 476-20, w_KIB); // добавить начальные координаты из readtext
textout(1, w_KIB.leftclient+290, w_KIB.topclient+476+20, ""+text_KIB, 1);
}


*/
//textout(1, 10, 10, " ", 1); sleep(100);

205. ivantu - 16 Декабря, 2020 - 01:04:48 - перейти к сообщению
Скриншот киньте, можно будет подсказать, скорее всего текст появляется не один вокруг него рамка или еще что то, нужно искать рамку затем распознавать что внутри если она есть, тогда будет полегче работать.
206. konctantin777 - 16 Декабря, 2020 - 01:20:36 - перейти к сообщению
Скриншот позже только смогу. В местах поиска всё появляется- пытался без поиска картинок обойтись (
207. konctantin777 - 17 Декабря, 2020 - 03:20:13 - перейти к сообщению
 ivantu пишет:
тогда будет полегче работать.

Интересно то, что хоть весь экран одноразово ищи- быстро будет. А если подряд несколько хоть и мелких- уже тормозит.
208. Katze Stiefel - 24 Декабря, 2020 - 05:07:44 - перейти к сообщению
 Цитата:
В этом случае в c будет один первый символ.
Цитата:

char c[200];
readtext (RU, #c[0], 4, 1, -1, 35, 35, -1, -1, 0, 50, 11, 150, 641, 483, -1);

Если у меня слово из 4-х букв и мне нужно отдельно записать в переменные каждую букву, как в этом случае будет выглядеть фрагмент кода?
209. Zireael - 24 Декабря, 2020 - 05:21:42 - перейти к сообщению
 Цитата:
Если у меня слово из 4-х букв и мне нужно отдельно записать в переменные каждую букву, как в этом случае будет выглядеть фрагмент кода?

CODE:
messagebox(c[0]); // первая буква
messagebox(c[1]); // вторая
// и т.д.

char x1 = c[0]; // присвоить переменной
messagebox(x1);
210. Katze Stiefel - 24 Декабря, 2020 - 06:01:31 - перейти к сообщению
 Zireael пишет:
 Цитата:
Если у меня слово из 4-х букв и мне нужно отдельно записать в переменные каждую букву, как в этом случае будет выглядеть фрагмент кода?

CODE:
messagebox(c[0]); // первая буква
messagebox(c[1]); // вторая
// и т.д.

char x1 = c[0]; // присвоить переменной
messagebox(x1);


CODE:
function readcaptcha()
{
readtext (NUM | EN, #captcha1[0], 8, 1, 12, -1, -1, -1, -1, 0, -1, x1_captcha, y1_captcha, x2_captcha, y2_captcha, wind);
readtext (NUM | EN, #captcha2[1], 8, 1, 12, -1, -1, -1, -1, 0, -1, x1_captcha, y1_captcha, x2_captcha, y2_captcha, wind);
readtext (NUM | EN, #captcha3[2], 8, 1, 12, -1, -1, -1, -1, 0, -1, x1_captcha, y1_captcha, x2_captcha, y2_captcha, wind);
readtext (NUM | EN, #captcha4[3], 8, 1, 12, -1, -1, -1, -1, 0, -1, x1_captcha, y1_captcha, x2_captcha, y2_captcha, wind);
char captcha1 = captcha1[0]
char captcha2 = captcha2[1]
char captcha3 = captcha3[2]
char captcha4 = captcha4[3]
captcha = captcha1+captcha2+captcha3+captcha4;


Объявлены глобальные переменные типа стринг капча1, капча2 … каждой переменной соответствует 1 буква. Указываю зону сканирование по координатам, кибор находит слово целиком распознает его но выдернуть буквы по отдельности не удается, при пошаговой отладке выдает ошибку и предлагает следующее "Инструкция: readtext (NUM | EN, #CHARS[0] 1 [0], 8, 1, 12, -1, -1, -1, -1, 0, -1, 341, 191, 408, 212, WINS [0]);

Powered by ExBB FM 1.0 Final