[Actionaz] Specifier zone de recherche sur sa fenetre

Vous voulez de l'aide ? Postez ici :)
Post Reply
Renjus
Posts: 2
Joined: 15 Jun 2017, 13:51

[Actionaz] Specifier zone de recherche sur sa fenetre

Post by Renjus »

Bonjour,

Contrairement a beaucoup de question sur le forum qui cherche à récupérer les positions d'un objet dans une image ou fenetre, je cherche à faire l'inverse :D . Je cherche à indiquer une zone de recherche.

Je veux dire à mon programme Actionaz " Va faire ta recherche a cet endroit de la fenêtre et essaye de m'y trouver cet image. Puis va à cet autre endroit et essaye de nouveau". Ainsi de suite. La fenêtre et les images ne bougent pas et ne changent pas de design.

Ma question est donc comment dire à mon bouton action "Trouver une image" d'effectuer sa recherche dans telle ou telle zone ? Existe-t-il un autre bouton action permettant d'indiquer la zone de recherche dans Actionaz ou doit-on passer par du code ?

Merci d'avance pour vos réponses :D .
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: [Actionaz] Specifier zone de recherche sur sa fenetre

Post by francois »

Bonjour,

Je crois que pour faire ce que tu veux, il faut passer par du code. ( en utilisant Rect)

Code: Select all

var screenShot = Image.takeScreenshot();
var img_rect = screenShot.copy(new Rect(505,415,50,50));

var IMG_a_trouver = new Image("C://temp//tofind.jpg");

 Search_IMG_ =img_rect.findSubImage(IMG_a_trouver,
 {
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15
 })
 Execution.pause(100)	

if (Search_IMG_) //  on a donc trouvé  l'image
 { 
   // Search_IMG_.position.x
   // Search_IMG_.position.y  
   // Search_IMG_.confidence  
 }

Pour voir les paramètres de Rect:
https://wiki.actiona.tools/doku.php?id= ... :core:rect
Renjus
Posts: 2
Joined: 15 Jun 2017, 13:51

Re: [Actionaz] Specifier zone de recherche sur sa fenetre

Post by Renjus »

Super merci @francois.


Chapitre 1 :
var screenShot = Image.takeScreenshot();
var img_rect = screenShot.copy(new Rect(505,415,50,50));

Pourquoi crées-tu une copie de l'image. N'est-il pas possible de spécifier directement dans le première variable la zone de recherche pour la comparer ensuite ? genre (voir ci-dessous)

Code: Select all

[quote]var screenShot = Image.takeScreenshot(nex Rect(505,415,50,50)
Chapitre 2 :
var IMG_a_trouver = new Image("C://temp//tofind.jpg");
Le bout de code me permettant d'aller chercher l'image que je veux comparer :wink:


Chapitre 3 :
Search_IMG_ =img_rect.findSubImage(IMG_a_trouver,
{
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15
})
Le bout de code qui me permet de comparer mes deux images 8)


Chapitre 4 :
if (Search_IMG_) // on a donc trouvé l'image
Là je ne suis pas sûr de comprendre :? . A Quel moment fais-tu la vérification si vrai ou faux ? C'est grâce à la fonction précédente findSublmage ?


Chapitre 5

{
// Search_IMG_.position.x
// Search_IMG_.position.y
// Search_IMG_.confidence
}
Pourquoi rechercher de nouveau les positions de l'image ?
Je ne l'avais pas expliqué précédemment mais le but de ma manœuvre est de comparer l'image enregistrer de l'image sur ma fenêtre. Si la condition est vérifier je vais donc renvoyer vers une variable stockant cette information. Exemple : Si je cherche le chiffre 6 dans une zone donnée est qu'il l'a trouve, je renvoie à ma variable 6 ($chiffreSix) associée. J'exploiterai par la suite cette variable.
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: [Actionaz] Specifier zone de recherche sur sa fenetre

Post by francois »

Je réponds à tes questions :

J'utilise :

Code: Select all

var screenShot = Image.takeScreenshot();
var img_rect = screenShot.copy(new Rect(505,415,50,50));
parce que .... j'ai trouvé un exemple qui fonctionnait.



Code: Select all

if (Search_IMG_) 
{
   // Search_IMG_.position.x
   // Search_IMG_.position.y  
   // Search_IMG_.confidence  
}
C'est du javascript, comprendre : Si Search_IMG_ est rempli alors on rentre dans { } (<= C'est là qu'il faudra valoriser ta variable)

et Search_IMG_ a été utilisé dans l'instruction précédente :

Code: Select all

Search_IMG_ =img_rect.findSubImage(IMG_a_trouver,
 {
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15
 })
Donc Search_IMG_ est rempli si et seulement si l'image est trouvée.
Post Reply