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 :

comment detecter une bordure dans une image??


Sujet :

Traitement d'images

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Points : 141
    Points
    141
    Par défaut comment detecter une bordure dans une image??
    bonjour,

    Mon objectif est de décoder une datamatrix (http://www.gomaro.ch/datamatrix.htm). Je rentre donc dans mon programme une photo d'une datamatrix. Pour le moment j'ai juste appliqué un algorithme de seuillage donc mon image n'est plus qu'en noir en blanc.

    Maintenant je dois attaquer les points suivants (pas forcemment dans cet ordre, c'est là ou j'ai besoin d'aide):
    • correction des distortions dûes à l'optique
    • corrections des "déformations": si le plan de la photo n'est pas parrallèle à celui de la datamatrix (notre datamatrix ne sera donc pas carrée)
    • Détecter la datamatrix
    • appliquer un algo de reconnaissance

    A propos de reconnaissance de forme vers quoi dois-je me tourner, sachant que l'intérieur de la Datamatrix (DM) est différent à chaque fois, je dois donc détecter uniquement la bordure, qui est quand même assez caractéristique.

    J'ai vu entre autres différentes techniques, constituer un réseaux de neurones, utiliser les transformée de Hough... ou peut-être quelque chose de plus simple

    Quelle technique utiliser et dans quel ordre??

    sachant que mon programme doit être rapide d'execution


    Merci pour votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    Je n'ai pas bien compris sur quoi porte ta question... Il s'agit de détecter le cadre du DM (les barres de déclenchement)?

    Pour ça tu peux envisager d'utiliser une transformation de Hough, qui te permet d'extraire des segments de l'image... si j'ai bien compris il n'y aura que les 2 bords qui soient réellement des segments dans l'image, donc Hough peut donner des bons résultats.

    Par contre ce n'est pas particulierement un algorithme léger et rapide...
    comme tu vas travailler sur des images en noir et blanc, peut etre que tu peux te contenter d'un simple seuillage, et ensuite parcourir l'image jusqu'à ce que tu trouve la zone avec des pixels noirs... tu dois pouvoir en extraire le cadre.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Points : 141
    Points
    141
    Par défaut
    Bon je vais préciser ma question, j'aimerais connaitre la technique de reconnaissance d'image la plus simple et surtout la plus légère en ressources à utiliser.

    Pour le moment j'ai une DM cachée dans une image et je souhaiterais obtenir le tableau correspondant a cette DM, genre:
    101010
    1xxxx1
    1xxxx0
    1xxxx1
    1xxxx0
    111111

    avec xx les données qui sont codées dedans.

    Par contre ce n'est pas particulierement un algorithme léger et rapide...
    Sur une image 640 par 480 , l'algo de Hough met a peu pres combien de temps pour detecter les bordures??

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par gronaze
    Sur une image 640 par 480 , l'algo de Hough met a peu pres combien de temps pour detecter les bordures??
    Je dois avouer que je n'ai jamais utilisé Hough pour les droites, je n'ai utilisé qu'une version que j'avais programmé moi meme, assez mal, pour d'autres formes. Donc c'est un peu normal si chez moi ça prenait du temps à executer.
    donc je ne peux pas vraiment te donner de temps précis... j'imagine que bien programmé et pour des droites, le temps doit etre de l'ordre d'une seconde ou quelque chose comme ça, mais je ne suis pas sur, peut etre que quelqu'un peut répondre plus précisement...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Points : 141
    Points
    141
    Par défaut
    Pour exemple voici une DM obtenue apres seuillage


    si ça marche
    Images attachées Images attachées  

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    pour ce genre d'image , je pense qu'il faut commencer par appliquer une methode d'extraction des contours ( Canny marche bien en général).
    Ensuite tu peux appliquer la transformation de Hough pour trouver les droites, je pense que ça sera une des méthodes les plus efficaces pour ce genre d'image.
    apres une fois que tu as les droites, tu dois reconstruire la matrice, mais ça doit pas etre trop dur.

  7. #7
    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 : 45
    Localisation : Etats-Unis

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

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

    ta DM est encadré à gauche et en bas par une ligne droite noire. Le plus simple (ça vient d'être dit) est sans doute de faire une transformée de Hough pour les localiser.
    Ensuite, une fois que tu as ta zone de recherche, tu la divise par les dimensions de la DM (nombre de carré dans la DM). Je te conseille un petit filtre médiant pour le bruit, puis un filtre contrastant ou carément binaire pour bien voir les deux couleurs sans embiguité.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Points : 141
    Points
    141
    Par défaut
    Ok merci pour ces éclaircissements je teste donc avec la transformée de Hough, je regarde ce que ça me donne et peut être que je me rajouterais les filtres médiant et contrastant... la priorité du programme est d'être rapide d'execution.

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut extraction de la datamatrix
    Salut à vous tous,
    je vous remerci pour vos éclaircissements.
    En fait, j ai ai le même souci de la matrice cachée, et je veux l'extraire.
    j ai appliqué canny puis hough, j ai les droites, mais j'arrive pas à extraire la matrice cachée.
    Merci d avance pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2015, 17h52
  2. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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