Kibor |
Отправлено: 23 Января, 2018 - 02:17:56
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Такое может быть из за большого размера. Что собственно случается очень редко.
В этом случае надо самому фильтровать по позиции примерно так
Цитата: string Text;
loadsymbolbase ("C:\Users\Вова\Desktop\basetext.sib");
readtext (RU, #Text, 8, 1, -1, -1, -1, -1, -1, 0, -1, 185, 263, 1013, 409, -1);
char c[100];
strcpy(#c[0], Text);
int a=size(#c[0]);
Text=format(#c[0]);
int kml=0;
string t="";
int tn;
int min;
int sm=-99999;
for (int n1=0; n1<a; n1++)
{
min=99999;
tn=-1;
for (int n=0; n<a; n++)
{
if (c[n]!=10 && c[n]!=13 && c[n]!=32)
{
if (symbolxpos(n)<min && symbolxpos(n)>sm){min=symbolxpos(n); tn=n;}
}
}
sm=min;
if (tn!=-1)t=t+c[tn];
}
messagebox (t); |
|
|
Kibor |
Отправлено: 10 Марта, 2018 - 11:01:32
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Valerij пишет: Я так понимаю что функция readtext в качестве зоны сканирования принимает только статичную зону сканирования
Это чего это?
Можно менять как угодно в процессе работы.
Valerij пишет: Можно ли надеятся что в будущемь будет добавлена динамичная зона сканирования, например в виде перменной или масива, в случае если необходимо привязать распознавание текста к какому то динамическому обекту?
Это можно.
Этот код найдет зоны текста где написаны имена игроков и распознает имена.
Зоны определяются относительно фрагмента таблички под текстом. Пояснение на скрине.
Скачать на диск C
Базу распознавания с первого поста http://kibor-bot.com/files/basetext.sib
Искомое изображение части таблички http://kibor-bot.com/files/readtext_fifa/tab.bmp
Пояснение:
Нажмите для увеличения
Сканируется это изображение и распознается на нем текст. Расположить его так, что бы был на экране весь.
Нажмите для увеличения
CODE:int tab[50][50];
int x[10], y[10];
int r=50, p=100;
int col, ex, ey;
int smX=38, smY=55;
int razmX=93, razmY=12;
int zona_text_X1, zona_text_Y1;
int zona_text_X2, zona_text_Y2;
string Text;
if (loadimage (#tab[0][0], "C:\tab.bmp")<1){messagebox ("нет C:\tab.bmp"); goto er;}
if (loadsymbolbase ("C:\basetext.sib")<1){messagebox ("нетC:\basetext.sib"); goto er;}
getdisplay(col, ex, ey);
pause(1000);
int k=findimage(10, #tab[0][0], 0, #x[0], #y[0], 0, 0, ex, ey, r, r, r, r, r, r, p, 1, -1);
for (int n=0; n<k; n++)
{
zona_text_X1=x[n]-smX;
zona_text_Y1=y[n]-smY;
zona_text_X2=zona_text_X1+razmX;
zona_text_Y2=zona_text_Y1+razmY;
readtext (EN, #Text, 9, 1, 50, -1, -1, -1, -1, 0, 50, zona_text_X1, zona_text_Y1, zona_text_X2, zona_text_Y2, -1);
messagebox (Text);
pause(1000);
}
er:; |
|
|
Kibor |
Отправлено: 22 Марта, 2018 - 22:38:40
|
Эксперт
Покинул форум
Сообщений всего: 8225
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Flash ,
Навскидку.. Подозреваю что где то объявлена переменная EN типа int, которая затерла этот флаг своим значением.
(Добавление)
Обновил программу.
Теперь Кибор не даст использование имен для переменных, которые зарезервированы под флаги.
CODE:NUM, RU, MARK, EN, JPG, PNG, BMP, BUTTON, EDIT, CHECK, COMBO, STATIC |
|
|
Flash |
Отправлено: 23 Марта, 2018 - 08:46:03
|
Участник
Покинул форум
Сообщений всего: 57
Дата рег-ции: Нояб. 2015
Откуда: Лангепас
Репутация: 0
|
Kibor пишет: Flash ,
Навскидку.. Подозреваю что где то объявлена переменная EN типа int, которая затерла этот флаг своим значением.
(Добавление)
Обновил программу.
Теперь Кибор не даст использование имен для переменных, которые зарезервированы под флаги.
CODE:NUM, RU, MARK, EN, JPG, PNG, BMP, BUTTON, EDIT, CHECK, COMBO, STATIC
ааа точно есть такое )) просто обычно выходит ошибка типа "повторение переменной" или что то такое )), а я как обычно пол дня сидел крути вертел туда сюда никак не получается)) |
|
|
|