action : recherche d'image
action : recherche d'image
Bonjour, me voilà pour un autre problème : je souhaite utilise la recherche d'image, mais je n'ai pas encore bien prit en main cette action.
Quelqu'un peut-être m'expliquer en quoi consistent les 3 méthodes ?
"Correlation Coefficient" / "Cross Correlation" / "Squared Difference"
Je ne sais pas non plus comment fonctionne "l'expansion de la recherche" ?
Quand au sous-échantillonnage, 1 est le minimum, si on augmente la recherche est plus rapide, c'est ça ? Mais la recherche est alors moins précise ?
Et surtout ma question : comment faire pour chercher dans une zone précise de l'écran/ d'une fenêtre ? (pour accélérer la recherche, réduire les erreurs etc
Quelqu'un peut-être m'expliquer en quoi consistent les 3 méthodes ?
"Correlation Coefficient" / "Cross Correlation" / "Squared Difference"
Je ne sais pas non plus comment fonctionne "l'expansion de la recherche" ?
Quand au sous-échantillonnage, 1 est le minimum, si on augmente la recherche est plus rapide, c'est ça ? Mais la recherche est alors moins précise ?
Et surtout ma question : comment faire pour chercher dans une zone précise de l'écran/ d'une fenêtre ? (pour accélérer la recherche, réduire les erreurs etc
Re: action : recherche d'image
Bonjour,
La recherche d'image est un point fort d'Actiona et c'est sans doute l'action la plus complexe.
Dans la rubrique Tutos & exemples, message Recherche image dans image,
j'ai fait il y a 3 ans un topo sur ce que j'ai compris de cette action ( plus via la pratique que via la théorie).
Même si JMGR a encore fait progresser cette action, Il y a des réponses à tes questions.
Juste quelques précisions ( Y compris sur ce que je n'ai pas compris) :
Quelqu'un peut-être m'expliquer en quoi consistent les 3 méthodes ?
"Correlation Coefficient" / "Cross Correlation" / "Squared Difference"
Via l'analyse de la valeur de la variable confiance, en sortie,
Correlation Coefficient correspond au besoin standard, recherche d'une image ressemblant le plus possible à l'image proposée.
La confiance diminue rapidement dès qu'il y a des différences.
Cross Correlation , la confiance ne diminue pas rapidement même s'il y a des différences.
Je verrais bien un type d'utilisation : recherche d'une photo abimée.
Squared Difference
Via les tests que j'ai fait, je vois pas trop.
Je ne sais pas non plus comment fonctionne "l'expansion de la recherche" ?
Exemple si expansion de la recherche = 20.
Si actiona trouve une image, il ne cherchera pas s'il y a une autre image à moins de 20 pixels de celle qui vient d'etre trouvée.
Quand au sous-échantillonnage, 1 est le minimum, si on augmente la recherche est plus rapide, c'est ça ? Mais la recherche est alors moins précise ?
J'ai pas vraiment compris cette notion, je mets toujours 1.
Et surtout ma question : comment faire pour chercher dans une zone précise de l'écran/ d'une fenêtre ? (pour accélérer la recherche, réduire les erreurs etc
Via le code :
=====
=====
Il y a 2 paramètres importants
Confiance minimale et nombre maximum d'images à chercher
( confidenceMinimum et maximumMatches dans le code)
Confiance minimale :
Si trop petit, il détecte même ce qu il ne faudrait pas détecter
Si trop grand, il ne détecte pas ce qu'il devrait détecter.
Faut juste tester avant.
Nombre maximum d'images à chercher
Si on met 1, actiona s'arrête dès qu'il a trouvé une image
... Y compris s'il y en d'autres.
Cordialement
Francois
La recherche d'image est un point fort d'Actiona et c'est sans doute l'action la plus complexe.
Dans la rubrique Tutos & exemples, message Recherche image dans image,
j'ai fait il y a 3 ans un topo sur ce que j'ai compris de cette action ( plus via la pratique que via la théorie).
Même si JMGR a encore fait progresser cette action, Il y a des réponses à tes questions.
Juste quelques précisions ( Y compris sur ce que je n'ai pas compris) :
Quelqu'un peut-être m'expliquer en quoi consistent les 3 méthodes ?
"Correlation Coefficient" / "Cross Correlation" / "Squared Difference"
Via l'analyse de la valeur de la variable confiance, en sortie,
Correlation Coefficient correspond au besoin standard, recherche d'une image ressemblant le plus possible à l'image proposée.
La confiance diminue rapidement dès qu'il y a des différences.
Cross Correlation , la confiance ne diminue pas rapidement même s'il y a des différences.
Je verrais bien un type d'utilisation : recherche d'une photo abimée.
Squared Difference
Via les tests que j'ai fait, je vois pas trop.
Je ne sais pas non plus comment fonctionne "l'expansion de la recherche" ?
Exemple si expansion de la recherche = 20.
Si actiona trouve une image, il ne cherchera pas s'il y a une autre image à moins de 20 pixels de celle qui vient d'etre trouvée.
Quand au sous-échantillonnage, 1 est le minimum, si on augmente la recherche est plus rapide, c'est ça ? Mais la recherche est alors moins précise ?
J'ai pas vraiment compris cette notion, je mets toujours 1.
Et surtout ma question : comment faire pour chercher dans une zone précise de l'écran/ d'une fenêtre ? (pour accélérer la recherche, réduire les erreurs etc
Via le code :
Code: Select all
var screenShot = Image.takeScreenshot();
IMG_= screenShot.copy(new Rect(505,415,50,50));
var IMG_a_trouver = new Image(p51_exercice_clos_le);
Search_IMG_ =IMG_.findSubImages(IMG_a_trouver,
{
confidenceMinimum: 80,
downPyramidCount: 1,
searchExpansion: 15,
maximumMatches: 10
})
if(searchResult)
{
for(var j =0 ;j < searchResult.length; ++j)
{
actuelle_img= searchResult[j].position
actuelle_confiance=searchResult[j].confidence;
//=> prendre ou pas suivant la confiance de l'image
} // fin for
} // fin if
=====
Il y a 2 paramètres importants
Confiance minimale et nombre maximum d'images à chercher
( confidenceMinimum et maximumMatches dans le code)
Confiance minimale :
Si trop petit, il détecte même ce qu il ne faudrait pas détecter
Si trop grand, il ne détecte pas ce qu'il devrait détecter.
Faut juste tester avant.
Nombre maximum d'images à chercher
Si on met 1, actiona s'arrête dès qu'il a trouvé une image
... Y compris s'il y en d'autres.
Cordialement
Francois
Re: action : recherche d'image
Merci
Bon j'ai mieux compris certaines parties mais pas tout, en tout cas ton code pour chercher dans une zone précise devrait m'éviter toute erreur
Bon j'ai mieux compris certaines parties mais pas tout, en tout cas ton code pour chercher dans une zone précise devrait m'éviter toute erreur
Re: action : recherche d'image
Euhm, j'ai une question de fou mdr :
Ton texte je dois l'utiliser où/comment ?
edit => Je crois qu'il faut simplement que je mette ça dans une action "code" c'est ça
et une autre : pour l'expansion de la recherche, le nombre de pixel c'est compté à droite, en bas, les deux ? (je parle pas d'autres directions car je présume que le balayage se fait de gauche à droite et de haut en bas, ou alors de haut en bas et de gauche à droite)
et enfin : comme le code est relativement court, tu pourrai me traduire chaque ligne en gros "ce qu'il se passe" ? j'ai des notion de codage mais rien de fou et surtout pas dans ce language de programmation du coup j'ai pas tout compris
Ton texte je dois l'utiliser où/comment ?
edit => Je crois qu'il faut simplement que je mette ça dans une action "code" c'est ça
et une autre : pour l'expansion de la recherche, le nombre de pixel c'est compté à droite, en bas, les deux ? (je parle pas d'autres directions car je présume que le balayage se fait de gauche à droite et de haut en bas, ou alors de haut en bas et de gauche à droite)
et enfin : comme le code est relativement court, tu pourrai me traduire chaque ligne en gros "ce qu'il se passe" ? j'ai des notion de codage mais rien de fou et surtout pas dans ce language de programmation du coup j'ai pas tout compris
Re: action : recherche d'image
Je t envoie un exemple commente lundi
Re: action : recherche d'image
Bonjour,
En pièce jointe un exemple qui réponds à quelques questions concernant les paramètres de l'action 'Trouver image'.
Pour une première utilisation , lire le fichier lisez-moi.doc.
Relativement à ton dernier message :
Quand il y a plusieurs images trouvées et qu'on affiche les coordonnées de chaque point, il ne semble pas y avoir une logique genre gauche vers droite.
Le but de l'expansion de la recherche est d'accélérer la recherche lorsque l'on sait pas exemple que si une image est trouvée la suivante est à une distance de + de 100 pixels.
Si N images trouvées, il est possible dans le script de retenir par exemple celle la plus à droite.
Bonne journée.
En pièce jointe un exemple qui réponds à quelques questions concernant les paramètres de l'action 'Trouver image'.
Pour une première utilisation , lire le fichier lisez-moi.doc.
Relativement à ton dernier message :
OK.Ton texte je dois l'utiliser où/comment ?
edit => Je crois qu'il faut simplement que je mette ça dans une action "code" c'est ça
Je ne sais pas dans quelle direction Actiona fait la recherche suivante.et une autre : pour l'expansion de la recherche, le nombre de pixel c'est compté à droite, en bas, les deux ? (je parle pas d'autres directions car je présume que le balayage se fait de gauche à droite et de haut en bas, ou alors de haut en bas et de gauche à droite)
Quand il y a plusieurs images trouvées et qu'on affiche les coordonnées de chaque point, il ne semble pas y avoir une logique genre gauche vers droite.
Le but de l'expansion de la recherche est d'accélérer la recherche lorsque l'on sait pas exemple que si une image est trouvée la suivante est à une distance de + de 100 pixels.
Si N images trouvées, il est possible dans le script de retenir par exemple celle la plus à droite.
Voir dans le fichier lisez-moi.doc.comme le code est relativement court, tu pourrai me traduire chaque ligne en gros "ce qu'il se passe" ? j'ai des notion de codage mais rien de fou et surtout pas dans ce language de programmation du coup j'ai pas tout compris
Bonne journée.
- Attachments
-
- recherche_image_dans_zone.zip
- (18.74 KiB) Downloaded 153 times
Re: action : recherche d'image
Je me penche sur le code !
Alors pour info :
"Dans la suite, downPyramidCount est figé à 1.
J’ai pas vraiment pigé ce paramètre."
c'est l'équivalent de "sous-echantillonage" dans l'action classique recherche d'image
Alors pour info :
"Dans la suite, downPyramidCount est figé à 1.
J’ai pas vraiment pigé ce paramètre."
c'est l'équivalent de "sous-echantillonage" dans l'action classique recherche d'image
Re: action : recherche d'image
https://wiki.actiona.tools/doku.php?id= ... ndsubimage
https://wiki.actiona.tools/doku.php?id= ... age#method
avec l'action recherche d'image je trouve presque toujours l'image au bon endroit, et là en réduisant la zone avec le code je ne trouve pas. Je crois que c'est à cause de la méthode de recherche, j'utilise la 2 CrossCorrelation et non pas CorrelationCoefficient.
j'ai essayé d'ajouter ça aux option du code à l'aide de la page dont j'ai indiqué l'url ci-dessus, mais la syntaxe marche pas :/
https://wiki.actiona.tools/doku.php?id= ... age#method
avec l'action recherche d'image je trouve presque toujours l'image au bon endroit, et là en réduisant la zone avec le code je ne trouve pas. Je crois que c'est à cause de la méthode de recherche, j'utilise la 2 CrossCorrelation et non pas CorrelationCoefficient.
j'ai essayé d'ajouter ça aux option du code à l'aide de la page dont j'ai indiqué l'url ci-dessus, mais la syntaxe marche pas :/
Re: action : recherche d'image
Bonjour,
Exemple de choix de méthode avec le code :
S'il n'y a pas de paramètre 'method', Actiona prend par défaut CorrelationCoefficient.
Info dans https://wiki.actiona.tools/doku.php?id= ... core:image :
Exemple de choix de méthode avec le code :
Code: Select all
Search_IMG_ = img_rect .findSubImages(image_a_trouver,{
method:'CorrelationCoefficient',
confidenceMinimum:60,
downPyramidCount: 1,
searchExpansion: 5,
maximumMatches: 10
})
Info dans https://wiki.actiona.tools/doku.php?id= ... core:image :
Re: action : recherche d'image
Salut
Merci beaucoup, j'avais lu l'image que tu as jointe, mais je ne savais pas comment bien écrire la ligne :
Maintenant ça devrait être bon : je vais tester !
Merci beaucoup, j'avais lu l'image que tu as jointe, mais je ne savais pas comment bien écrire la ligne :
Code: Select all
method:'CorrelationCoefficient',
Re: action : recherche d'image
Salut, c'est tout bon, autant pour ça que pour le reste de mon "projet" grâce à vous j'ai finit, merci beaucoup !
Re: action : recherche d'image
Bonjour,
Il y a un bug dans l'exemple que j'ai donné,
lorsque l'on cherche une image dans une zone particulière.
Jusqu'ici c'est OK.
Le problème vient après :
Ici, on restitue le x de l'image trouvée avec comme référence le rectangle.
Si on veut donner le x de l'image trouvée relativement au screenshot que l'on a fait, il faut revenir à :
Donc valeur du x de l'image trouvée relativement au screenshot :
Search_IMG_[J].position.x + 10
Il faudra faire la même chose avec le y.
Merci à Sergent-Quentin qui a détecté ce bug.
Cordialement
Il y a un bug dans l'exemple que j'ai donné,
lorsque l'on cherche une image dans une zone particulière.
Code: Select all
zone_de_recherche=new Rect(10,10,500,500);
var image_a_trouver = new Image("C://temp//image_recherchee.jpg");
var copie_ecran = Image.takeScreenshot();
var img_rect = copie_ecran.copy(zone_de_recherche);
Search_IMG_ = img_rect .findSubImages(image_a_trouver,{
confidenceMinimum:60,
downPyramidCount: 1,
searchExpansion: 5,
maximumMatches: 10
})
if (Search_IMG_) // on a donc trouvé img
{
Console.print("Nombre d images trouvées :" + Search_IMG_.length )
Console.print("=====");
for(J=0;J< Search_IMG_.length;J++)
{ ..
Le problème vient après :
Code: Select all
Console.print("x : " + Search_IMG_[J].position.x);
Si on veut donner le x de l'image trouvée relativement au screenshot que l'on a fait, il faut revenir à :
Code: Select all
zone_de_recherche=new Rect(10,10,500,500);
Search_IMG_[J].position.x + 10
Il faudra faire la même chose avec le y.
Merci à Sergent-Quentin qui a détecté ce bug.
Cordialement
Re: action : recherche d'image
Merci de l'info, je pensais que c'était naturel alors je n'en ait pas parlé ici, mais j'avais remarqué la chose, que j'avais directement compensé de la sorte :
j'utilise, après le code de recherche d'image, une action "déplacement du curseur", la position j'ai rentré :
et voyant le décalage, je suis allé dans les option "avancé" et comme valeur de décalage, j'ai indiqué simplement la valeur du point qui fait le coin haut gauche du rectangle!
(enfin dans ton exemple je prendrai 10:0 car je veut rester à Y=811 donc je ne met pas de décalage dessus)
Je sais pas si c'est clair ?
j'utilise, après le code de recherche d'image, une action "déplacement du curseur", la position j'ai rentré :
Code: Select all
Search_IMG_[0].position.x+":"+811
(enfin dans ton exemple je prendrai 10:0 car je veut rester à Y=811 donc je ne met pas de décalage dessus)
Je sais pas si c'est clair ?