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 :

Enregistrer une image en niveau de gris avec matrice à valeurs négatives


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut Enregistrer une image en niveau de gris avec matrice à valeurs négatives
    Bonjour,

    Est-il possible d'enregistrer une matrice, dont certaines valeurs sont négatives, en une image en niveau de gris ?

    Pour visualiser une telle matrice en niveau de gris, c'est simple, j'utilise la fonction
    mais si je veux enregistrer cette matrice, la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imWrite(matrice,'chemin_de_sauvegarde.png','png');
    l'enregistre comme une image binaire !! (noir et blanc)

    Qqun a-t-il une idée svp ?

    Merci.

  2. #2
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Salut!

    Non il n'est pas possible.

    De ce que je sais une image avec des niveaux multiples de gris contient une matrice qui comprends des valeurs dans l'interval [0 255].

    Donc une image a une matrice associe et tu as dis que tu veux que ta matrice associe a une image avec des niveaux de gris contient tes valeurs negatifs de ta matrice intiale que tu as definis.

    Ca c'est n'est pas possible parce que les valeurs d'une matrice associe a une image avec des niveaux des gris ont les valeurs comprises entre 0 et 255 comme j'ai dis.

    Et les valeurs d'une image binaire peuvent etre seulement 0 ou 1 comme le terme dit.

    Bonne chance,

    Michel

  3. #3
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Que peut donc bien représenter ta "matrice" avec des valeurs négatives ?

    Sinon la Comment convertir une image RGB en niveaux de gris ?

    Mais ce ne sera pas suffisant dans ton cas
    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Que peut donc bien représenter ta "matrice" avec des valeurs négatives ?
    1) Je charge une image RGB de dimension MxN.
    2) Je décompose cette image en une matrice de dimension [M*N , 3]

    où la premiere colonne contient les valeurs de la composante R
    où la deuxième colonne contient les valeurs de la composante G
    où la troisième colonne contient les valeurs de la composante B

    3) Mon but est de réduire cette image couleur (3 dimensions) en une image en niveau de gris (1 dimension) et pour cela j'utilise la fonction 'princomp' de MATLAB. Cette fonction permet de faire une analyse en composante principale (PCA en anglais).

    Et le résultat d'une PCA donne une matrice de dimension [MxN , 1] (un vecteur en fait) et dont certaines valeurs sont négatives !

    Voilà l'explication...

  5. #5
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par fcjunic Voir le message
    Mon but est de réduire cette image couleur (3 dimensions) en une image en niveau de gris (1 dimension)
    As-tu essayé les solutions données dans la FAQ ou tiens-tu absolument à utiliser PRINCOMP ?
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    As-tu essayé les solutions données dans la FAQ ou tiens-tu absolument à utiliser PRINCOMP ?
    Je dois absolument utiliser PRINCOMP...
    Ce qui est bizarre c'est que matlab arrive a afficher une image à valeurs négatives. C'est juste quand je veux l'enregistrer via IMWRITE que le problème survient...

  7. #7
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Les valeur de ton images elles sont bornées entre quoi et quoi. val inf et val max ?
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Les bornes ne sont pas définies a l'avance et varient selon l'image...

  9. #9
    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
    Tu peux toujours normaliser les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    X = rand(5)-.5;
     
    X = X-min(X(:));
    X = X/max(X(:));
    Et appliquer un facteur d'échelle pour les ramener au format de codage classique des images.

    Par exemple en uint8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    X = uint8(X*255);
     
    imwrite(X,'test.bmp','bmp');
    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
     
    X =
     
        0.3687   -0.0686   -0.3639    0.3530   -0.4240
       -0.4156    0.4106    0.3693    0.1221   -0.2601
       -0.1002   -0.3182    0.0797   -0.1490   -0.3767
       -0.2401   -0.2362    0.0499    0.0132   -0.3161
        0.3001   -0.3545   -0.3550   -0.0982   -0.2600
     
     
    X =
     
       242   109    18   237     0
         3   255   242   167    50
        99    32   154    84    14
        56    57   145   134    33
       221    21    21   100    50
    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)

Discussions similaires

  1. normaliser une image au niveau de gris (pgm,dcm,.)
    Par ganigani dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 19/05/2011, 19h57
  2. Conversion d'une image en niveau de gris
    Par bouki' dans le forum Débuter
    Réponses: 2
    Dernier message: 06/10/2010, 19h39
  3. Réponses: 1
    Dernier message: 08/03/2007, 15h39
  4. Réponses: 1
    Dernier message: 30/11/2005, 17h12
  5. Réponses: 8
    Dernier message: 17/04/2005, 19h58

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