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 :

Rechercher une ligne vide


Sujet :

Traitement d'images

  1. #1
    Rédacteur

    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é
    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

    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

    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

    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
    3-4 secondes ? Tu programmes en quoi ? En Basic du MO5 ?

  7. #7
    Membre confirmé
    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

###raw>template_hook.ano_emploi###