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

Страниц (30): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец
 

81. Kensi - 11 Октября, 2018 - 05:44:31 - перейти к сообщению
Ребят, бьюсь уже весь день над проблемой. У меня есть основной бот, работа которого начинается с поиска и распознавания слова на экране - "фаза"

[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

В визуальном редакторе выбираю блок распознавания текста, далее импортирую настройки распознавания, чтобы были такие же настройки, как в окне выше. далее идет логика, где сравнивается полученное значение со строкой "фаза", далее выход из функции, если строка найдена и совпала, или возврат в блок распознавания, если ничего не нашлось. Далее идет остальной код бота. Проблема в том, что когда бот начинает работу, он выбрасывает ошибку:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Что это может быть? Я создал новый файл в котором повторил этот алгоритм (с точно такими же настройками распознавания) с распознаванием и он работает корректно. Если нет слова "фаза" бот ждет его появления на экране в бесконечном цикле, если есть, то выполняет действия которые прописал(тестировал с messagebox('123'Подмигивание - сообщение появляется) А в основном коде бота появляется ошибка.
82. Kibor - 11 Октября, 2018 - 05:51:01 - перейти к сообщению
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста.
(Добавление)
Kensi , Не объявлена переменная куда записывает текст.
83. Kensi - 11 Октября, 2018 - 06:18:19 - перейти к сообщению
 Kibor пишет:
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста.
(Добавление)
Kensi , Не объявлена переменная куда записывает текст.


спасибо, а я думал, прога сама ее объявляет, как text_KIB. Я уже позже сменил все переменные, куда будут записываться строки, на text_KIB и бот потихоньку начал работать но даже это меня не смутило)) надо отдохнуть
84. ivantu - 11 Октября, 2018 - 06:21:18 - перейти к сообщению
 Kibor пишет:
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста.


Спасибо за доработку, было бы круто, а с разбежностью к сожалению эффекта добиться так же тяжело, т.к. фон очень разный...
85. Kibor - 11 Октября, 2018 - 07:12:45 - перейти к сообщению
Kensi , Если свою переменную используете надо ее объявлять в Старт блоке
(Добавление)
 ivantu пишет:
Спасибо за доработку, было бы круто, а с разбежностью к сожалению эффекта добиться так же тяжело, т.к. фон очень разный...

Ну в принципе решить можно практически любую задачу.
В дальнейшем я доработаю встроенные алгоритмы и настройки Распознавания текста.
На данный момент это можно решить примерно таким образом как я показал на этом видео.
Если указывать только небольшую область с текстом, то работать будет быстро в реальном времени выполнения скрипта.
На этом видео я указал большую область для демонстрации.


Скрипт. Тут идет обработка изображения с файла и сохранение его в файл. Надо переделать что бы вместо загрузки с файла обрабатывали скрин зоны текста, а вместо сохранения в файл передавали на распознавание функции readtext.
Затем полученный текст отфильтровать по оценке распознаных символов. Подробности на видео выше.
CODE:
int Image[1000][1000];
loadimage (#Image[0][0], "C:\site\Image.bmp");

int ex=imagewidth(#Image[0][0]);
int ey=imageheight(#Image[0][0]);

int RAZ=15;
int r[10], g[10], b[10];
int col[10];
int kc=6;

col[0]=12307928;
col[1]=10268605;
col[2]=13623272;
col[3]=9016474;
col[4]=7568770;
col[5]=11582918;

for (int n=0; n<kc; n++)
{
r[n]=rvalue(col[n]);
g[n]=gvalue(col[n]);
b[n]=bvalue(col[n]);
}

int tr, tg, tb;

for (int x=0; x<ex; x++)
{
for (int y=0; y<ey; y++)
{
tr=rvalue(Image[x][y]);
tg=gvalue(Image[x][y]);
tb=bvalue(Image[x][y]);
for (n=0; n<kc; n++)
{
if (tr-RAZ<r[n] && tr+RAZ>r[n] && tg-RAZ<g[n] && tg+RAZ>g[n] && tb-RAZ<b[n] && tb+RAZ>b[n])goto d;
}
Image[x][y]=0;
d:;
}
}

saveimage(#Image[0][0], "C:\site\rez.bmp");
86. ivantu - 12 Октября, 2018 - 00:37:22 - перейти к сообщению
Это просто супер! Но я пожалуй дождусь доработки т.к. моих знаний не хватит пока для реализации... Спасибо Вам огромное!!!
87. Kibor - 12 Октября, 2018 - 01:37:52 - перейти к сообщению
 ivantu пишет:
Но я пожалуй дождусь доработки

Не скоро будет доработка в Кибор.
Много дел сейчас. Чуть позже оформлю скрипт готовой функцией, которую просто вставить надо будет в проект.
88. ivantu - 12 Октября, 2018 - 02:01:50 - перейти к сообщению
 Kibor пишет:
 ivantu пишет:
Но я пожалуй дождусь доработки

Не скоро будет доработка в Кибор.
Много дел сейчас. Чуть позже оформлю скрипт готовой функцией, которую просто вставить надо будет в проект.


Это было бы шикарно. Круто
89. Kibor - 12 Октября, 2018 - 09:50:05 - перейти к сообщению
Обновил Кибор.
Доработал фильтры. Теперь распознавание на пестром, непредсказуемом фоне не будет проблемой.

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

В функции readtext на месте указателей на массивы цветов можно вводить не только -1 (отсутствие цвета), но и 1 - все цвета кроме для противоположного

8 параметр - указатель (если надо) на одномерный массив int в котором находятся цвета текста
-1 если не указан ни один цвет
1 если текстовым цветом считаются все кроме указанных фоновых.
9 параметр - указатель (если надо) на одномерный массив int в котором находятся цвета фона
-1 если не указан ни один цвет
1 если фоновым цветом считаются все кроме указанных текстовых.

Если мы для текста или фона указали все цвета, необходимо указать определенный или определенные цвета для противоположного.
Не допускается указывать все цвета для текста и для фона одновременно

90. ivantu - 14 Октября, 2018 - 01:07:32 - перейти к сообщению
Ого спасибо огромное , Вы говорили что не скоро, будет обновление, я прям в Восторге!! Это просто бомба! Спасибо огромное!

А когда кибор обновится, чтоб это нововведение появилось?

Powered by ExBB FM 1.0 Final