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

ImageJ Java Discussion :

Algorithme Unsharp Mask


Sujet :

ImageJ Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Algorithme Unsharp Mask
    Bonjour,

    Je suis actuellement étudiant du DUT Métier du Multimédia et de l'Internet et je dois faire un exposé sur le filtre d'ImageJ Unsharp Mask (renforcement sur Photoshop). Je ne comprends pas comment il fonctionne. Jai trouvé cette algorithme qui ne m'aide pas forcement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void sharpenFloat(FloatProcessor fp, double sigma, float weight) {
            if (gb == null) gb = new GaussianBlur();
            gb.blurGaussian(fp, sigma, sigma, 0.01);
            if (Thread.currentThread().isInterrupted()) return;
            float[] pixels = (float[])fp.getPixels();
            float[] snapshotPixels = (float[])fp.getSnapshotPixels();
            int width = fp.getWidth();
            Rectangle roi = fp.getRoi();
            for (int y=roi.y; y<roi.y+roi.height; y++)
                for (int x=roi.x, p=width*y+x; x<roi.x+roi.width; x++,p++)
                    pixels[p] = (snapshotPixels[p] - weight*pixels[p])/(1f - weight);
        }

    Quelqu'un peut m'expliquer ?

    Merci d'avance !

    Jean

  2. #2
    Membre habitué Avatar de Tchoukatroc
    Homme Profil pro
    Soupière
    Inscrit en
    Mai 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Soupière
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonjour,

    Je peut t'expliquer le code de la fonction sharpenFloat. Cette fonction s'applique sur une image de type FloatProcessor appelée ici fp. Cette fonction demande un paramètre sigma et un paramètre weight. Les lignes 2 et 3 applique un flou gaussien (GaussianBlur) sur ton image fp en utilisant le paramètre sigma. La ligne 5 crée un tableau (une liste de type 4, 69, 65, ...) avec les valeurs de chaque pixels de ton image floutée. La ligne 6 crée un tableau avec les valeurs de chaque pixels de ton image de départ (non floutée). Les lignes 9, 10 forment une boucle permettant d'appliquer la formule ( pixels[p] = (snapshotPixels[p] - weight*pixels[p])/(1f - weight); ) sur chaque pixel contenu dans la région selectionnée sur ton image (ROI = Region of interest). La formule qui est appliquée sur chacun de tes pixels (pixels[p] = (snapshotPixels[p] - weight*pixels[p])/(1f - weight) "traduite" donne :

    "nouvelle valeur du pixel" = ("valeur du pixel au départ (avant floutage)" - weight * "valeur du pixel flouté"/(1 - weight))

    Par contre, je ne sais pas à quoi correspond weight, il me faudrait la documentation de la fonction. Je peux regarder si tu m'envoies le lien.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Wahou ! J'avoue que la tu m'as bien aidé ! En effet, il manque plus que le weight et ce sera parfait

    Voici la doc imageJ : http://imagej.nih.gov/ij/developer/source/index.html
    En cherchant Unsharp mask tu trouveras le code source que j'ai voulu comprendre. Il est bien plus complet mais comprends une bonne partie qui ne m'aide pas à la compréhension de ce filtre..
    Voilà, en espérant que ça va t'aider à m'expliquer le fameux Weight !

    Merci encore, tu me sauves la vie !

    Jean

  4. #4
    Membre habitué Avatar de Tchoukatroc
    Homme Profil pro
    Soupière
    Inscrit en
    Mai 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Soupière
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonjour JeanMMi,

    Lorsque tu lances la fonction dans imageJ, le logiciel te demande de rentrer le paramètre Weight. Weight est un indice qui doit être supérieur à 0 et inférieur à 1. Il est défini par défaut à 0,6. Cet indice permet de moduler la "force" du filtre, plus il sera élevé, plus l'effet du filtre sera important. Voilà aussi une phrase explicative de la doc de la fonction. "Mask Weight" determines the strength of filtering, where "Mask Weight"=1 * would be an infinite weight of the high-pass filtered image that is added.

    J'espère que ça va t'aider,

    Bonne journée

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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