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

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

 Страниц (30): В начало « 11 12 13 14 [15] 16 17 18 19 » В конец    

> Описание: Обучаемая функция распознавания текста. Инструмент обучения распознавания.
Kibor
Отправлено: 25 Февраля, 2019 - 23:36:53
Post Id



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


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




 White Bear пишет:
Во время обучения, необходимо нажимать кнопку сохранить уже правильно распознанный символ ( в окне подбора параметров распознавания текста) ?

Как хотите. Если символ красный будет добавлен новый.
Если зеленый , то докорректирован будет старый.

 White Bear пишет:
Имеется ли возможность просмотреть содержание базы, какие символы, цифры и буквы уже добавлены в базу.

Нет
 
 Top
AdryV
Отправлено: 26 Февраля, 2019 - 11:03:45
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




а не подскажите возможно ли этим способом разгадать капчу? буквы/цифры/разрые цвета/разный фон/зачеркивание длинными линиями
 
 Top
Kibor
Отправлено: 26 Февраля, 2019 - 11:30:33
Post Id



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


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




Очень абстрактное описание.
Нет.
Фильтры для этого не предназначены.
Можно распознать только то, чему удалось обучить. И мы можем быть уверенны что оно будет выглядеть более менее похоже.
 
 Top
White Bear
Отправлено: 03 Марта, 2019 - 20:45:12
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Янв. 2019  
Репутация: 0




Здравствуйте.
Направьте на путь истинный.....
создал свою базу символов, текст распознается правильно,
проверяю при помощи
messagebox(text_KIB)
я так понял, это в текстовом формате, в дальнейшем надо присвоить какой то переменной.
распознанный материал имеет такой вид :

22 + 33, или 12 - 11, может быть 0 + 45, ну и так далее. может быть умножение или деление.
(между цифрами и знаками возможно пробелы, как определить не знаю)
цифры могут быть как однозначными . так и двузначными, в дальнейшем,трехзначными.
мне необходимо из этого выделить цифры, и символ действия с этими цифрами.
произвести сложение, вычитание, умножение , деление, в зависимости от распознанного результата, ну и понятно получить результат, который я смогу использовать в дальнейшем.
Пожалуйста, как можно подробнее, с примерами.
мои познания в программировании ограничены рамками VBS, немного VBA, но VBS ограничен
работой с Win API. потому и обратил внимание на данный продукт.
Заранее спасибо.
 
 Top
Zireael
Отправлено: 03 Марта, 2019 - 21:14:42
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Пожалуйста, как можно подробнее, с примерами.

CODE:
string Text="22 + 33";
int x=func(Text); // передаем в функцию строку
messagebox(x); // результат

function func(string s)
{
string num1, num2, znak;
if(regexreplace(1, #num1, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$1")==0)return -10011001;
//messagebox(num1);
if(regexreplace(1, #znak, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$2")==0)return -10011001;
//messagebox(znak);
if(regexreplace(1, #num2, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$3")==0)return -10011001;
//messagebox(num2);

if(znak=="+")return formatsn(num1) + formatsn(num2);
if(znak=="-")return formatsn(num1) - formatsn(num2);
if(znak=="*")return formatsn(num1) * formatsn(num2);
if(znak=="/")return formatsn(num1) / formatsn(num2);

return -10011001;
}

Если какой-то из параметров не распознан вернёт число -10011001.
 
 Top
Kibor
Отправлено: 03 Марта, 2019 - 21:31:16
Post Id



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


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




Все таки стоит сначала пройтись этим:
regexreplace(-1, #Text, Text, " ", "");
удалить пробелы.
Так как возможно что распознавание поставит пробел между цифрами, если вторая цифра узкая на общем фоне. К примеру перед 1
..
 
 Top
White Bear
Отправлено: 06 Марта, 2019 - 20:09:34
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Янв. 2019  
Репутация: 0




Доброе время суток. Спасибо за быстрый ответ.
сегодня только добрался до "самообразования" ::smile24.gif::
что-то у меня ничего не получается, не могу разобраться с пунктуацией и форматами.
вот "часть моих трудов"...
CODE:
string text_KIB;
loadsymbolbase("E:\kibor_set\FF\BazaPrimers.sib");
string text, num1, num2, znak;; //пробовал и не объявлять эти переменные
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;

start_();

sleep(100);
readtext(NUM | MARK, #text_KIB, 8, 1, -1, -1, -1, -1, -1, 0, -1, sx_KIB+466, sy_KIB+360, sx_KIB+530, sy_KIB+376, -1);

messagebox(text_KIB)

вот мое начало. результат распознавания 57 - 39, соответствует предоставленному.
далее:
CODE:
string Text=text_KIB;
int x=func(Text);
messagebox(x);

здесь получается -842150451
CODE:
function func(string s)
{
string num1, num2, znak;
if(regexreplace(1, #num1, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$1")==0)return -10011001;
messagebox(num1);
if(regexreplace(1, #znak, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$2")==0)return -10011001;
messagebox(znak);
if(regexreplace(1, #num2, s, "^\s*(\d+)\s*([\+\-\*\/])\s*(\d+)\s*$", "$3")==0)return -10011001;
messagebox(num2);

if(znak=="+")return formatsn(num1) + formatsn(num2);
if(znak=="-")return formatsn(num1) - formatsn(num2);
if(znak=="*")return formatsn(num1) * formatsn(num2);
if(znak=="/")return formatsn(num1) / formatsn(num2);

return -10011001;
}

а вот здесь выдает "Ошибка: в STRINGS[7]=Text"

удаление пробелов вообще не понял в какой участок кода вставлять.
может я не правильно задавал вопрос???
(Добавление)
И еще один вопрос можно ли в функцию, вставит еще одну функцию ???
Спасибо.
 
 Top
Zireael
Отправлено: 07 Марта, 2019 - 07:17:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
string text_KIB="57 - 39"; // распознанная строка

int x=func(text_KIB); // передаём в функцию
messagebox(x);


function func(string s)
{
string num1, num2, znak;
regexreplace(-1, #s, s, "[^\d\+\-\*\/]", ""); // удалить из строки всё кроме чисел и знаков +-*/
if(regexreplace(1, #num1, s, "^(\d+)([\+\-\*\/])(\d+)$", "$1")==0)return -10011001;
//messagebox(num1);
if(regexreplace(1, #znak, s, "^(\d+)([\+\-\*\/])(\d+)$", "$2")==0)return -10011001;
//messagebox(znak);
if(regexreplace(1, #num2, s, "^(\d+)([\+\-\*\/])(\d+)$", "$3")==0)return -10011001;
//messagebox(num2);

if(znak=="+")return formatsn(num1) + formatsn(num2);
if(znak=="-")return formatsn(num1) - formatsn(num2);
if(znak=="*")return formatsn(num1) * formatsn(num2);
if(znak=="/")return formatsn(num1) / formatsn(num2);

return -10011001;
}

 Цитата:
И еще один вопрос можно ли в функцию, вставит еще одну функцию ???

Нет смысла, функции не локальные. Можно из одной функции вызывать другую, при необходимости передавать параметры через указатели.
 
 Top
White Bear
Отправлено: 07 Марта, 2019 - 21:09:14
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 5
Дата рег-ции: Янв. 2019  
Репутация: 0




...
 Цитата:
И еще один вопрос можно ли в функцию, вставит еще одну функцию ???

Нет смысла, функции не локальные. Можно из одной функции вызывать другую, при необходимости передавать параметры через указатели.[/quote]

Спасибо, как говорится : "разжевали и в рот положили"
с функциями разобрался.
с regexreplace примерно понятно, с синтаксисом надо разобраться,
сложный...
с переменными num1,num2,znak все определяется корректно.

formatsn(num1) + - * / formatsn(num2) преобразует и считает.
еще пару вопросов (не надоел ещё?) :)

1. переменные объявленные в функции распространяются только в внутри этой функции?
CODE:
function func(string s)
{
string num1, num2, znak;
... далее по тексту...
или их можно использовать во всем коде, или объявить сразу в блоке "Старт"
2.
CODE:
formatsn(num1) + formatsn(num2)

как лучше присвоить это выражение к переменной, для дальнейшего использования ?
например с функцией "key", или дальнейших расчетов?
Ещё раз спасибо, Вы сэкономили мне кучу времени.
 
 Top
Zireael
Отправлено: 07 Марта, 2019 - 21:14:38
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
1. переменные объявленные в функции распространяются только в внутри этой функции?

Если переменные объявлены в функции, то они локальные, видны только в самой функции.
Если объявить в начале скрипте, то будут глобальными и видны в любом месте скрипта.
 Цитата:
2. как лучше присвоить это выражение к переменной, для дальнейшего использования ?

CODE:
int k=formatsn(num1) + formatsn(num2); // присвоить переменной k
 
 Top
Страниц (30): В начало « 11 12 13 14 [15] 16 17 18 19 » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by