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

Images Discussion :

Détection de cavités dans une image binaire


Sujet :

Images

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut Détection de cavités dans une image binaire
    Bonjour,

    Débutant en Matlab, je cherche à calculer le nombre de pixels présents dans les cavités Nord, Sud, Est, Ouest et Centrale d'une image binaire. (le but étant par la suite de reconnaitre des chiffres manuscrits).

    Un pixel donné est dans une cavité si au moins un pixel blanc est présent sur ses lignes / colonnes dans trois directions et aucun dans la quatrième direction. Par exemple, un 6 possède une cavité centrale et une cavité est.

    J'ai programmé cela avec des boucles while en regardant si je trouvais des 1 dans chacune des directions. Je souhaiterais optimiser cela.

    Connaissez vous une fonction Matlab qui réalise cela ? ( je n'en ai pas trouvé)

    J'ai lu quelque part que cette détection pouvait se faire en utilisant la dilatation dans chacune des directions et en utilisant des intersections d'images. Connaissez vous cette méthode et si oui, quel est son principe ???

    Merci !!!

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Tu pourrais montrer ton code ?

    Tu fais un WHILE dans les quatre directions jusqu'à trouver des 1 ?


    Basiquement, tu pourrais faire un FIND pour la ligne et la colonne du point considéré et tu regardes les indices non ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Points : 99
    Points
    99
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Un pixel donné est dans une cavité si au moins un pixel blanc est présent sur ses lignes / colonnes dans trois directions et aucun dans la quatrième direction.
    ok
    mais ca, je ne comprends pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Par exemple, un 6 possède une cavité centrale et une cavité est.
    ImagingAll

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Tout d abord merci pour vos reponses. J ai finalement trouve la solution et je la poste, cela pourra toujours servir à quelqu un.

    Voici une methode :

    1-> On fait une dilatation dans chacune des directions (vers le hauts, le bas, la gauche et la droite). La dilatation doit etre tres forte. Cette dilatation utilise un element structurant comportant un nombre de 1 de la taille de la largeur ou de la hauteur de l image (selon la direction) et le reste en 0. On obtient donc 4 nouvelles images ou on a "projette" la forme sur les bords de l image. Par exemple, on fait une dilatation tres forte a gauche. Seules la cavite est subsistera.

    2->On fait l intersection des images obtenues pour obtenir la cavite desiree. L intersection utilise l operateur &. Par exemple, pour obtenir la cavite est, on fera dilatationEst & dilatationNord & dilatationSud & ~dilatationOuest, l ordre n ayant pas d importance.

    3->En fait, on a pas la cavite mais la cavite + l image d origine (la forme elle meme). Il suffit donc de faire un & ~imageDOrigine pour l enlever

    Pour comprendre tout cela, le mieux est de visualiser les résultats intermédiaires.

    Encore merci pour vos reponses !!!

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/01/2011, 13h12
  2. Détection de rectangles dans une image de contours (image binaire)
    Par Chatbour dans le forum Traitement d'images
    Réponses: 9
    Dernier message: 09/06/2010, 16h06
  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