Page 1 sur 1

[R] PixelSearch list

Posté : mar. 08 juin 2010 12:11
par berthozero
Bonjour à tous et à toutes.

Mon problème et que je voudrai une fonction comme PixelSearch mais qui au lieu de renvoyer le résultat du premier pixel trouvé, me renvoi tous les pixels trouvés sous forme de tableau. Vous comprenez ?

Ou sinon comme PixelSearch mais avec une option qui permet de choisir quel pixel retourner : le premier, le quatrième ...

Merci de votre aide, si vous ne comprenez pas ma demande, veuillez me le signaler pour que je vous l'explique du mieux que je peux ;)

Re: [..] PixelSearch list

Posté : mar. 08 juin 2010 13:22
par jbnh

Re: [..] PixelSearch list

Posté : mar. 08 juin 2010 18:52
par berthozero
Voici ma fonction :
► Afficher le textePixelSearchList
Cette fonction gère les variations (0-255), permet d'ignorer des pixels (exemple : "9,100|10,100|11,100"), permet de rechercher les pixels dans un rectangle défini et retourne le résultat dans un tableau 2D.

Explication de l'utilisation :

Les 4 premiéres valeurs sont les coordonnées du rectangle de recherche (vous connaissez sans doute), ensuite il faut indiquer la couleur (vous connaissez aussi), ensuite la variation (valeur entre 0 et 255, 0 pour la valeur exacte et 255 pour toutes les couleurs. Je vous conseille de ne pas mettre de variation trop forte pour rester dans de bons résultats), ensuite les exceptions ("x,y|x2,y2", il faut les séparer avec une barre verticale)

Explication du résultat :

$test[0][0] : renvoi le nombre total de pixels trouvés

$test[1][0] : renvoi la valeur x du premier résultat
$test[1][1] : renvoi la valeur y du premier résultat

$test[1][0] : renvoi la valeur x du second résultat
$test[1][1] : renvoi la valeur y du second résultat

Exemple d'utilisation :

Code : Tout sélectionner

$test = PixelSearchList(9, 99, 11, 101, "0xCCCCCC", 0, "9,100|10,100|11,100")
If $test <> 0 Then
    MsgBox(0, "", "Il y a " & $test[0][0] & " résultats.")
    _ArrayDisplay($test)
    For $i = 1 To Ubound($test)-1
        MsgBox(0, "Résultat n°" & $i, "x : " & $test[$i][0] & @CRLF & "y : " & $test[$i][1])
    Next
EndIf