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

Scilab Discussion :

Affichage d'une matrice en Noir et Blanc


Sujet :

Scilab

  1. #1
    Nouveau Candidat au Club
    Affichage d'une matrice en Noir et Blanc
    Bonjour à tous

    Je suis nouveau et me voila avec un problème

    je tape

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    A=[1 0 1 ; 0 1 0 ; 1 0 1 ]
     
    Matplot(A)


    Et là j'ai un carré noir ce qui est exact puisque la valeur 0 attribue celle du voisin ici 1 donc la couleur du noire

    Pour être sur j'ai tapé

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    B=[1 3 1 ; 3 1 3 ; 1 3 1 ];
     
    Matplot(B)


    et la j'obtiens bien le résultat sauf que je n'ai pas le blanc mais le vert

    Pour l'instant je cherche mais quelqu'un aurait une idée pour faire apparaitre le blanc sans changer la matrice

    Merci par avance

  2. #2
    Rédacteur/Modérateur

    Comme ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    B = [1 3 1 ; 3 1 3 ; 1 3 1 ];
    cmap = [0 0 0 ; 1 0 0 ; 1 1 1]
     
    Matplot(B)
    f = gcf();
    f.color_map = cmap


    Si tu veux savoir pourquoi Scilab affichait du vert, tu peux étudier la palette de couleur utilisée par défaut :
    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
    --> f = figure();
     
    --> f.color_map()
     ans  =
     
       0.          0.          0.       
       0.          0.          1.       
       0.          1.          0.       
       0.          1.          1.       
       1.          0.          0.       
       1.          0.          1.       
       1.          1.          0.       
       1.          1.          1.       
       0.          0.          0.5647059
       0.          0.          0.6901961
       0.          0.          0.8156863
       0.5294118   0.8078431   1.       
       0.          0.5647059   0.       
       0.          0.6901961   0.       
       0.          0.8156863   0.       
       0.          0.5647059   0.5647059
       0.          0.6901961   0.6901961
       0.          0.8156863   0.8156863
       0.5647059   0.          0.       
       0.6901961   0.          0.       
       0.8156863   0.          0.       
       0.5647059   0.          0.5647059
       0.6901961   0.          0.6901961
       0.8156863   0.          0.8156863
       0.5019608   0.1882353   0.       
       0.627451    0.2509804   0.       
       0.7529412   0.3764706   0.       
       1.          0.5019608   0.5019608
       1.          0.627451    0.627451 
       1.          0.7529412   0.7529412
       1.          0.8784314   0.8784314
       1.          0.8431373   0.       
       0.8         0.8         0.8


    Tu peux constater que les valeurs RGB de la troisième ligne sont bien [0 1 0]
    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  3. #3
    Nouveau Candidat au Club
    Avant tout Merci beaucoup
    Je commence à comprendre la fonction cmap

    Je me suis dit "associe le bon code RGB"



    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    clear
    clc
     
    A =[1 0 1 ; 0 1 0 ; 1 0 1 ];
    cmap = [1 1 1 ; 1 1 1 ; 1 1 1];
     
    Matplot(A)
    f = gcf();
    f.color_map = cmap;


    Et là patatras, c'est le complément



    j'ai retrouvé un fonction whitecolormap qui fait la même chose

    j'ai rechangé le code

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    clear
    clc
     
    A =[1 0 1 ; 0 1 0 ; 1 0 1 ];
    cmap = [0 0 0 ; 0 0 0 ; 0 0 0];
     
    Matplot(A)
    f = gcf();
    f.color_map = cmap;



    mais rien y fait , je bloque sur le fait que la valeur 0 a pour instruction de recopier la couleur voisine?

  4. #4
    Rédacteur/Modérateur

    C'est simplement que l'indice 0 n'existe pas dans la palette de couleurs. Scilab utilise donc le noir.

    Tu peux contourner le problème en faisant :

    Mes compétences :
    • conception mécanique 3D (Autodesk Fusion 360)
    • développement informatique (MATLAB, Python, C, VBA)
    • impression 3D (Ultimaker)
    • programmation de microcontrôleur (Microchip PIC et 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)

  5. #5
    Nouveau Candidat au Club
    Merci Beaucoup pour la réactivité

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    clear
    clc
     
    A =[1 0 1 ; 0 1 0 ; 1 0 1 ];
    cmap = [1 1 1 ; 255 0 255 ; 255 1 1];
     
    Matplot(A+1)
    f = gcf();
    f.color_map = cmap;


    Le résultat :


    J'ai bricolé ce code
    j'avoue les puristes vont se tirer les cheveux

    En tout cas merci beaucoup

###raw>template_hook.ano_emploi###