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 :

Méthode pour transformer une image numérique en image niveau de gris [Débutant]


Sujet :

Images

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut Méthode pour transformer une image numérique en image niveau de gris
    Bonjour,

    Je suis encore débutant en Matlab et je veux créer une méthode ou bien une fonction qui permet de transformer une image couleur en une image niveau de gris et voici le programme que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     function []=tran()
    clear all;
    close;
    I=imread('house.jpg');
    figure(1),imshow(I);
    I=double(I)/255.0;
    [m,n]=size(I);
    for i=1:m
        for j=1:n
        A[i,j]=(1/3)*(I[:,:,1]+I[:,:,2]+I[:,:,3]) ;   
        end 
    end
    figure(2),imshow(A);
    et voila ce qui m'a donné durant l'exécution:

    ??? Error: File: tran.m Line: 10 Column: 6
    Unbalanced or unexpected parenthesis or bracket.
    donc ou est le problème?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    L'accès aux éléments des tableaux / matrices se fait avec des parenthèses () et non crochets []:
    Ensuite il y a un problème dans ta boucle:
    Soit tu fais avec la boucle comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i=1:m
        for j=1:n
            A(i,j)=(1/3)*(I(i,j,1)+I(i,j,2)+I(i,j,3)) ;   
        end 
    end
    Soit sans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = (1/3)*(I(:,:,1)+I(:,:,2)+I(:,:,3));

  3. #3
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Merci pour votre réponse,j'ai appliqué votre code il s'éxecute,mais voici quelques erreurs qui me donne:

    ??? Attempted to access I(1,257,1); index out of bounds because size(I)=[256,256,3].

    Error in ==> tran at 10
    A(i,j)=(1/3)*(I(i,j,1)+I(i,j,2)+I(i,j,3)) ;
    en plus il m'affiche seulement l'image couleur et il m'affiche pas l'image en niveau de gris!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui c'est normal, tu fais:

    Or c'est une image rgb, il y a donc 3 dimensions
    n est donc égal ici à 256*3 au lieu de 256

  5. #5
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Merci beaucoup le problème est résolu.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/11/2013, 17h35
  2. [Débutant] Transformer une matrice 3D en image 3D
    Par Akramou dans le forum Images
    Réponses: 2
    Dernier message: 09/03/2012, 11h50
  3. Comment transformer une page Word en image ?
    Par bigbernie dans le forum Word
    Réponses: 1
    Dernier message: 05/09/2010, 19h09
  4. transformer une page word en image
    Par surftoon dans le forum Word
    Réponses: 5
    Dernier message: 03/09/2007, 22h32
  5. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 10h35

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