Page 1 sur 1
[..] Secret de la fonction remplissage
Posté : jeu. 22 mars 2012 19:42
par karime1
Bonjours,
quel est l'algorithme utilisé par le pot de couleur (paint) ou la baguettre magique (photoshop)? et comment arrivent ils a un tel résultat aussi rapidement?

Re: [..] Secret de la fonction remplissage
Posté : jeu. 22 mars 2012 20:25
par servabat
Salut
C'est une question de tolérance. Imaginons qu'un pixel ai la couleur RVB R(123) V(30) B(223) (en sachant que le niveau de couleur est le plus souvent définis dans une variable
char donc de
0 à
255). Imaginons qu'on choisisse une tolérance de 25. Dans ce cas, l'outil cherchera tout les pixels contigus ayant une valeur de + ou - 25 dans chaque couleur, R, V et B. Et on arrive avec ça a une sélection.
Avec notre exemple, tout les pixels contigus ayant une valeur R([98-148]) V([5-55]) B([198-248]) seront sélectionnés.
@++
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 00:23
par karime1
je le sais tout ça. ce que je cherche c'est le bout de code qui me retourne une array avec tout ces pixels.
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 01:01
par jchd
Il n'y a pas de primitive graphique pour faire du suivi de contour, avec ou sans tolérance.
C'est typiquement la compétence d'une bibliothèque graphique véloce, ce qu'AutoIt n"est pas du tout.
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 19:06
par servabat
Pour avoir le mapping d'une image, regarde
ici,
ici ou
ici.
A+
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 20:51
par karime1
@servabat: lire la couleur des pixel prend 25 sec contre 2 à 5 sec pour l'ouverture de la même image avec paint
donc si j'essaye de faire une fonction de remplissage pour l'appliquer sur une img blanche de dims 850*1200 ça prendra 25 sec minimum. en gros lire la couleur des pixels n'est pas la solution ^^
quand j'avais dit "ce que je cherche c'est le bout de code qui me retourne une array avec tout ces pixels." je ne voulait pas dire tout px et même si je modifie la fonction ça reste tros long, en moyenne il faux que je vérifie (1/4)*800*1200*50 pixels à chaque fois que je lance l'app.
@jchd: je sais bien que Autoit n'a pas ce genre de fonction. et c'est pour ça qu'il y'a DllCall().
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 20:58
par servabat
En vérité toute application lit tout les pixels quand tu ouvre une image, que ce soit une application de traitement d'image ou non >< Sinon l'image ne s'affiche pas... Comment croit tu qu'une image s'affiche ? L'application lit tout les pixels et les affiche... Evidemment, le temps de traitement est long vu que la fonction est peut être mal conçue...
Re: [..] Secret de la fonction remplissage
Posté : ven. 23 mars 2012 23:19
par Iste
karime1 a écrit :comment arrivent ils a un tel résultat aussi rapidement?
Comme vous, mais dans un langage adapté.
Je ne connais pas de dll spécialisé dans ce genre de traitement, mais comme vous savez visiblement qu'on peut s'en servir avec AutoIt, il ne vous reste plus qu'a chercher sur le net une dll qui correspond a vos besoin, ou la créer.