Page 1 of 1

trouver image

Posted: 11 Aug 2014, 20:16
by mikke
Bonsoir

Je cherche a utiliser la fonction trouver plusieurs image avec le code suivant recupere sur le wiki
En fait cela fonctionne en partie si je fait planter le script avec la derniere ligne ou je vois dans le debugger les coordonnees. Si j'enleve la derniere ligne je ne vois rien sur la console.
Est ce que la console est videe apres la fin de l'execution du callback ?

//Searches for objects on the screen
//Searches for an object on the screen
var screenShot = new Image();
screenShot.loadFromFile("ecran.png");
//
var imageToFind = new Image();
imageToFind.loadFromFile("motif.png");
screenShot.findSubImagesAsync(imageToFind, function(searchResult)
{
if(searchResult)
{ Console.print("Matching images found ");
for(var i = 0; i < searchResult.length; ++i)
{ Console.print("position: " + searchResult.position.x + ", confidence: " + searchResult.confidence + " ");
}
}
else
Console.print("No matching images found.");
},98);

Console.print("position: " + searchResult[0].position.x + ", confidence: " + searchResult[0].confidence + " ");

Salutations

Re: trouver image

Posted: 12 Aug 2014, 13:40
by francois
Bonjour,

tu utilises "findSubImagesAsync",
tu demandes donc une exécution asynchrone.
Aussi le script prend en compte l'instruction qui suit "findSubImagesAsync" avant que "findSubImagesAsync" ne soit terminé.
D'où ton souci.

Pour ce que tu veux faire, il faut utiliser "findSubImages" .

exemple :
IMG_= Image.takeScreenshot();
Search_IMG_ =IMG_.findSubImages(IMG_a_trouver,
{
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15,
maximumMatches: 10
})
if (Search_IMG_) // on a donc trouvé img
{
// Search_IMG_.length

//for(J=1;J< Search_IMG_.length;J++)
//{
// Search_IMG_[J].position
//}
} // fin if


En dehors de ta question, pour les Screenshot, tu n'es pas obligé de créer un fichier "img".
L'instruction :
IMG_= Image.takeScreenshot()
suffit .

Cordialement

Francois

Re: trouver image

Posted: 12 Aug 2014, 15:03
by mikke
Bonjour
Merci beaucoup
Avec le code suivant je recupere les coordonnees de chaque position :

IMG_= screenShot;
Search_IMG_ =IMG_.findSubImages(imageToFind,
{
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15,
maximumMatches: 10
})
if (Search_IMG_) // on a donc trouvé img
{
// Search_IMG_.length

for(J=1;J< Search_IMG_.length;J++)
{
Console.print(" la coordonnee x est : "+Search_IMG_[J].position.x);
Console.print(" la coordonnee y est : "+Search_IMG_[J].position.y+"\n");
}
}

Une question a reponse facultative ,quel est l'utilite de l'action asynchrone si c'est une image fixe ?

Salutations.

Re: trouver image

Posted: 13 Aug 2014, 11:28
by Jmgr
Une question a reponse facultative ,quel est l'utilite de l'action asynchrone si c'est une image fixe ?
La recherche dans une image peut être longue, et tu peux vouloir faire d'autres choses pendant ce temps là.