Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » readtext последующая обработка

Страниц (1): [1]
 

1. wotres2 - 26 Января, 2023 - 07:36:45 - перейти к сообщению
Доброго времени.
Не могу разобраться Readtext.
необходимо:
1. скан области.
2. запись символов с коэффициентом совпадения.
3. удаление пробелов.
2. wotres2 - 26 Января, 2023 - 14:55:21 - перейти к сообщению
 wotres2 пишет:
Доброго времени.
Не могу разобраться Readtext.
необходимо:
1. скан области.
2. запись символов с коэффициентом совпадения.
3. удаление пробелов.


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

попытался так реализовать, не выходит, что поправить?

int n;
int readtextscan;
string text[15];
int global_screen[1370][770]; //скриншот
int cor;
string text1;

sleep(5000);
screen (#global_screen[0][0], 0, 0, 1366, 768, -1);
loadsymbolbase("C:\12345\newimage\archeage\farm_craft\numbers.sib"Подмигивание;
cor = 0.8;
readtextscan = readtext (NUM, #text[0], 8, 1, -1, 0, 0, -1, -1, -1, 50, 810, 352, 825, 361, #global_screen[0][0]);
for (n=0; n<readtextscan; n++)
{
loop(readtextscan)
{
if (symbolcorrect(n)<cor)
{
text[n]=text[n+1];
}
}
}
for (n=0; n<readtextscan; n++)
{
text1=text1+text[n];
}
if (format(text1)>0)
{
messagebox(text1);
}
3. Zireael - 26 Января, 2023 - 17:31:16 - перейти к сообщению
 Цитата:
int cor;
cor = 0.8;

Нельзя в переменную int записать дробное число, нужно использовать double.
 Цитата:
3. удаление пробелов.

Можно регуляркой удалить, в описании есть примеры.

Когда давно писал функцию для удаления некорректно распознанных символов.
CODE:
string Text;
loadsymbolbase ("D:\Kibor2\basetext.sib");
readtext (NUM, #Text, 8, 1, -1, -1, -1, -1, -1, 0, -1, 311, 419, 483, 447, -1);

messagebox (Text); // распозннный текст
correct(#Text, 0.7); // 0.7 корректность символа (от 0 до 1)
messagebox (Text); // текст после удаления некорректных символов


function correct(string #text, double cor)
{
char c[999];
strcpy(#c[0], text);
text="";
for(int i=0; i<size(#c[0]); i++)
{
if(symbolcorrect(i) >= cor)text=text+c[i];
}
}
4. wotres2 - 27 Января, 2023 - 07:17:40 - перейти к сообщению
 Zireael пишет:
 Цитата:
int cor;
cor = 0.8;

Нельзя в переменную int записать дробное число, нужно использовать double.
 Цитата:
3. удаление пробелов.

Можно регуляркой удалить, в описании есть примеры.

Когда давно писал функцию для удаления некорректно распознанных символов.
CODE:
string Text;
loadsymbolbase ("D:\Kibor2\basetext.sib");
readtext (NUM, #Text, 8, 1, -1, -1, -1, -1, -1, 0, -1, 311, 419, 483, 447, -1);

messagebox (Text); // распозннный текст
correct(#Text, 0.7); // 0.7 корректность символа (от 0 до 1)
messagebox (Text); // текст после удаления некорректных символов


function correct(string #text, double cor)
{
char c[999];
strcpy(#c[0], text);
text="";
for(int i=0; i<size(#c[0]); i++)
{
if(symbolcorrect(i) >= cor)text=text+c[i];
}
}


спасибо, добрый человек Радость

Powered by ExBB FM 1.0 Final