jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !
Le problème de ce sujet a été résolu
| Page 1 | |||
| Auteur | Message | ||
|---|---|---|---|
| 2 visiteurs sur ce sujet (2 anonymes) | |||
| Page 1 | |||
engu
|
# Posté le 27/01/2012 à 23:54:27 | ||
![]()
|
Bonsoir à tous,
je vous expose rapidement mon problème : j'utilise cet algorithme de remplissage d'une surface : Wikipédia : Algo de remplissage par diffusion J'ai pas trouvé plus efficace, je pensais pouvoir m'en sortir avec ça, et pourtant. Sur des images relativement petites, tout va bien (100*100 pixels). Seulement, je travaille sur des images en réalité bien plus grande (minimum 540 * 720 pixels). Alors mon programme est stoppé pour "boucle infinie" ou "récursion infinie", alors qu'elle est seulement très longue. Comment résoudre ce problème ? Merci d'avance, Engu P.S. : mon programme sera de toutes façons relativement lent, il fait du traitement vidéo image par image. |
||
| Publicité | # Posté le 27/01/2012 à 23:54:27 | ||
|
|
|||
zyd
|
# Posté le 28/01/2012 à 00:11:01 | ||
|
|
Salut,
As-tu vu cette remarque ? Citation : Wikipédia La formulation recursive précédente, si elle possède l'avantage d'être intuitive par sa formulation, est souvent inemployée en pratique, en particulier dans des environnements d'exécution où la pile d'appel des fonctions est fortement contrainte ou réduite. En clair, si tu as implémenté la première version présentée, c’est sûr que la pile d’appel grandira vite (et quand elle est pleine, tu as un joli message d’erreur et ton programme est interrompu). Comment as-tu implémenté ton algorithme ? dans quel langage ? Dis-nous en davantage ! Sais-tu ce qu’est cette pile d’appel dont il est question ci-dessus ? Bonne prog, -- Zyd. |
||
engu
|
# Posté le 28/01/2012 à 00:20:17 | ||
![]()
|
Oui je l'avais vue, sur un autre site mais l'idée est là.
J'ai bien implémenté cette version (mais en un peu modifié, car en fait je dois remplir des formes creuses, mais dans le creux on peut retrouver une forme à colorier, etc...). Sinon, implémenté de manière très simple : on part d'un pixel, on diffuse. Puis on repart d'un pixel non traité, et on diffuse (en changeant de couleur ou pas). On répète jusqu'à ce que tous les pixels soient traités. Je l'ai implémenté en C (avec la SDL pour tester sur une image, mais j'utiliserai surement une autre bibliothèque plus tard). Si vous voulez, je posterai le code (dans la journée, je ne l'ai pas sous la main et il faut que j'y mette un minimum d'ordre). Sinon la pile d'appel, je ne connais pas le détail mais le principe oui je comprends bien ce qu'il se passe. Utilisez cette implémentation : Secret (cliquez pour afficher) Code : Autre
suffira-t-il à résoudre mon problème ? Si oui, je vais aller voir un peu plus comment implémenter des piles. |
||
PatJ
|
# Posté le 28/01/2012 à 00:29:09 | ||
Ça ne marchera jamais !![]()
Ville : Cachan |
Cette réponse a aidé l'auteur du sujetCode : Autre
Message publié sous licence CC-BY-SA |
||
engu
|
# Posté le 28/01/2012 à 00:34:53 | ||
![]()
|
Merci, j'essaye d'implémenter ça dès que possible (je risque d'ailleurs d'avoir moins de temps que prévu...) et je vous tiens au courant
|
||
mohman
|
# Posté le 06/02/2012 à 22:44:43 | ||
Mon avatar : ![]()
Études : SUPINFO Canada à Montréal |
|||
Retour au forum "Autres langages, outils et approches" ou à la liste des forums
