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 :

Optimisation d'un filtrage vertical


Sujet :

Traitement d'images

  1. #1
    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 Optimisation d'un filtrage vertical
    Bonjour à tous et toutes !

    J'ai un filtre à appliquer à une image.
    Celle-ci est stockée sous la forme d'un tableau unidimensionnel (je code en C, mais c'est un problème d'algo, je pense).

    Afin d'appliquer mon filtre, qui est évidemment composé d'un filtre horizontal et d'un filtre vertical, je parcours mon tableau (deux fois...).
    Pour le cas du filtre horizontal, j'ai deux boucles imbriquées, très classique, mais pas pénalisant car les accès mémoire sont efficaces (tableau aligné et données qui se suivent).

    Par contre, le cas vertical est beauoup plus coûteux, car je parcours ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (j=0 ; j < height ; j++)
    {
      for (i=0 ; i < w ; i++)
      {
        tab[j*w+i] = ... //filtrage de l'image
      }
    }
    Pour résumer, on fait des accès avec des saut mémoire à chaque tour !
    Evidement, je n'ai pas ecrit directement j*w+i, mais c'est léidée générale.

    Ma question:
    Existe-t-il un algorithme (et pas un code, j'insiste) qui parcours de manière optimale une image pour la filtrer ? Par exemple avec un parcours unique, au lieu de deux ?

    Merci d'avance !
    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

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 219
    Points : 226
    Points
    226
    Par défaut
    Le parcours que tu montres est un parcours ligne par ligne, pas vertical.

    Il n'y a rien à améliorer la dedans.


    Par contre, parcourir 2 fois ton image pour faire un filtre vertical et horizontal n'est peut-être pas nécessaire. Tu ne peux peux pas tout faire dans la même boucle?

  3. #3
    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
    Effectivement, je me suis planté de boucle...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (i=0 ; j < w ; i++)
    {
      for (j=0 ; j < h ; j++)
      {
        tab[j*w+i] = ... //filtrage de l'image
      }
    }
    Mettre les deux dans la même boucle suppose être capable de faire une boucle unique et non deux boucles imbriquées, je suppose ?
    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

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 219
    Points : 226
    Points
    226
    Par défaut
    Ok je comprend mieux.
    À priori tu peux faire les 2 filtrages dans une double boucle.

    Dis nous ce que tu veux faire exactement, ce sera peut-être plus simple.

Discussions similaires

  1. Problème d'optimisation: Filtrage par critère
    Par boyzonman dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2013, 10h46
  2. Optimiser un filtrage multiple sur des listes.
    Par PauseKawa dans le forum Général Python
    Réponses: 31
    Dernier message: 16/09/2009, 16h22
  3. [POO] Optimisation de code pour défilement vertical de div
    Par nicolas2603 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/04/2009, 14h37
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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