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

Traitement d'images Discussion :

Calcul du squelette d'une image en c++


Sujet :

Traitement d'images

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut Calcul du squelette d'une image en c++
    j'ai besoin de l' implémentation du calcul du squelette d'une image en c++
    l'image pour moi c'est un tableaux de pixel de 2 dimenssion
    quelqun peut m'aider mérci

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Tu es ici dans la section algorithmes, mais tu peux t'inspirer du code publié dans la rubrique "contribuez" :
    http://www.developpez.net/forums/sho...d.php?t=344035

  3. #3
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Salut j'avais ouvert une discussion il y a un moment il y a une source. Je ne sais pas si c'est cu C/c++ ou java.

    C'est ici a la deuxieme page.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    le sujet a déjà été traité plusieurs fois et j'ai répondu. Fais une recherche.

    Sinon une des façon les plus simple pour avoir un squelette c'est de faire un amincissement homotopique.
    En gros tu déplaces un masque sur ton image et si le pixel testé répond au critères imposés par le masque il est supprimé.
    C'est un squelette simple, qui donne des résultats correctes avec une grande sensibilité aux bruits.

    Si tu veux un squelette plus complexe et stable, je te conseille très fortement de lire la thèse de Lohou (j'ai oublié le prénom, Cristophe me semble t-il).
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    En plus des approches topologiques, il y a aussi des approches morphologiques, qui sont plutôt plus stable (au sens où elles produisent moins de petites branches). En revanche, je crois me souvenir que la topologie ne peut être préservée par ces approches que sur une grille hexagonale.

    On peut aussi citer les approches par carte de distance, bien détaillées dans la thèse de Olivier Cuisenaire.

    Tout dépend ensuite de l'application souhaitée.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    Merci a vous tous, j'ai testé les programmes du squelette déjà proposé dans le forum, et j'ai trouvé des bons résultats
    J’ai appliqué ca sur les images caractères, maintenant je cherche à détecter les segments dans le caractère, premièrement en cherchant les points d'intérêts dans le squelette. Mais j'ai trouvé quelques difficultés de choisir le bon algorithme pour la détection des segments, prière de m'aider merci

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    il faut detecter les "croisements", les "inflexions" et les "extremités" des lignes du squelette.

    Pour cela, on peut analyser les 8 voisins de chaque pixel du squelette et compter le nombre de transitions 0->1 (voir la fonction transitions() dans ma contrib)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -------
    |a|b|c|
    -------
    |h|X|d|  voisins de X (sens horaire): a,b,x,d,e,f,g,h
    ------- 
    |g|f|e| 
    -------
    - si le nombre de transitions est 1, alors on est a une extremité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -------
    |0|1|0|
    -------
    |0|X|0|  voisins (sens horaire): 0,1,0,0,0,0,0,0
    -------                            ^
    |0|0|0|  1 transition
    -------

    - si le nombre de transitions est >=3, alors on est a un croisement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -------
    |0|1|0|
    -------
    |0|X|1|  voisins (sens horaire): 0,1,0,1,0,0,1,0
    -------                            ^   ^     ^
    |1|0|0|  3 transitions
    -------
    - si le nombre de transitions est 2, alors on est au milieu d'une continuité. il faut alors regarder la position des pixels de transition pour connaitre l'angle d'inflexion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -------
    |1|0|0|
    -------
    |0|X|0|  voisins (sens horaire): 1,0,0,0,0,1,0,0
    -------                          ^         ^
    |0|1|0|  2 transitions
    -------
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    détection de segments => Transformée de HOUGH !!!!
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Citation Envoyé par ToTo13
    détection de segments => Transformée de HOUGH !!!!
    Pas forcément : une image de caractère n'est pas constituée que de segments de droites. Il peut être plus simple de détecter les jonctions comme proposé ci-dessus (voir aussi l'article de Malandain et Ayache "Topological segmentation of surfaces"), puis d'étudier chaque segment, par exemple en le modelant par une spline.

Discussions similaires

  1. Calculer l'entropie d'une image
    Par ArthurC dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 03/05/2009, 19h53
  2. calcul de CRC pour une image png
    Par floopi51 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 15/01/2009, 08h35
  3. calcul de CRC pour une image png
    Par floopi51 dans le forum Débuter
    Réponses: 7
    Dernier message: 15/01/2009, 08h32
  4. Calculer la taille d'une image
    Par bigourson dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/09/2005, 11h22

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