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

MATLAB Discussion :

[Débutant]Programme marche sous Matlab 7.0 mais pas sous Matlab 6.5


Sujet :

MATLAB

  1. #1
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut [Débutant]Programme marche sous Matlab 7.0 mais pas sous Matlab 6.5
    Bonsoir, alors voila j'ai réussi à faire mon fameux programme (avec ses deux versions) et il marche tres bien sous Matlab 7.0 (R14) mais lorsque j'ai essayé d'exécuter ces 2 programmes sous Matlab 6.5 j'ai eu des erreurs et ça na pas marché mais il faut qu'il marche donc voici les programmes et les erreurs obtenues sous Matlab 6.5

    voici le premier programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [n,m,k]=size(X);
    switch k
     
    case 1
    Z=imadjust(X);
    subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
     
    case 3
    Z(:,:,1)=imadjust(X(:,:,1));
    Z(:,:,2)=imadjust(X(:,:,2));
    Z(:,:,3)=imadjust(X(:,:,3));
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
     
    end
    voici son erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ??? Error using ==> c:/matlab6p5/toolbox/images/images/private/checknargin
    Function imadjust expected at least 2 input arguments
    but was called instead with 1 input argument.
     
    Error in ==> C:\MATLAB6p5\toolbox\images\images\imadjust.m (ParseInputs)
    On line 107  ==> checknargin(2,4,nargin,mfilename);
     
    Error in ==> C:\MATLAB6p5\toolbox\images\images\imadjust.m
    On line 58  ==> [img,isGray,isRgb,low,high,bot,top,gamma] = ParseInputs(varargin{:});
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\etirement.m
    On line 19  ==> Z(:,:,1)=imadjust(X(:,:,1));
     
    ??? Error while evaluating uimenu Callback.
    voici le second programme :
    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
    clear c;
    clear Z;
     
    c=X; 
    i=1;j=1; 
    [n,m,k]=size(c)
    switch k
        case 1  
            Nmin=min(min(c)) 
            Nmax=max(max(c))
            Z=(c-Nmin)*(255/(Nmax-Nmin));
            subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
        case 3  
             for k=1:3  
                 Nmin(k)=min(min(X(:,:,k))); 
                 Nmax(k)=max(max(X(:,:,k)));
                 Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
             end
             subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    end
    et voici son erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Error using ==> -
    Function '-' is not defined for values of class 'uint8'.
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\my_etirement.m
    On line 21  ==>              Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
     
    ??? Error while evaluating uimenu Callback.
    et merci...
    Matlab 7.0 (R14) ...

  2. #2
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    salut,

    essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Z=imadjust(X,stretchlim(X));

    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
    clear c;
    clear Z;
    X=double(X);
    c=X; 
    i=1;j=1; 
    [n,m,k]=size(c)
    switch k
        case 1  
            Nmin=min(min(c)) 
            Nmax=max(max(c))
            Z=(c-Nmin)*(255/(Nmax-Nmin));
            subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
        case 3  
             for k=1:3  
                 Nmin(k)=min(min(X(:,:,k))); 
                 Nmax(k)=max(max(X(:,:,k)));
                 Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
             end
             subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    end
     
     
    Z=uint8(Z);
    X=uint8(X);
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  3. #3
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut
    salut rostomus, bon pour le premier code j'ai remplacé comme tu l'as demandé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Z=imadjust(X,stretchlim(X));
    ça a marchépour la partie 1 du code "merci"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case 1
    Z=imadjust(X);
    subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
    mais pour la deuxiemme partie non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    case 3
    Z(:,:,1)=imadjust(X(:,:,1));
    Z(:,:,2)=imadjust(X(:,:,2));
    Z(:,:,3)=imadjust(X(:,:,3));
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    mais alors pour le code 2,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Z=uint8(Z);
    X=uint8(X);
    n'a pas du tout marché
    Matlab 7.0 (R14) ...

  4. #4
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Pour le premier code, essaie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [n,m,k]=size(X);
    Z=imadjust(X,stretchlim(X));
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    je pense que tu n'as pas besoin des switch

    pour le probleme de uint8, je vois pas pourquoi ca marche pas

    mais, tu peux les enlever

    PS: lorsque un code ne marche pas, postes le message d'erreur pour qu'on puisse bien comprendre
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  5. #5
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut code 1 OK, code 2 bad...
    Bon rostomus voila pour le dernier code que tu m'as donné c'est à dire le code 1, ça marche nikel merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [n,m,k]=size(X);
    Z=imadjust(X,stretchlim(X));
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    maintenant pour le code 2 :
    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
    clear c;
    clear Z;
     
    c=X; 
    i=1;j=1; 
    [n,m,k]=size(c)
    switch k
        case 1  
            Nmin=min(min(c)) 
            Nmax=max(max(c))
            Z=(c-Nmin)*(255/(Nmax-Nmin));
            subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
        case 3  
             for k=1:3  
                 Nmin(k)=min(min(X(:,:,k))); 
                 Nmax(k)=max(max(X(:,:,k)));
                 Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
             end
             subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    end
     
    Z=uint8(Z);
    X=uint8(X);
    si je l'exécute avec une image monospectrale (noir et blanc) donc case 1 s'active, j'obtiens ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Error using ==> -
    Function '-' is not defined for values of class 'uint8'.
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\ttt.m
    On line 11  ==>         Z=(c-Nmin)*(255/(Nmax-Nmin));
     
    ??? Error while evaluating uimenu Callback.
    et si j'utilise une image multispectrale (couleur) donc K=3 et case 3 s'activent, j'ai ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ??? Error using ==> -
    Function '-' is not defined for values of class 'uint8'.
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\ttt.m
    On line 17  ==>              Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
     
    ??? Error while evaluating uimenu Callback.
    et désolé d'avoir tardé à repondre...
    Matlab 7.0 (R14) ...

  6. #6
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Voila:
    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
    clear c;
    clear Z;
    X=double(X);
    c=X; 
    i=1;j=1; 
    [n,m,k]=size(c)
    switch k
        case 1  
            Nmin=min(min(c)) 
            Nmax=max(max(c))
            Z=(c-Nmin)*(255/(Nmax-Nmin));
            subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
        case 3  
             for k=1:3  
                 Nmin(k)=min(min(X(:,:,k))); 
                 Nmax(k)=max(max(X(:,:,k)));
                 Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
             end
             subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    end
    
    
    Z=uint8(Z);
    X=uint8(X);
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  7. #7
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut aie
    alor pour l'image monospectral le résultat est une image trop claire limite blanche et pour l'image multispectral ça m'affiche un axe (x,y) même pas l'image ...

    l'erreur pour l'image monospectral:
    pas d'erreur mais le résultat n'est plus du tout le même que pour Matlab 7.0 alors que dans Matlab 7.0 j'obtiens une image moins sombre donc plus visible
    car c'est un étirement d'histogramme ici Matlab 6.5 j'ai obtenu une image a fort luminosité très blanche on voit rien c'est que du blanc

    l'erreur pour l'image multispectral
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ??? Error using ==> image
    TrueColor CData contains element out of range 0.0 <= value <= 1.0.
     
    Error in ==> C:\MATLAB6p5\toolbox\images\images\imshow.m
    On line 104  ==> hh = image(xdata, ydata, cdata, 'BusyAction', 'cancel', ...
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\ttt.m
    On line 19  ==>          subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
     
    ??? Error while evaluating uimenu Callback.
    Matlab 7.0 (R14) ...

  8. #8
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Salut,

    j'ai pas remarqué l'affichage dans le code
    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
    clear c;
    clear Z;
    X=double(X);
    c=X; 
    i=1;j=1; 
    [n,m,k]=size(c)
    switch k
        case 1  
            Nmin=min(min(c)) 
            Nmax=max(max(c))
            Z=(c-Nmin)*(255/(Nmax-Nmin));
     
        case 3  
             for k=1:3  
                 Nmin(k)=min(min(X(:,:,k))); 
                 Nmax(k)=max(max(X(:,:,k)));
                 Z(:,:,k)=(c(:,:,k)-Nmin(k))*(255/(Nmax(k)-Nmin(k)));
             end
     
    end
     
    Z=uint8(Z);
    X=uint8(X);
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
    alors?
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  9. #9
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut ca marche !!!
    bien le bon jour,
    alors la j'ai rien compris ca marche mais pourquoi? comment ça se pourrait , le fait de mettre l'affichage à l'interieur de case ou à l'extérieur c'est pas la même chose dans Matlab 6.5??? Etrange en tout cas bravo et merci , malheureusement j'ai essayé un autre de mes programmes que j'avais réalisé sur Matlab 7.0 et bien sur sous Matlab 6.5 j'obtiens une erreur mais une fois sur deux , étrange...
    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
     
    [n,m,k]=size(X);
    switch k
     
    %Egalisation d'histogramme sur une image monospéctral 
     
    case 1
    Z=histeq(X);
    subplot(122),imshow(Z),title('Image monospectral traitée');zoom on;
     
    %Egalisation d'histogramme sur une image multispéctral 
     
    case 3
    Z(:,:,1)=histeq(X(:,:,1));
    Z(:,:,2)=histeq(X(:,:,2));
    Z(:,:,3)=histeq(X(:,:,3));
    subplot(122),imshow(Z),title('Image multispectral traitée');zoom on;
     
    end
    bon bien sur ca marche pour l'image monospecrtal mais pas pour le multispectral et j'obtien cette erreure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ??? Subscripted assignment dimension mismatch.
     
    Error in ==> C:\MATLAB6p5\work\ze logiciel version 0.2\egalisation.m
    On line 18  ==> Z(:,:,1)=histeq(X(:,:,1));
     
    ??? Error while evaluating uimenu Callback.
    le truc c'est que j'obtiens cette erreur dès que je charge une image de format different mais si j'exécute le programme précèdent "que tu as resolu " j'arrive à exécuter ce dernier programme sans erreur mais c'est pas normal...
    et merci
    Matlab 7.0 (R14) ...

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par Alucard9800XT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ??? Subscripted assignment dimension mismatch.
    A lire : Indexage des matrices
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut rostomus et Dutmatlab , merci
    merci a vous deux , et dutmatlab j'ai compris ou etait mon erreur ce n'etait pas dans ce sous programme mais je dois modifier quelque chose dans le programme principal , j'ai decouvert cette erreur juste dans Matlab 6.5 , alors que je programme sur la version 7.0 qui je pense arrive a depasser ce probleme sans ambiguité, donc j'en termine avec cette discution mais j'en ouvre une nouvelle qui va me regler le probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ??? Subscripted assignment dimension mismatch.
    car j'ai mon idée
    en tout cas merci a vous , car ce sujet est résolu
    Matlab 7.0 (R14) ...

  12. #12
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut résolu
    c'est tout bête j'ai ajouter
    pour palier le probleme "dimension mismatch" , donc cette discution est résolu a 100%
    merci
    Matlab 7.0 (R14) ...

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

Discussions similaires

  1. Script fonctionne sous firefox et safari mais pas sous IE !
    Par philodido dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2009, 11h21
  2. position d'un DIV flottant : OK sous IE7 et FF mais pas sous IE6
    Par arnaud_verlaine dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/12/2007, 14h34
  3. Réponses: 2
    Dernier message: 09/10/2007, 11h31
  4. Lien fonctionnant sous opera et ff mais pas sous IE
    Par Halukard dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2007, 20h46
  5. opacity marche sous IE7 et firefox, mais pas sous IE6
    Par maxfive7 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/08/2007, 15h03

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