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 :

Assembler des matrices dans une matrice


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Points : 35
    Points
    35
    Par défaut Assembler des matrices dans une matrice
    Salut;
    je veux faire assembler plusieurs matrices de même dimension dans une seule matrice à l'aide d'un tableau de cellules.
    j'ai essayé de faire le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    I=imread('68JP.jpg');
    figure(1),imshow(I);
    I=imcrop; %sélectionner une portion de l'image
    I2=imresize(I,[60,60],'bilinear');    %minimiser la taille de l'image
    figure(3),imshow(I2);
    C=mat2cell(I2,[15,15,15,15],[15,15,15,15]);
     
    size(C);
    mat=zeros(15,15);
    result=cell(4);
     nbmat=16;
      n=1;m=1;
    for i=1:4
        for j=1:4
        s=cell2mat(C(i,j));
     
          moyen=mean(mean(s));
         s1=im2double(s);
         ecart=std(std(s1));
              seuil = moyen *(1 + (1/10)*( 1-( ecart / 128) ));
          for k=1:15
             for l=1:15
     
                 if(s(k,l)<=seuil)   %si le pixel inf ou egal à seuil il devient noir
     
                     mat(k,l)=0;
                 end
                 if(s(k,l)>seuil)  %si le pixel sup ou egal à seuil il devient blanc
                     mat(k,l)=255;
                 end
             end
     
          end
          %tant  que le nombre de matrice mat (à introduire dans chaque cellule) est supérieur ou = à 1, remplir chaque  cellule par la matrice mat convenable
          while nbmat>=1
     
            result{n,m}=mat;
            break;
          end
       nbmat=nbmat-1;
       m=m+1;
    if(nbmat==12)
        n=2;
        m=1;
    end
    if (nbmat==8)
        n=3;
        m=1;
    end
    if(nbmat==4)
        n=4;
        m=1;
    end
     
        end
    end
    disp(result);
    figure(8), imshow(result);
    j'ai obtenu les messages d'erreurs suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    ??? Error using ==> iptcheckinput
    Function IMAGEDISPLAYVALIDATEPARAMS expected its first input, I,
    to be one of these types:
     
      double, single, uint8, uint16, uint32, int8, int16, int32, logical
     
    Instead its type was cell.
     
    Error in ==> imageDisplayValidateParams at 12
    iptcheckinput(common_args.CData, {'numeric','logical'},...
     
    Error in ==> imageDisplayParseInputs at 79
    common_args = imageDisplayValidateParams(common_args);
     
    Error in ==> imshow at 199
      [common_args,specific_args] = ...
     
    Error in ==> sana1 at 67
    figure(8), imshow(result);
    Merci de m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 958
    Points
    52 958
    Par défaut
    C'est juste la dernière ligne de ton code qui pose problème... pourquoi cherches tu à afficher le tableau de cellules result avec la fonction IMSHOW ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    salut

    pense à utiliser une matrice à plusieurs dimensions.
    exemple: tu disposes de 3 matrices de meme dimesion
    a(m,n)
    b(m,n)
    c(m,n)
    tu veux les stocker ensemble dans une seule matrice à trois dimensions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    M(:,:,1)=a
    M(:,:,2)=b
    M(:,:,3)=c
    ça devrait marcher

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/07/2011, 15h45
  2. Supprimer des lignes dans une matrice
    Par Ptinéwik dans le forum MATLAB
    Réponses: 7
    Dernier message: 30/01/2008, 14h55
  3. Réponses: 3
    Dernier message: 13/09/2007, 19h26
  4. Réponses: 3
    Dernier message: 30/03/2007, 23h24
  5. Extraction des composantes des pixels dans une matrice
    Par hanane78 dans le forum Images
    Réponses: 7
    Dernier message: 11/03/2007, 23h12

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