[..] Secret de la fonction remplissage

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

[..] Secret de la fonction remplissage

#1

Message 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? :shock:
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#2

Message 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.

@++
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#3

Message 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.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#4

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#5

Message par servabat »

Pour avoir le mapping d'une image, regarde ici, ici ou ici. :)

A+
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#6

Message 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().
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#7

Message 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...
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Secret de la fonction remplissage

#8

Message 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.
Signez ici
Répondre