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 :

extraire un code DATAMATRIX d'une image


Sujet :

Traitement d'images

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut extraire un code DATAMATRIX d'une image
    bonjour tt le monde
    j'ai une image qui contient un code DATAMATRIX, je dois parcourir l'image et en extraire le code, mais je ne sais pas par ou commencer. si vous pouvez m'aider??? Merci d'avance

  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
    Je ne suis pas sûr de comprendre...
    Ton image est un code datamatrix, et tu dois le décoder ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut
    mon image contient le code datamatrix, donc je dois d'abord le détecter, l'extraire et puis le décoder. voila un exemple
    Images attachées Images attachées  

  4. #4
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    C'est tout de suite plus clair avec une image .
    As-tu déjà des idées pour extraire le code ? as-tu fais des essais ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut salut
    salut progfou,
    je travail sur un sujet d'extraction de datamatrix et j ai le même problème que s.abdou
    J 'ai appliqué un filtre de canny sur l'image, et puis j ai appliqué hough. J ai trouvé les lignes mais j arrive toujours pas à parcourir mon image et extraire juste la zone de datamatrix ayant la forme suivante:

    101010
    1xxxx1
    1xxxx0
    1xxxx1
    1xxxx0
    111111


    X étant le contenu de la datamatrix, l'objectif est de trouver le contour L et n'extraire que la datamatrix (avec son contenu)

  6. #6
    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
    Citation Envoyé par sestem Voir le message
    J 'ai appliqué un filtre de canny sur l'image, et puis j ai appliqué hough. J ai trouvé les lignes mais j arrive toujours pas à parcourir mon image et extraire juste la zone de datamatrix ayant la forme suivante
    Tu as trouvé les 2 lignes qui forment l'angle bas-gauche de la DATAMATRIX ?

    ou

    Tu as trouvé les 4 lignes qui forment la boite englobante de la DATAMATRIX ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut
    moi aussi on m'a conseiller d'utiliser le filtre canny
    et voila le résultat(image jointe).mais le problème c'est que je dois extraire que le code datamatrix pour pouvoir le décoder après.
    Images attachées Images attachées  

  8. #8
    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
    Voila les 2 lignes principales obtenues par une transformée de Hough (en utilisant la norme et l'angle du gradient):



    Cela nous donne l'angle bas/gauche du cadre de la DataMatrix.

    En se déplaçant le long de chaque ligne, on peut trouver les angles haut/gauche et bas/droite

    Le 4ème angle haut/droit se trouve par une simple addition de vecteurs 2D.

    Nom : houghdatamatrix.png
Affichages : 1036
Taille : 90,1 Ko
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    merci pseudocode
    c'est bien le résultat que je cherche.j'ai appliqué la transformé de hough ci-joint,
    mais j'obtient pas le meme résultat; si vous pouvez m'envoyer le code de hough que vous avez utilisé.
    Fichiers attachés Fichiers attachés

  10. #10
    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
    Citation Envoyé par sestem Voir le message
    merci pseudocode
    c'est bien le résultat que je cherche.j'ai appliqué la transformé de hough ci-joint,
    mais j'obtient pas le meme résultat; si vous pouvez m'envoyer le code de hough que vous avez utilisé.
    Désolé je ne fais pas de Matlab.

    D'après votre code, je pense que vous faites une transformée de hough standard => pour chaque pixel, incrémenter les accumulateurs pour tous les couples (theta,rho), avec theta variant entre 0 et 2PI

    Ici il faut utiliser le fait que la ligne cherchée est continue, et donc limiter l'incrémentation a un seul couple (theta,rho)

    - calculer le gradient local 2D pour un pixel G = (gx,gy)
    - calculer la norme du gradient : norme = racine(gx²+gy²)
    - calculer la direction du gradient: theta = Arctan(gy/gx)
    - calculer la valeur de rho = x*cos(theta) + y*sin(theta)
    - ajouter "norme" dans l'accumulateur du couple (theta,rho)

    Ensuite cherchez les 2 accumulateurs avec les plus grandes valeurs, ce qui nous donne les deux couples (theta,rho) qui modélisent les deux droites
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    merci pseudocode, je vais essayer de rajouter des bouts de codes et je te tien au courant de mon résultat.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut
    merci pseudocode, tu nous as beaucoup aider.
    Pour l'instant jarrive à tracer les deux lignes qui forment le ''L'', mais je ne sais pas comment faire pour avoir les autres angles: gauche/haut; bas/droit; haut/droit.

  13. #13
    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
    Citation Envoyé par s.abdou Voir le message
    merci pseudocode, tu nous as beaucoup aider.
    Pour l'instant jarrive à tracer les deux lignes qui forment le ''L'', mais je ne sais pas comment faire pour avoir les autres angles: gauche/haut; bas/droit; haut/droit.
    comme je l'ai dit, tu peux te déplacer le long de chaque ligne. Chaque ligne peut etre modélisée sous forme d'un point d'origine O et d'un vecteur directeur D.

    Dans notre cas:
    O = le croisement des 2 lignes
    D = vecteur (cos(theta),sin(theta))

    Pour déplacer un point P le long de la demi-droite, on peut utiliser l'equation parametrique:

    P(t) = O + t*D, avec t un réel positif

    On cherche donc la plus petite valeur de "t" telle que P(t) soit hors de la DataMatrix, c'est à dire que la couleur du pixel correspondant ne soit plus noir. En pratique, on ne prend pas juste une seul pixel mais une moyenne (ou median, ou max) du voisinnage.

    Une fois qu'on a fait cela pour chaque demi-droite, on obtient les deux angles haut/gauche et bas/droite. Le dernier angle doit fermer le parallélogramme => addition de vecteurs.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. comment trouver le code hexadécimale d'une image
    Par argon dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 17/01/2008, 11h49
  2. [ImageMagick] Problème dans le code pour redimensionner une image
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/06/2007, 14h06
  3. Code source d'une image
    Par picsoun dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/07/2006, 02h02
  4. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10
  5. Récuperation du code binaire d'une image dans une chaîne
    Par Nomely dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 27/01/2006, 19h01

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