Всем день добрый.
Попробовал использовать для своих целей Распознавание чисел 1.5.cms
Есть поле с шахтами, в левом нижнем углу которых указывается их уровень, надо его распознать
В основном коде ставлю строку 
         number_read($tmp_x-18,$tmp_y+6,$tmp_x+8,$tmp_y+25, "textures\digit_", 7)
Нарезал со скриншотов цифры, прилагаются в архиве. 
Хоть что-то распознает в среднем при качестве распознавания CASE(7) со значением $pr = 70 и ниже - но при этом попадает вообще пальцем в небо (чаще всего распознает якобы уровень 7, независимо от того какая на самом деле).
Смещения пробовал ставить от $SHIFT_X = 1 $SHIFT_Y = 1 до $SHIFT_X = 3 $SHIFT_Y = 5, не помогает.
В строке SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref,$i,".bmp"), 16744447, $pr) попробовал заменить на SCANPICTURE($a_scan, $f_x1,$f_y1,$f_x2,$f_y2, STRCONCAT($pref,$i,".bmp"), -1, $pr) - тоже не помогло
Уважаемые знатоки, что тут еще надо "подвернуть", чтобы заработало для конкретной ситуации?
Код в основной части:
//основная часть
#include "Распознавание чисел 1.5.cms" //подключение для распознавания уровня шахт
print("--------------")
print("Начинаем фармить на поверхности")
   undefine($mass_shaht)
   getscreen
   colormode(7)
   $sh_x=0 //задание координат шахты для атаки, если (0,0) - то атаковать нечего
   $sh_y=0
 
   // ---Поиск шахты с золотом   
   SCANPICTURE ($mass_shaht, 70, 400, 355, 685, "g1_gold_7v1.bmp",-1,70) // ищем с 70% совпадения
   Print("количество золотых шахт до проверки = ", arrsize($mass_shaht)/2 )
   
   $arrsize_fict=arrsize($mass_shaht)
   while ($arrsize_fict > 0) 
      $tmp_y=arrpop($mass_shaht)
      $tmp_x=arrpop($mass_shaht)
      
      IF_PICTURE_IN ($tmp_x-5+11, $tmp_y-46-5, $tmp_x+23+5, $tmp_y-20+5, "g1_taiming_7v2.bmp",-1,70) // проверка на наличие тайминга
         print("...тайминг есть, атаковать нельзя")
         // поиск уровня обнаруженной шахты
         $log = 1
         number_read($tmp_x-18,$tmp_y+6,$tmp_x+8,$tmp_y+25, "textures\digit_", 7)
         print ("уровень шахты:  ", $res, " просто посмотрели")
         
      else
         print("...тайминга нет")
         $sh_x=$tmp_x
         $sh_y=$tmp_y
         // поиск уровня обнаруженной шахты
         $log = 1
         number_read($tmp_x-18,$tmp_y+6,$tmp_x+8,$tmp_y+25, "textures\digit_", 7)
         if ($res < 13)
        	print ("...уровень шахты:  ", $res, " атакуем")
		$arrsize_fict=0 //для прерывания цикла while - если нашли цель, то иные можно не проверять
		GOTO(end_while)
         else
            print("...уровень шахты:  ", $res, " НЕ атакуем")
         end_if
      end_if
      $arrsize_fict=arrsize($mass_shaht)
      end_while:   
   end_cyc
//далее алгоритм собственно атаки
P.S.Не очень понял где лучше данный вопрос задать: то ли создавать отдельный вопрос в основном чате "Общие вопросы", то ли не плодить нового и продолжить имеющуюся тему. Решил продолжить имеющуюся