Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Теперь понятно, но простите за глупый вопрос, зачем тогда нужны symbolxpos(0) и symbolypos(0) если вручную записываем верхний левый угол, было бы круто еслиб в переменных уже были координаты относительные, а так получается двойная писанина
if(x>0)
{
x=size(Text); // длина текста
new int coordX[x]; // массив для координат X
new int coordY[x]; // массив для координат Y
for(i=0; i<x; i++)
{
coordX[i]=symbolxpos(i)+sx+symbolwidth(i)/2; // позиция по X + половина ширины символа
coordY[i]=symbolypos(i)+sy-symbolheight(i)/2; // позиция по Y - половина высоты символа
}
//mousemove(coordX[0], coordY[0], wind); // навести курсор в центр первой буквы
for(i=0; i<x; i++)
{
mousemove(coordX[i], coordY[i], wind); // навести курсор в центр каждой буквы
sleep(300);
}
}
ivantu
Отправлено: 23 Октября, 2018 - 14:02:30
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
Низкий поклон, спасибо большое!
Kibor
Отправлено: 06 Ноября, 2018 - 18:50:49
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Как правильно фильтровать распознанный текст когда присутствует распознанный шум и перемешаны символы (левый правее правого).
Следует посмотреть, если хотите использовать распознавание в полном объеме.
char c_text[100];//В этот массив запишем текст весь
int aw=size(Text);//Узнаем кол символов
//messagebox (aw);//тест
strcpy(#c_text[0], Text);//Скопируем текст с string в массив char
char A[300];
int X[300];
int kml=0;
int tkml;
int Min;
int tx;
int kor=0;
for (int n=0; n<aw; n++)//Перебираем посимвольно
{
if (c_text[n]!=' ' && symbolcorrect(kor)>0.5 && symbolheight(kor)>25) //если не пробел и корректность более 0.5 и высота более 25
{
A[kml]=c_text[n];//Сохраним символ
X[kml]=symbolxpos(kor);//Сохраним его координаты по X
kml++;
}
kor++;
//if (formatci(c_text[n])==13) kor--;//Если это перевод строки, уменьшим счетчик символов (так как первод строки это 13 10 - 2 символа. А функции используют 1)
}
A[kml]=0;
//messagebox (format(#A[0]));//тест
string T="";
if (kml>0)
{
tkml=0;
ee:;
Min=99999;
for (n=0; n<kml; n++)
{
if (X[n]<Min){Min=X[n]; tx=n;}//Если позиция этого символа самая левая и он не был сохранен
}
T=T+A[tx];//Допишем в string
X[tx]=100000;//Что бы его больше не считать укажем что он находится далеко правее
tkml++;
if (tkml<kml) goto ee;
}
messagebox (T);//тест
Kibor
Отправлено: 20 Ноября, 2018 - 20:25:33
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Обновил Кибор.
Теперь не надо отдельно подсчитывать индексы массивов при переводе строки в string 13 10
Теперь эти 2 символа перевода строки будут учитываться за 2 символа во всех функциях и будут совпадать.
Rekkon
Отправлено: 05 Декабря, 2018 - 21:58:08
Прохожий
Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2018
Репутация: 0
Добрый вечер.
Уважаемый администратор, скажите есть ли в планах добавить в визуальный редактор функцию:
при распознавании текста, чтобы делался автоматический клик на этом слове?
Уже два дня мучаюсь, собрал все в единую кучу, но не могу решить данную проблему :(
1) Я обучил свою базу под игру (тесты в редакторе работают отлично!)
2) Создал в визуальном редакторе "блок кода"
3) Но ничего не происходит, хоть ошибок и не выдает.
П.С. возможно это не важно, но сне нужно распознать текст в игре которая находится в эмуляторе андроид... но при этом у меня не получилось кликнуть и в обычном окне :(
От всей души благодарю за подсказку (я не программист, по этому не верно растолковал функцию readtext)! Действительно нашлось на экране куча различной информации и всякой белеберды!
Если бы вы подсказали как из всего этого хаоса выбрать необходимое слово - я был бы очень признателен
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.