Comment 3 for bug 1856719

Revision history for this message
Marcos Vinícius (marcosvrs) wrote : Re: [2.0.1] CvException "Sizes of input arguments do not match" with observeInBackground and automasked images

Hi,
Any news? Same occurring here.

Sikulix
2.0.4-2020-03-14_08:01/Mac10.15.4/Java14(64)14.0.1+7

Darwin MAC 19.4.0 Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64

Following the error tracer:
[error] script [ Training ] stopped with error in line 66
[error] Error caused by: Traceback (most recent call last):
  File "/Users/User/Desktop/Training.sikuli/Training.py", line 66, in <module>
    dashboard.observe()
  File "/Users/User/Library/Application Support/Sikulix/Lib/sikuli/Region.py", line 59, in observe
    return self.observeInLine(waitTime);
]
 at org.opencv.core.Core.multiply_2(Native Method)
 at org.opencv.core.Core.multiply(Core.java:1831)
 at org.sikuli.script.Finder$FindInput2.setAttributes(Finder.java:1409)
 at org.sikuli.script.Finder$Finder2.find(Finder.java:579)
 at org.sikuli.script.Finder.find(Finder.java:219)
 at org.sikuli.script.support.Observer.checkPatterns(Observer.java:217)
 at org.sikuli.script.support.Observer.update(Observer.java:366)
 at org.sikuli.script.Region.observeDo(Region.java:3633)
 at org.sikuli.script.Region.observeInLine(Region.java:3604)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at java.base/jdk.inte
rnal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:564)
org.opencv.core.CvException: CvException [org.opencv.core.CvException: cv::Exception: OpenCV(3.4.2) /Users/raimundhocke/SikuliX/OpenCV/opencv-3.4.2/modules/core/src/arithm.cpp:659: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'arithm_op'
]

Code:
Settings.MoveMouseDelay = 0.0
running = True
game = switchApp("Game.app")

def abort():
    global game
    global running
    stopObserver()
    type(Key.F4)
    wait(1)
    game.closeByKey()
    running = False

def runHotkey():
    global running
    stopObserver()
    running = False

def healing(event):
    if game.hasWindow():
        type(Key.F1)
        wait(1.1)
    event.repeat()

def mana(event):
    abort()
    wait(2)
    event.repeat()

def refilSmallStone(event):
    if not exists(Pattern("1589224230463.png").exact()):
        if game.hasWindow():
            type(Key.F8)
            wait(2)
    else:
        abort()
    event.repeat()

def eatFood(event):
    if not exists(Pattern("1589224208704.png").exact()):
        if game.hasWindow():
            type(Key.F12)
            wait(2)
    else:
        abort()
    event.repeat()

def attack(event):
    if game.hasWindow():
        with Region(1263,436,177,464) as attackList:
            if not attackList.exists(Pattern("1589131763363.png").exact()):
                Location(1314, 481).click()
                attackList.hover("1589223525078.png")
    wait(2)
    event.repeat()

Env.addHotkey(Key.ESC, KeyModifier.CMD, runHotkey)
with Region(1261,120,179,780) as dashboard:
    dashboard.onVanish(Pattern("1589123492201.png").similar(0.90), healing)
    dashboard.onAppear(Pattern("1589130665921.png").exact(), healing)
    dashboard.onAppear("1589169307224.png", mana)
    dashboard.onAppear("1589223285829.png", refilSmallStone)
    dashboard.onAppear("1589223154707.png", eatFood)
    dashboard.onVanish(Pattern("1589131763363.png").exact(), attack)
    dashboard.onAppear("1589223609217.png", attack)
    dashboard.observe()