IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Détourage d'image et recupération des coordonnées


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut Détourage d'image et recupération des coordonnées
    Bonjour à tous,
    Voila j'ai un nouveau problème
    J'aimerai pouvoir recuperer les coordonnées (en pixel) des zones non transparentes de mon image.
    Pour cela je remplit le fond de mon image avec une couleur determinée et j'applique l'algo suivant :

    > Pour demarrer l'algo on trouve un point sur le contour dont la couleur est differente de la couleur de fond (parcours de l'image)

    > une fois le point trouvé, on etudie les 8 pixels autours de lui
    > si le pixel etuidé est hors de l'aimge on continue
    > si le point a deja ete etudié on continue
    > si le pixel est une couleur autre que celle du fond
    > si on est au bord de l'image alors ce pixel fait partie du contours. On memorise et on continue
    > sinon on marque le point comme "in" et on continue
    > sinon on est sur une zone normallement transparente
    > on marque le pixel etudié comme "out"
    > si on est out et qu'on etait in alors on memorise le pixel courant
    > si on est in et que l'on etait out, on memorise le pixel precedement etudié
    > le pixel memorisé devient le pixel courant et on recommence

    Voila une base d'algo mais ca ne marche pas bien....

    Si vous avez des idées

    Merci

    ++

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Re ,
    en fait je cherchais ds le mauvais direction je pense Là je m'inspirai d'un algo genre pathfinder A*, mais c'etait idiot.
    En fait je me sers de matrices et cela va bcp mieux

    Par contre maintenant j'ai un autre probleme qui demande un autre algo.
    J'ai mes points sur le contour, mais ils sont dans de desordre. Il me faut les reclasser pour pouvoir en les reliant retracer le contour exactement.

    Est-ce assez clair, et savez vous comment faire ça ?

    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Re,
    Bon en fait mon probleme n'avance pas bien

    Je recapitule mon probleme. Pour des raisons particulières, je dois recuperer les coordonnées des pixels transparents d'images a fond transparents comme les gifs ou png.
    Je raisonne maintenant de la façon suivante :
    Je me créé une image de meme dimension de couleur de fond une couleur bien determinée.
    Je "colle" dessus l'image transparente. Donc maintenant j'ai mon image mais avec comme couleur de fond la couleur choisie precedemment.
    Je me créé une matrice binaire grace a une detection de seuil de couleur (grace a la couleur de fond que j'ai choisit). Si on est éloigné de la couleur de fond, alors la valeur vaut 1 et 0 sinon.

    Mon but est ensuite de pouvoir determiner les coordonnées de l'image non transparentes d'origine (donc les pixels ou il y a 1 ds la matrice), et ensuite de les relier dans le bon autre (là faut que je reflechisse a un algo qui fait ca aussi).


    Maintenant mon problème est que s'il existe des zones transparentes au milieu de l'image, je vais avoir des 0 au milieu de ma zone de 1. Ceci est une nouvelle zone qu'il faut que je considere (et que j'arrive a detecter) mais je ne sais pas comment le faire.

    Bref j'espere que vous ave compri mon probleme, et si vous aviez des suggestions, ce serai tres sympas.
    Merci
    Kiroukou

  4. #4
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    Juste une petite question, est-ce que ton but est de séparer la couche alpha d'une image (PNG par exemple), et donc d'avoir d'un côté un buffer de RGB et un Buffer de Alpha ?
    Qui va piano va sano...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    salut.
    Heu j'ai un petit doute, si la couche alpha correspond bien a la couche representant la partie transparente de l'image alors la reponse est oui

    J'aimerai donc bien recupere les pixels de cette zone transparente

    Je sais que je ne suis pas forcement tres clair. Mais dites moi ce qui vous manque pour m'aider a resoudre ce pb, je ferai de mon mieux

    Merci
    ++

  6. #6
    Membre habitué
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par kiroukou
    Heu j'ai un petit doute, si la couche alpha correspond bien a la couche representant la partie transparente de l'image alors la reponse est oui
    Ben moi aussi j'ai un doute parceque la couche alpha, pour moi, s'étend sur toute l'image et permet de gérer une semi-transparance.
    Or (si j'ai bien compris) tu as 1 SEULE couleur de transparence (dans le genre : soit il y a une couleur, soit c'est transparant, mais pas "c'est telle couleur transparante à 29/256ième...)

    Je pense que le mieux, c'est (après avoir éliminé d'éventuels doublons) partir d'un point au hasard, et rechercher le plus proche.
    Attention : dans les 8 points qui entoure le point courant, il faut définir un ordre (et que celui-ci soit consistant). Pas question de choisir au hasard, un coup à droite, un coup au dessus !!
    Normalement, si ton contours est bien défini (pas d'épaisseur double) ça devrais aller tout seul.

    Le seul truc c'est ça, en fonction de comment tu défini la priorité, tu pourra obtenir toujours des contours "clockwise" ou "counter-clockwise" (par rapport au sens des aiguilles d'une montre).

    Voilà.. Le seul conseil que j'ai à te donner, c'est dans se pavé de 8 autours du point, les plus prioritaires devraient êtres les "4-connectés" (N-S-E-W) et seulement ensuite les diagonales (fais des études de cas, tu verra de suite pourquoi, si tu ne veut pas oublier de point).
    [NB : ou l'inverse, si tu cherche le plus court chemin]

    Y'a les cas viceux aussi, mais j'ai supposé qu'il n'y en avais pas.
    Genre le contours fait une boucle. Si t'as ça... Ben j'y réfléchirais... Sans rien te promettre...
    Gaïa n'est pas une marchandise.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    SAlut SKZ81

    Oui en fait c'est moi qui definit ma couleur de fond, car je ne pense pas avoir accès a la couche gerant la transparence directement avec la librairie GD pour php.

    Du coup un probleme qui se rajoute est que si la couleur de fond que je choisi est dans mon image ca fait tout partir en live !!

    Un autre problème est s'il y a des zones transparentes dans l'image elle même et non pas juste autours.
    J'avais pensé a l'algo que tu me donnes (voir le premier message), mais avec qq astuces en moins. MErci pour ces conseils.

    Si quelqu'un a une autre idée, faire un peu de traitement d'image? Je pensais faire une matrice de gradiant, mais comment faire pour gerer la dimension qur l'on perd?

    Merci à vous
    ++

Discussions similaires

  1. [HTML 4.0] Calcul des coordonnées pour image réactive
    Par Marc31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/08/2011, 16h04
  2. [Debutant] Recupération des coordonnées des cellules sélectionnées dans un DataGrid
    Par yal001 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 27/08/2009, 10h54
  3. recuprer des coordonnes
    Par cortex59 dans le forum Visio
    Réponses: 1
    Dernier message: 14/05/2008, 12h03
  4. Une infobulle à partir des coordonnées sur une image
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/01/2006, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo