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 :

appliquer un filtre sur une image


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 58
    Points : 35
    Points
    35
    Par défaut appliquer un filtre sur une image
    Salut,

    J'ai une image de taille 400*400 et un filtre de taille 3*3 je veux appliquer le filtre de lissage avec un voisinage de taille 3*3 sur ma matrice image a l'aide d'un progrmme ,sans utiliser la commande conv2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    moy=[1/9 1/9 1/9;1/9 1/9 1/9; 1/9 1/9 1/9]; matrice du filtre
     x=2:400
     y=2:400
     w=3
     for k=x-((w-1)/2):x+((w-1)/2)
         for l=y-((w-1)/2):y+((w-1)/2)
             is(x,y)=(im2(k,l).*moy(1:3,1:3))/9
     
     
         end
     end
    il m'affiche
    ??? Subscripted assignment dimension mismatch.

    Error in ==> tp3essai at 14
    is(x,y)=(im2(k,l).*moy(1:3,1:3))/9
    j'ai pas su comment enlever l'erreur .

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    A priori le problème vient du fait que tu veux stocker une matrice 3x3 (moy(1:3,1:3)) dans une variable scalaire (is(x,y)).

    Une solution peut être d'utiliser un tableau de cellules mais ca va surtout dépendre de ce que tu en fais après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    is{x,y}=(im2(k,l).*moy(1:3,1:3))/9
    Duf

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    @ wahidred : il y a beaucoup d'erreurs dans ton code...

    Je pars du principe que tu veux appliquer un filtre moyenneur...
    La première étape, c'est de parcourir tous les pixels de ton image, le ait que x et y soient des vecteurs est très étonnant, et je ne comprends pas ce que tu as voulus faire... De plus tu fais un filtre ou tu divises chaque composante par 9 et tu redivises par 9 après application de ton filtre et tu ne fais pas la somme...

    Un exemple simple si c'est bien un filtre moyenneur que tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    moy=[1/9 1/9 1/9;1/9 1/9 1/9; 1/9 1/9 1/9];
    for x=2:size(im2,1)-1
        for y=2:size(im2,2)-1
            is(x,y) = sum(sum(im2(x-1:x+1,y-1:y+1).*moy));
        end
    end

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 58
    Points : 35
    Points
    35
    Par défaut
    salut 1000000000000000000000000000000000000000 fois merci

Discussions similaires

  1. appliquer le hachage sur une image
    Par parnasse dans le forum Débuter
    Réponses: 1
    Dernier message: 08/10/2013, 20h07
  2. Réponses: 6
    Dernier message: 30/04/2012, 11h25
  3. Appliquer un filtre sur une colonne d'un DataGrid
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 24/05/2011, 13h42
  4. Réponses: 4
    Dernier message: 04/02/2008, 19h09

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