Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018
Репутация: 0
Ребят, бьюсь уже весь день над проблемой. У меня есть основной бот, работа которого начинается с поиска и распознавания слова на экране - "фаза"
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
В визуальном редакторе выбираю блок распознавания текста, далее импортирую настройки распознавания, чтобы были такие же настройки, как в окне выше. далее идет логика, где сравнивается полученное значение со строкой "фаза", далее выход из функции, если строка найдена и совпала, или возврат в блок распознавания, если ничего не нашлось. Далее идет остальной код бота. Проблема в том, что когда бот начинает работу, он выбрасывает ошибку:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Что это может быть? Я создал новый файл в котором повторил этот алгоритм (с точно такими же настройками распознавания) с распознаванием и он работает корректно. Если нет слова "фаза" бот ждет его появления на экране в бесконечном цикле, если есть, то выполняет действия которые прописал(тестировал с messagebox('123' - сообщение появляется) А в основном коде бота появляется ошибка.
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста. (Добавление) Kensi , Не объявлена переменная куда записывает текст.
Kensi
Отправлено: 11 Октября, 2018 - 14:18:19
Прохожий
Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018
Репутация: 0
Kibor пишет:
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста. (Добавление) Kensi , Не объявлена переменная куда записывает текст.
спасибо, а я думал, прога сама ее объявляет, как text_KIB. Я уже позже сменил все переменные, куда будут записываться строки, на text_KIB и бот потихоньку начал работать но даже это меня не смутило)) надо отдохнуть
ivantu
Отправлено: 11 Октября, 2018 - 14:21:18
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Kibor пишет:
ivantu , Графика не очень удобная.
Я наверно чуть доработаю функцию, что бы можно было указывать фоновым или текстовым цветом все кроме..
Пока можно попробовать указать массив фоновых цветов с каким то шагом (указав его в разбежности). При этом пропустив цвета текста.
Спасибо за доработку, было бы круто, а с разбежностью к сожалению эффекта добиться так же тяжело, т.к. фон очень разный...
Kibor
Отправлено: 11 Октября, 2018 - 15:12:45
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
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;
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");
ivantu
Отправлено: 12 Октября, 2018 - 08:37:22
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Это просто супер! Но я пожалуй дождусь доработки т.к. моих знаний не хватит пока для реализации... Спасибо Вам огромное!!!
Kibor
Отправлено: 12 Октября, 2018 - 09:37:52
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
ivantu пишет:
Но я пожалуй дождусь доработки
Не скоро будет доработка в Кибор.
Много дел сейчас. Чуть позже оформлю скрипт готовой функцией, которую просто вставить надо будет в проект.
ivantu
Отправлено: 12 Октября, 2018 - 10:01:50
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Kibor пишет:
ivantu пишет:
Но я пожалуй дождусь доработки
Не скоро будет доработка в Кибор.
Много дел сейчас. Чуть позже оформлю скрипт готовой функцией, которую просто вставить надо будет в проект.
Это было бы шикарно.
Kibor
Отправлено: 12 Октября, 2018 - 17:50:05
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Обновил Кибор.
Доработал фильтры. Теперь распознавание на пестром, непредсказуемом фоне не будет проблемой.
Стало доступным указывать не только определенные цвета, но и указать что ими являются все кроме указанных для противоположного.
В функции readtext на месте указателей на массивы цветов можно вводить не только -1 (отсутствие цвета), но и 1 - все цвета кроме для противоположного
8 параметр - указатель (если надо) на одномерный массив int в котором находятся цвета текста
-1 если не указан ни один цвет
1 если текстовым цветом считаются все кроме указанных фоновых.
9 параметр - указатель (если надо) на одномерный массив int в котором находятся цвета фона
-1 если не указан ни один цвет
1 если фоновым цветом считаются все кроме указанных текстовых.
Если мы для текста или фона указали все цвета, необходимо указать определенный или определенные цвета для противоположного.
Не допускается указывать все цвета для текста и для фона одновременно
ivantu
Отправлено: 14 Октября, 2018 - 09:07:32
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Ого спасибо огромное , Вы говорили что не скоро, будет обновление, я прям в Восторге!! Это просто бомба! Спасибо огромное!
А когда кибор обновится, чтоб это нововведение появилось?
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.