I'm trying to setup an "answer all" machine to get rid of unexpected popups in the middle of a procedure rollout.
To reproduce the issue, consider the following simple example:
(get image files in attachements)
(use this program to match images rdp_connect_anyway.png and rdp_connection.png)
def answerAll():
onAppear(Pattern("1576166492962.png").exact(), clickYesHandler) # Image without a mask
onAppear("1576589851448.png", clickConnectHandler) # Image without a mask
onAppear(Pattern("1573829195078.png").exact().targetOffset(2,6), clickNoHandler) # Image WITH an automask
observeInBackground()
answerAll()
popup("Terminate")
When started from the IDE, popup "Terminate" appears and nothing happens. After having stopped the program (clicking on the popup), message pan shows:
Exception in thread "Thread-37" CvException [org.opencv.core.CvException: cv::Exception: OpenCV(3.4.2) C:\build\3_4_winpack-bindings-win64-vc14-static\opencv\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 'cv::arithm_op'
]
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:1419)
at org.sikuli.script.Finder$Finder2.find(Finder.java:614)
at org.sikuli.script.Finder.find(Finder.java:280)
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:3809)
at org.sikuli.script.Region.access$700(Region.java:23)
at org.sikuli.script.Region$ObserverThread.run(Region
.java:3876)
at java.lang.Thread.run(Unknown Source)
I even tried with Sikulix-2.1.0 (built from commit 696314e322a07cc47319e9cf5a4a500ca838f0fc) and got roughly the same thing. (with opencv 4.1.1, obiously)
Exception in thread "Thread-35" CvException [org.opencv.core.CvException: cv::Exception: OpenCV(4.1.1) C:\build\master_winpack-bindings-win64-vc14-static\opencv\modules\core\src\arithm.cpp:663: 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 'cv::arithm_op'
]
at org.opencv.core.Core.multiply_2(Native Method)
at org.opencv.core.Core.multiply(Core.java:4382)
at org.sikuli.script.Finder$FindInput2.setAttributes(Finder.java:1444)
at org.sikuli.script.Finder$Finder2.find(Finder.java:628)
at org.sikuli.script.Finder.find(Finder.java:280)
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:3807)
at org.sikuli.script.Region.access$600(Region.java:22)
at org.sikuli.script.Region$ObserverThread.run(Reg
ion.java:3874)
at java.lang.Thread.run(Unknown Source)
Commenting out third onAppear() line (the one with masked image) everything works perfectly. (though sometimes it is necessary the restart the IDE to recover from previous errors)
Masked image was created by deleting part of the picture. Note that using pattern matching outside of the observeInBackground context works perfectly with this image.
Hello,
I'm using SikuliX-2.0.1 on Windows 7, Java 8.
I'm trying to setup an "answer all" machine to get rid of unexpected popups in the middle of a procedure rollout. anyway. png and rdp_connection.png)
To reproduce the issue, consider the following simple example:
(get image files in attachements)
(use this program to match images rdp_connect_
def clickNoHandler( event): match.click( "1576165706268. png") # "No" button
event.
event.repeat()
def clickYesHandler (event) : match.click( "1576166585508. png") # "Yes" button
event.
event.repeat()
def clickConnectHan dler(event) : match.below( ).click( "1576589919586. png") # "Connect" button
event.
event.repeat()
def answerAll(): Pattern( "1576166492962. png").exact( ), clickYesHandler) # Image without a mask "1576589851448. png", clickConnectHan dler) # Image without a mask Pattern( "1573829195078. png").exact( ).targetOffset( 2,6), clickNoHandler) # Image WITH an automask ckground( )
onAppear(
onAppear(
onAppear(
observeInBa
answerAll()
popup("Terminate")
When started from the IDE, popup "Terminate" appears and nothing happens. After having stopped the program (clicking on the popup), message pan shows: core.CvExceptio n: cv::Exception: OpenCV(3.4.2) C:\build\ 3_4_winpack- bindings- win64-vc14- static\ opencv\ 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 'cv::arithm_op' core.Core. multiply_ 2(Native Method) core.Core. multiply( Core.java: 1831) script. Finder$ FindInput2. setAttributes( Finder. java:1419) script. Finder$ Finder2. find(Finder. java:614) script. Finder. find(Finder. java:280) script. support. Observer. checkPatterns( Observer. java:217) script. support. Observer. update( Observer. java:366) script. Region. observeDo( Region. java:3809) script. Region. access$ 700(Region. java:23) script. Region$ ObserverThread. run(Region Thread. run(Unknown Source)
Exception in thread "Thread-37" CvException [org.opencv.
]
at org.opencv.
at org.opencv.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
.java:3876)
at java.lang.
I even tried with Sikulix-2.1.0 (built from commit 696314e322a07cc 47319e9cf5a4a50 0ca838f0fc) and got roughly the same thing. (with opencv 4.1.1, obiously) core.CvExceptio n: cv::Exception: OpenCV(4.1.1) C:\build\ master_ winpack- bindings- win64-vc14- static\ opencv\ modules\ core\src\ arithm. cpp:663: 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 'cv::arithm_op' core.Core. multiply_ 2(Native Method) core.Core. multiply( Core.java: 4382) script. Finder$ FindInput2. setAttributes( Finder. java:1444) script. Finder$ Finder2. find(Finder. java:628) script. Finder. find(Finder. java:280) script. support. Observer. checkPatterns( Observer. java:217) script. support. Observer. update( Observer. java:366) script. Region. observeDo( Region. java:3807) script. Region. access$ 600(Region. java:22) script. Region$ ObserverThread. run(Reg Thread. run(Unknown Source)
Exception in thread "Thread-35" CvException [org.opencv.
]
at org.opencv.
at org.opencv.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
at org.sikuli.
ion.java:3874)
at java.lang.
Commenting out third onAppear() line (the one with masked image) everything works perfectly. (though sometimes it is necessary the restart the IDE to recover from previous errors)
Masked image was created by deleting part of the picture. Note that using pattern matching outside of the observeInBackground context works perfectly with this image.
Thank-you for reading.