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

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

181. darksell - 31 Мая, 2020 - 11:46:37 - перейти к сообщению
Здравствуйте, подскажите пожалуйста, есть скрипт который сканирует определенную область в окне программы, но если поменять разрешение окна или у человека будет другое разрешение экрана разумеется поиск будет уже не там где надо, буду рад если поможете.

readtext (EN, #Text, 4, 1, -1, -1, -1, #Color_Text[0], 1, 0, -1, 1340, 852, 1546, 1027, wind);
182. Zireael - 31 Мая, 2020 - 12:04:29 - перейти к сообщению
 Цитата:
поиск будет уже не там где надо

Сначала найти место где нужно распознать текст, уже потом распознавать относительно найденных координат.
183. darksell - 31 Мая, 2020 - 14:48:18 - перейти к сообщению
 Zireael пишет:
 Цитата:
поиск будет уже не там где надо

Сначала найти место где нужно распознать текст, уже потом распознавать относительно найденных координат.


координаты мне известны, можно как-то их оптимизировать под другое разрешение?
184. Kibor - 31 Мая, 2020 - 14:52:13 - перейти к сообщению
 darksell пишет:
координаты мне известны, можно как-то их оптимизировать под другое разрешение?

Надо поставить автоматизацию в условия одни. Что бы все запускали в оконном и бот устанавливал определенный размер окна.
185. Remyc - 12 Июля, 2020 - 05:33:01 - перейти к сообщению
Проблема такого характера, необходимо распознавать числа и показывать их сумму нарастающим итогом. База обучена цифры, в настройке распознавания проблем нет, все корректно распознается, но при вставке в визуальный редактор возникает следующие проблемы:
1. Если появляется "0" он распознается, как "620"
2. Если проявляется любое число из 3-х цифр, например "790", распознает как "88790"
В чем может быть проблема? число из 4-х цифр распознается на ура, при этом в настройке распознавания нет проблем и числами из 1-й и трех цифр.
Часть кода, которая использует распознавание текста
CODE:

readtext(NUM, #text_KIB, 8, 1, 100, -1, -1, -1, -1, 0, -1, 483, 238, 537, 258, w_KIB);

kill++;
regexreplace(-1, #text_KIB, text_KIB, " ", "");
messagebox(text_KIB);
poteri=poteri+formatsn(text_KIB);
textout(0, 10, 0, "Убито: " +format(kill), 1);
textout(1, 10, 17, "потери: " +format(poteri), 1);
186. Zireael - 12 Июля, 2020 - 05:37:51 - перейти к сообщению
 Цитата:
1. Если появляется "0" он распознается, как "620"
2. Если проявляется любое число из 3-х цифр, например "790", распознает как "88790"

Используйте symbolcorrect чтобы проверить корректность распознавания символов.
187. Kibor - 12 Июля, 2020 - 05:40:21 - перейти к сообщению
Плохо.
Кстати.. А poteri обнулено где то?
188. Remyc - 12 Июля, 2020 - 05:52:16 - перейти к сообщению
 Kibor пишет:
Плохо.
Кстати.. А poteri обнулено где то?

Только в блоке старт.

 Zireael пишет:
Используйте symbolcorrect чтобы проверить корректность распознавания символов.

Попробую сейчас
189. Zireael - 12 Июля, 2020 - 05:57:40 - перейти к сообщению
 Цитата:
Используйте symbolcorrect чтобы проверить корректность распознавания символов.
Попробую сейчас

Примерно так:
CODE:
string Text;
loadsymbolbase ("D:\Kibor2\basetext.sib");
readtext (NUM, #Text, 8, 1, -1, -1, -1, -1, -1, 0, -1, 372, 222, 456, 261, -1);
messagebox (Text); // распознанный текст


// передаём в функцию распознанный текст и оценку корректности от 0 до 1
Text = correct(Text, 0.5);
messagebox(Text); // текст, после проверки корректности



function correct(string text, double correct_symbol)
{
char c[999];
string temp="";
int size_text = size(text);

strcpy(#c[0], text); // скопировать строку в массив
for(int i=0; i<size_text; i++) // цикл для всех символов в строке
{
if(symbolcorrect(i) >= correct_symbol)temp=temp+c[i]; // если символ корректен, записывает его в строку
}

return temp; // возвращаем строку, в которой только корректно распознанные символы
}
190. Remyc - 12 Июля, 2020 - 06:35:23 - перейти к сообщению
Пол часа работы без сбоев.
Выявленная ошибка: Текст с надписью и числом отцентрирован по центру, и чем меньше разрядность цифр, тем больше символов и букв заплывает в зону распознования

Zireael , спасибо, очень помог Здорово

исправил так, может кому пригодится:
CODE:

kill++;
regexreplace(-1, #text_KIB, text_KIB, " ", "");
regexreplace(-1, #text_KIB, text_KIB, "[^\d]", "");
messagebox(text_KIB);
poteri=poteri+formatsn(text_KIB);
textout(0, 10, 0, "Óáèòî: " +format(kill), 1);
textout(1, 10, 17, "ïîòåðè: " +format(poteri), 1);


В начальную базу добавлены буквы, которые распознаются как "-", и знак ":" (последний для личных нужд, хочу время из формата string = "00:00:00" попробовать перевести секунды в целочисленном формате).

Powered by ExBB FM 1.0 Final