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 :

Détection de rectangles dans une image de contours (image binaire)


Sujet :

Traitement d'images

  1. #1
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut Détection de rectangles dans une image de contours (image binaire)
    Bonjour à tous et à toutes,


    je veux coder mon propre algorithme d'extraction de rectangles, dans le but de détecter des plaques d'immatriculation dans des images de contours.

    voici l'algorithme actuel. Vous allez constater que c'est très simpliste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Déplacement dans l'image avec une fenêtre
     
    à chaque pas de déplacement :
     
    	détecter le coté horizontal haut, s'il existe
     
    		détecter le coté vertical gauche, s'il existe
     
    			vérifier l'existence des autres cotés
     
    Fin du déplacement

    N.B : la détection des cotés se fait sur "plusieurs étages", c'est à dire sur une intervale de n=9 lignes, afin de détecter les rectangles légèrement inclinés, ou les plaques qui peuvent être altérées et causer des lignes pas totalement horizontales.
    il y a aussi des contraintes sur les dimensions des rectangles, c'est pourquoi vous n'allez pas voir tous les rectangles détectés.

    le résultat de l'algorithme est des rectangles détectés, mais le problème est que le même rectangle est détecté plusieurs fois (image 3).

    ce que je veux faire maintenant : détecter un rectangle une seule fois. En d'autres termes, prendre la détection la plus fidèle à l'image de contours.

    Avez vous des idées ? Merci d'avance.


    Cordialement,
    Chatbour.
    Images attachées Images attachées    

  2. #2
    Membre actif

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Points : 202
    Points
    202
    Par défaut
    essais la transformée hough cela permet de détecter des formes dans des contours. Elle est très courante pour les cercles et les droites, et elle se généralisera surement à la détection de rectangles.

  3. #3
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    merci bien pour la réponse

    mais en fait, j'ai choisi de me forger mon propre algorithme de détection de rectangles et pas en se basant sur la transformée de Hough..

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    ben tu as pris sur 9 lignes...


    Soit tu réduis, soit tu fais un algo de Bresenham, tu tiens compte des décalages verticaux/horizontaux (jointifs).
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    merci bien

    je vais voir du coté de l'algorithme de Bresenham..

  6. #6
    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,

    petite idée comme ça.
    Est ce que tu as essayé de détecter tout d'abord les angles (coins) des rectangles, puis de faire un appariement (avec une erreur de déplacement pour les rectangles ayant subit une rotation).
    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.

  7. #7
    Membre régulier Avatar de ludo86
    Homme Profil pro
    Développement applications iOS/android
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développement applications iOS/android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 79
    Points
    79
    Par défaut
    Salut,

    Je voulais savoir si il y avait une astuce pour avoir les coordonnées des coins d'une forme rectangulaire?

    Par exemple avec l'image ci-dessous j'aimerais avoir les coordonnées des coins pour ensuite exécuté un programme de suppression de perspective(que j'ai déjà)
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par ludo86 Voir le message
    Je voulais savoir si il y avait une astuce pour avoir les coordonnées des coins d'une forme rectangulaire?
    Le detecteur coin de FAST marche assez bien, si l'image n'est pas trop distordue.

    Pour chaque pixel, il faut regarder les pixels qui sont sur un cercle de rayon 3. Ca donne une suite de 16 pixels.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    +--+--+--+--+--+--+--+--+--+
    |  |  |  |  |  |  |  |  |  |
    +--+--+--+--+--+--+--+--+--+
    |  |  |  |16|01|02|  |  |  |
    +--+--+--+--+--+--+--+--+--+
    |  |  |15|  |  |  |03|  |  |
    +--+--+--+--+--+--+--+--+--+
    |  |14|  |  |  |  |  |04|  |
    +--+--+--+--+--+--+--+--+--+
    |  |13|  |  |C |  |  |05|  |
    +--+--+--+--+--+--+--+--+--+
    |  |12|  |  |  |  |  |06|  |
    +--+--+--+--+--+--+--+--+--+
    |  |  |11|  |  |  |07|  |  |
    +--+--+--+--+--+--+--+--+--+
    |  |  |  |10|09|08|  |  |  |
    +--+--+--+--+--+--+--+--+--+
    |  |  |  |  |  |  |  |  |  |
    S'il y en a 12 consécutifs plus clair/foncé (avec un seuil) que le pixel central, alors c'est un coin.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre régulier Avatar de ludo86
    Homme Profil pro
    Développement applications iOS/android
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développement applications iOS/android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 79
    Points
    79
    Par défaut
    Merci pseudocode, j'ai aussi utilisé ta solution pour les détections des lignes de Hough et ça marche plutôt bien sur ma plaque!

    Sais tu pourquoi 12? Est ce un nombre arrêté?

    En effet dans un autre article tu pointais on préconisait 9(http://en.wikipedia.org/wiki/Corner_detection). Est ce alors ton expérience qui te fait dire 12 plutôt que 9?

  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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par ludo86 Voir le message
    Merci pseudocode, j'ai aussi utilisé ta solution pour les détections des lignes de Hough et ça marche plutôt bien sur ma plaque!

    Sais tu pourquoi 12? Est ce un nombre arrêté?

    En effet dans un autre article tu pointais on préconisait 9(http://en.wikipedia.org/wiki/Corner_detection). Est ce alors ton expérience qui te fait dire 12 plutôt que 9?
    FAST dit qu'il en faut au moins 12 (=> il en reste - de 5, ce qui correspond a un coin de moins de 90°). Après on peut modifier cette valeur pour avoir des angles plus ouverts.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Détection de mouvement dans une sequence d'image
    Par soforan dans le forum Images
    Réponses: 3
    Dernier message: 25/01/2008, 17h58
  2. Détection des plans dans une image 3D
    Par paradize3 dans le forum Traitement d'images
    Réponses: 13
    Dernier message: 02/10/2007, 09h43
  3. Réponses: 7
    Dernier message: 01/05/2007, 21h55
  4. Détection de visages dans une image en niveaux de gris
    Par bert_ dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/04/2007, 18h04
  5. [D6] Algo de détection de zones dans une image
    Par DMO dans le forum Langage
    Réponses: 4
    Dernier message: 25/11/2005, 15h15

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