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

  1. #1
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 6 414
    Points : 16 153
    Points
    16 153

    Par défaut Rechercher une ligne vide

    Bonjour à tous,

    je cherche à trouver la première ligne vide (ligne blanche) sur un tableau de pixel (en partant du bas). Pour cela je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		me positioner sur le dernier ordonné
    		tant que je suis pas arrivé en haut de l'image et que je n'ai pas trouvé faire
    			me positioner sur le premier abscice
    			tant qu'il reste des abscices sur la ligne et que je n'ai pas trouvé non blanc faire
    				recuperer la couleur du point (x,y)
    				me positioner sur l'abscice suivant
    			fin tant que
    			si j'ai trouvé une ligne completement blanche (vide) alors
    				je fais mon traitement et j'ai trouvé quelque chose (pour sortir du premier tant que
    			fin si
    			je décrémente les ordonnées
    		fin tant que
    Ca marche, mais c'est assez lent.

    Je ne m'y connais pas en traitement d'image, mais y aurait-il un algo plus rapide ? une solution plus apropriée ? (comme par exemple, faire une projection de l'image sur un axe, comme ca j'aurai une seule ligne à analyser, ou autres fonctions magiques de traitement d'images)

    Merci pour vos conseils

    Nico

  2. #2
    Membre éclairé

    Inscrit en
    juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : juin 2004
    Messages : 1 397
    Points : 763
    Points
    763

    Par défaut

    Je pense, comme ça, immédiatement, à une détection de contours sur l'image déjà.
    Chercher la première ligne (horizontale à priori ?) blanche, ça va se faire très vite...
    Quel type d'image ?
    As-tu un exemple ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 6 414
    Points : 16 153
    Points
    16 153

    Par défaut

    par exemple un truc tout bète du genre


    je parcours par le bas, jusqu'à trouver le Y représenté par la ligne rouge

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    juillet 2005
    Messages
    9 809
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2005
    Messages : 9 809
    Points : 21 333
    Points
    21 333

    Par défaut

    Je ne vois pas comment faire plus simple que ce que tu as, tu fais peu de calculs tout de même.

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 6 414
    Points : 16 153
    Points
    16 153

    Par défaut

    Comme je fais plusieurs analyses à la fois, ca prend des ressources CPU pendant 3-4 secondes...

    Donc, j'aurai voulu essayer d'optimiser. Mais je suis d'accord que pour l'instant, j'ai fait du mieux que je pouvais

    Je pensais peut-etre à une autre méthode, avec des transformations de fourrier de fou (où j'y connais rien)

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2004
    Messages : 277
    Points : 226
    Points
    226

    Par défaut

    3-4 secondes ? Tu programmes en quoi ? En Basic du MO5 ?

  7. #7
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : avril 2004
    Messages : 440
    Points : 455
    Points
    455

    Par défaut

    Citation Envoyé par nico-pyright(c)
    Je pensais peut-etre à une autre méthode, avec des transformations de fourrier de fou (où j'y connais rien)
    Non tu n'obtiendras rien avec ça ! Fourier, c'est pour du spectral, donc du fréquentiel (comme par exemple le lissage, réduction du bruit...). C'est global cad que ça s'applique à toute l'image !

    Tu peux peut-être améliorer de la façon suivante, en considérant que ta ligne est continue donc qu'une ordonnée à l'autre l'abscisse du point noir varie peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    - A l'ordonnée 0, repérer l'abscisse point qui est noir
    - à l'ordonnée supérieure, chercher un point noir autour de l'abscisse du point précédent (ex : 3 pixels en arrière et 3 en avant). S'il n'y a pas de point noir, inspecter toute la ligne.
      + S'il y a un point noir, passer à l'ordonnée supérieure
      + S'il n'y a rien, s'arrêter, car c'est la première ligne blanche !!
    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 6 414
    Points : 16 153
    Points
    16 153

    Par défaut

    Merci pour les réponses et les idées
    A première vue, je vais rester tel quel

    A+
    Nico

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

Discussions similaires

  1. [XL-2003] Recherche d'une ligne vide
    Par oliva55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2011, 15h12
  2. Réponses: 2
    Dernier message: 20/07/2006, 20h40
  3. [VBA-E] Inserer une ligne vide dans Excel
    Par monsurf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2006, 17h48
  4. [VBA-E] rechercher une ligne pour remplacer?
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/12/2005, 11h31
  5. TValueListEditor: Ajout automatique d'une ligne vide
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2005, 13h16

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