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 :

Images en niveaux de gris


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut Images en niveaux de gris
    Bonjour à tous,

    Je ne fais que rarement du traitement d'images et je rencontre un problème. Je souhaite faire un script afin qu'il me prenne toutes les images, les rogne et les enregistre. J'ai réussi cette partie, mais mon problème est qu'il me sauve les images en niveaux de gris alors qu'elles étaient en couleur à la base. Comment rendre les couleurs d'origine à mes images?

    Merci beaucoup pour votre aide. Voici le code que j'utilise :

    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
     
    close all
    clear all
    clc
     
    %% Load images
     
    rep = 'C:\GM\';
    ext = '*.png';
     
    chemin = fullfile(rep,ext);
     
    list = dir(chemin);
     
    if ~exist(strcat(rep, 'Cropped'),'dir')
      mkdir(strcat(rep, 'Cropped'));
    end
     
    for n = 1:numel(list)
        img = imread(fullfile(rep, list(n).name), ext(3:end));
        nb = size(img);
        x0 = floor(229/1279*nb(2));
        y0 = floor(6/773*nb(1));
        width = ceil(502/1279*nb(2));
        height = ceil(674/773*nb(1));
        img_cropped = imcrop(img,[x0 y0 width height]);
        a = strcat(rep,'Cropped\', list(n).name);
        imwrite(img_cropped, a,'png');
    end

  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 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 163
    Points
    53 163
    Par défaut
    Que renvoi ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imfinfo(fullfile(rep, list(1).name), ext(3:end))
    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)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Merci pour ton aide. Voici ce que renvoie la commande. Je vois que le ColorType est en grayscale, mais je ne comprends pas pourquoi. Toutes mes images sont en couleur quand je les ouvre. Les images ont été enregistrées sur Abaqus avec la case cochée de réduire à 256 couleurs. Mais apparemment le problème ne vient pas de là car je viens d'essayer sans et cela m'affiche également une image en niveaux de gris. Merci beaucoup en tout cas.

    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
    >> imfinfo(fullfile(rep, list(1).name), ext(3:end))
     
    ans = 
     
                      Filename: [1x101 char]
                   FileModDate: '04-Mar-2014 16:19:27'
                      FileSize: 128
                        Format: 'png'
                 FormatVersion: []
                         Width: 150
                        Height: 203
                      BitDepth: 8
                     ColorType: 'grayscale'
               FormatSignature: [137 80 78 71 13 10 26 10]
                      Colormap: []
                     Histogram: []
                 InterlaceType: 'none'
                  Transparency: 'none'
        SimpleTransparencyData: []
               BackgroundColor: []
               RenderingIntent: []
                Chromaticities: []
                         Gamma: []
                   XResolution: []
                   YResolution: []
                ResolutionUnit: []
                       XOffset: []
                       YOffset: []
                    OffsetUnit: []
               SignificantBits: []
                  ImageModTime: '4 Mar 2014 15:19:27 +0000'
                         Title: []
                        Author: []
                   Description: []
                     Copyright: []
                  CreationTime: []
                      Software: []
                    Disclaimer: []
                       Warning: []
                        Source: []
                       Comment: []
                     OtherText: []

  4. #4
    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 163
    Points
    53 163
    Par défaut
    Je n'ai jamais utilisé Abaqus. Quelles sont exactement les options d'enregistrement en PNG disponibles ?

    "Réduire à 256 couleurs" permet de passer généralement d'une image RGB (de dimension MxNx3) à une image en couleur indexées (de dimension MxN) dont la valeur des pixels est codée sur 8 bits. Cela permet de réduire considérablement la taille des fichiers. Plus d'informations dans ce tutoriel : Gestion des couleurs sous MATLAB

    Pourrais-tu nous faire parvenir une de ces images (ou une capture quelconque prise dans les même conditions) enregistrée à partir d'Abaqus ?
    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)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Il n'y a pas d'autres options que de réduire à 256 couleurs. Voici une image type. Merci beaucoup
    Images attachées Images attachées  

  6. #6
    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 163
    Points
    53 163
    Par défaut
    C'est bizarre, avec Windows et Mac, imfinfo me renvoi ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Colormap: [253x3 double]
    Ce qui fait que les couleurs sont simplement récupérées avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [I,map] = imread('temp_st100.png','png');
    L'image s'affiche donc avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    figure
    colormap(map)
    image(I)
    axis image
    Voir "Couleurs indexées" dans le tutoriel précédemment cité.
    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)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Hello, merci pour ton aide. Par contre ça ne fonctionne pas. Peut-être ai-je mal implémenté, je remets le code au cas où. En fait, quand je lance le code, cette fois cela m'ouvre une figure mais toute blanche. Par contre les images sauvées sont en niveaux de gris...

    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
     
    rep = 'C:\GM\';
    ext = '*.png';
     
    chemin = fullfile(rep,ext);
     
    list = dir(chemin);
     
    if ~exist(strcat(rep, 'Cropped'),'dir')
      mkdir(strcat(rep, 'Cropped'));
    end
     
    for n = 1:numel(list)
        [img, map] = imread(fullfile(rep, list(n).name), ext(3:end));
        colormap(map);
        image(img);
        nb = size(img);
        x0 = floor(229/1279*nb(2));
        y0 = floor(6/773*nb(1));
        width = ceil(502/1279*nb(2));
        height = ceil(674/773*nb(1));
        img_cropped = imcrop(img,[x0 y0 width height]);
        a = strcat(rep,'Cropped\', list(n).name);
        imwrite(img_cropped, a,'png');
    end
     
    [img2, map2] = imread(fullfile(rep, list(1).name));
    colormap(map2)
    x0_scale = floor(22/1279*nb(2));
    y0_scale = floor(12/773*nb(1));
    width_scale = ceil(183/1279*nb(2));
    height_scale = ceil(416/773*nb(1));
    scale = imcrop(img,[x0_scale y0_scale width_scale height_scale]);
    % imwrite(scale,strcat(rep, 'scale.jpg'),'jpg','Quality',100);
    imwrite(scale,strcat(rep, 'Cropped\', 'scale.png'),'png');

  8. #8
    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 163
    Points
    53 163
    Par défaut
    Il faut spécifier la palette de couleurs avec imwrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imwrite(img_cropped, map, a, 'png');
    Sinon, prend l'habitude d'utiliser fullfile plutôt que strcat
    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)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Merci pour ces conseils.

    Je rencontre juste un problème. Il ne reconnait pas la map. Il me met l'erreur ci-dessous. En fait, le problème est que le "map" est vide (d'où l'erreur...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error using imwrite (line 422)
    Input argument parsing failed: Invalid colormap
     
    Error in Image_Crop (line 34)
        imwrite(img_cropped, map, a, 'png');

  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 163
    Points
    53 163
    Par défaut
    Tu utilises bien la même image que celle que tu nous a fournie précédemment (à savoir temp_ST100.png).
    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
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Oui. Je n'ai pas changé. Merci pour ton aide!

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/03/2015, 14h57
  2. Image de niveaux de gris vers couleur
    Par tapouni dans le forum Images
    Réponses: 1
    Dernier message: 13/05/2008, 13h40
  3. Contour en couleurs sur image en niveaux de gris
    Par vincent33 dans le forum Images
    Réponses: 4
    Dernier message: 11/09/2007, 10h19
  4. Images en niveaux de gris
    Par nadine24 dans le forum Images
    Réponses: 2
    Dernier message: 13/08/2007, 15h16
  5. Détection de visages dans une image en niveaux de gris
    Par bert_ dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/04/2007, 18h04

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