Author Topic: Анализ текста в окне  (Read 134818 times)

0 Members and 2 Guests are viewing this topic.

doushy

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Анализ текста в окне
« Reply #165 on: May 07, 2022, 03:55:35 AM »
очень много времени прошло, но надеюсь ещё остались кто поможет.

у меня только такой вариант работает. И проблема именно в том, что когда у меня чисто например 30543, то он показывает 3. если 29000, покажет 29, а на числа 23456 - всё нормально, то есть на 0, он не работает, вернее он умножает на 0 и порядок  пропускается получается...
Code: (clickermann) [Select]
#name "Распознавание чисел"
// Author: Vint
// Version: 1.1 (30.01.2013)
// Результат возвращается в $res если не найдено $res=-1
// Только целые числа. Максимум 10 разрядов. Расположение цифр равномерное.
// Вариант скрипта с последовательным перебором разрядов
// Хотел обойтись без текстовых файлов, только переменные
 
 
//====== переменные которые задаются 1 раз если всего один шрифт ====
//если в скрипте будет искаться несколько наборов шрифтов, то задавать каждый раз при вызове
$sdvig=10 // сдвиг, чуть меньше чем ширина 1 цифры с отступом
$pref="textures\digitt_" // префикс имён файлов с цифрами
 
 
//====== переменные которые задаются при вызове поиска ====
//если место поиска всего одно, задавать только один раз
$field_x1=497 // поле под число, координата X1
$field_y1=1008 // поле под число, координата y1
$field_x2=615 // поле под число, координата X2
$field_y2=1035 // поле под число, координата y2


//====== внутренние переменные  ====
$razr_max=0 // максимальная разрядность числа
$xmin=5000
$res=-1 // очищаем результат
$i=0                // очищаем результат
 
 

 
//================== начало ====================================================
FOR ($obhod, $obhod<10) // очищаем результат
   GOSUB(sdvig_razryada)
END_CYC
 
GETSCREEN($field_x1,$field_y1,$field_x2,$field_y2)

COLORMODE(7)

SCREENSHOT

FOR ($i, $i<10) // ищем самую левую цифру
   IF_PICTURE_IN ($field_x1,$field_y1,$field_x2,$field_y2, STRCONCAT($pref,$i,".bmp"),-1,80)
//LOGWRITE (STRCONCAT($pref,$i,".bmp"))
      IF($_return1<$xmin)
         $xmin=$_return1
         INC($razr_max)
         $res1=$i
         IF($res1=10) // учитываем что 10-я картинка это 0
            $res1=0
           
           
         END_IF
      END_IF
   END_IF
END_CYC
IF($xmin=5000)
   LOGWRITE ("число не найдено")
   GOTO(endfindnumber)
END_IF
 
$field_x1=$xmin+$sdvig
$perebor=1
WHILE($perebor>0)
   $razr_temp=$razr_max
   FOR ($i,$i<11)
      IF_PICTURE_IN ($field_x1,$field_y1,$field_x1+INT($sdvig*1.3),$field_y2, STRCONCAT($pref,$i,".bmp"),-1,90)
         $field_x1=$_return1+$sdvig
         IF($i<11)
            INC($razr_max)
            GOSUB(sdvig_razryada)
            IF($res1=10) // учитываем что 10-я картинка это 0
               $res1=1
            END_IF
           
         END_IF
         IF($i=11) // проверка если нашли маркер конца ...11.bmp, то конец
            $perebor=0
         END_IF
         $i=11              // выходим из цикла
      END_IF
   END_CYC
   IF(($razr_temp=$razr_max) | ($razr_max=10)) // проверка если не нашли или уже 10 разрядов, то конец
      $perebor=0
   END_IF
END_CYC
 
// подсчитываем
$res=$res1+$res2*10+$res3*100+$res4*1000+$res5*10000+$res6*100000+$res7*1000000+$res8*10000000+$res9*100000000+$res10*1000000000
LOGWRITE ("res1:  ",$res1)
LOGWRITE ("res2:  ",$res2)
LOGWRITE ("res3:  ",$res3)
LOGWRITE ("res4:  ",$res4)
LOGWRITE ("res5:  ",$res5)
LOGWRITE ("res6:  ",$res6)
LOGWRITE ("res7:  ",$res7)
LOGWRITE ("res8:  ",$res8)
LOGWRITE ("res9:  ",$res9)
LOGWRITE ("res10:  ",$res10)


LOGWRITE (STRCONCAT($res1,$res2,$res3,$res4,$res5,$res6,$res7,$res8,$res9,$res10,))



endfindnumber:

LOGWRITE ("Найдено число:  ",$res)
HINTPOPUP("Найдено число:  ",$res)
HALT
 
 
//==============================================================================
SUB(sdvig_razryada)
   $res10=$res9
   $res9=$res8
   $res8=$res7
   $res7=$res6
   $res6=$res5
   $res5=$res4
   $res4=$res3
   $res3=$res2
   $res2=$res1
   $res1=$i
END_SUB
//==============================================================================

Иван_Васильевич

  • Освоившийся
  • **
  • Posts: 72
    • View Profile

 Испанский Стыд!
 Зачем плодить сущности и мучать старинные версии скрипта?
 Для вас, уважаемый автор новые версии выложил давным-давно, а вы // Version: 1.1 (30.01.2013)
 вместо Распознавание чисел 1.5.cms, с маниакальным упорством юзаете. :o
« Last Edit: May 07, 2022, 07:30:33 AM by Иван_Васильевич »

doushy

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Анализ текста в окне
« Reply #167 on: May 07, 2022, 12:30:17 PM »

 Испанский Стыд!
 Зачем плодить сущности и мучать старинные версии скрипта?
 Для вас, уважаемый автор новые версии выложил давным-давно, а вы // Version: 1.1 (30.01.2013)
 вместо Распознавание чисел 1.5.cms, с маниакальным упорством юзаете. :o

я бы с радостью, но другие версии у меня не работают, я не понимаю почему...
у меня вообще не ищет
« Last Edit: May 07, 2022, 01:09:22 PM by doushy »

Иван_Васильевич

  • Освоившийся
  • **
  • Posts: 72
    • View Profile
Re: Анализ текста в окне
« Reply #168 on: May 07, 2022, 03:23:05 PM »

 Испанский Стыд!
 Зачем плодить сущности и мучать старинные версии скрипта?
 Для вас, уважаемый автор новые версии выложил давным-давно, а вы // Version: 1.1 (30.01.2013)
 вместо Распознавание чисел 1.5.cms, с маниакальным упорством юзаете. :o

я бы с радостью, но другие версии у меня не работают, я не понимаю почему...
у меня вообще не ищет
настройки скрипта, удобны и понятны во всех версиях, проверьте правильность и полноту их заполнения своими данными.
 в вашем случае, я бы на вот это обратил внимание
$sdvig=10                  // сдвиг, чуть меньше чем ширина 1 цифры с отступом
$pref="textures\digitt_"               // префикс имён файлов с цифрами
 если не находит картинки, но не ругается на их отсутствие, то сдвиг подбирайте исходя из размеров шрифта.
 можете образцы картинок выложить и скриншот для проверки их находимости.
 вероятно ноль в вашем случае находится там где его нет.
 IF_PICTURE_IN ($field_x1,$field_y1,$field_x2,$field_y2, STRCONCAT($pref,$i,".bmp"),-1,80)
  % совпадения, всего для одной цифры это очень низкое значение.
 и переходите на последнюю версию, её большинство пользователей успешно использует, да и описание  в теме перечитайте,.
 Можно картинки цифр  повторно сохранить, увеличить оба варианта и поискать в них разницу, чтоб процент совпадения увеличить.  Или с эмулятора  ваши картинки будут или перекодируете в процессе сохранения. 8)
 нужно смотреть. :o

doushy

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Анализ текста в окне
« Reply #169 on: May 07, 2022, 03:33:51 PM »
Я сейчас на новой версии пытаюсь, но у меня вообще не ищется...хотя на старой версии всё работает.
0.8 мне хватает. я сразу под игру пишу.
и опять же повторюсь, работает на старой версии, соответственно картинки рабочие, 0.8 - рабочий
« Last Edit: May 07, 2022, 03:35:28 PM by doushy »