SikuliXでOCR機能を使用せずに数字を認識する

Multi-Xの画面右下に表示しているマウス位置の測量座標を、Region.textで文字認識を試みましたが、誤認識でなかなか完全に一致しませんでした。

OCR機能はあきらめて他の方法を試しました。

各数字の画像と、「,」「」「.」の計13枚の画像を準備してRegion.findAllで検索し画面上の位置で並び替えて認識させてみました。

数字認識サンプル

実行結果です。
10数回試しましたが、誤認識せず一致する結果となりました。

結果その1

結果その2

結果その3

import sys
reload(sys)
import datetime
sys.setdefaultencoding('utf-8')
Settings.MinSimilarity=0.99
print "Start:",datetime.datetime.today()
imageList = ["0.png","1.png","2.png","3.png","4.png","5.png","6.png","7.png","8.png","9.png","COMMA.png","minus.png","dot.png"]
XYREG=Region(1609,994,194,27)
XYREG.setAutoWaitTimeout(0.1)
matches = []
for index, image in enumerate(imageList):
    try:
        mm = XYREG.findAll(image)
    except:
        pass
    else:        
        while mm.hasNext():
            matches.append([mm.next().getX(),index])
matches.sort()
xytmp =""
for m in matches:
    if m[1] == 10:
        tmp =","
    elif m[1] == 11:
        tmp ="-"
    elif m[1] == 12:
        tmp ="."    
    else:
        tmp = str(m[1])
    xytmp += tmp    
XYLIST = xytmp.split(",")
print "X座標:" + XYLIST[0]
print "Y座標:" + XYLIST[1]
print "END:",datetime.datetime.today()

2018年6月24日 | カテゴリー : その他 | 投稿者 : HP編集者