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étermination de l'intensité initiale d'une image


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut Détermination de l'intensité initiale d'une image
    bonjour, j'ai une image couleur,j'ai fait une transformation a une image en niveaux de gris par la fonction rgb2gray.

    j'ai trouvé des pixels qui m'interessent dans cette image . j'aimerais trouver l'intensité initiale de ces pixels dans l'image couleur initiale..

    je ne sais pas comment je dois faire.

    merci d'avance

  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 : 52 884
    Points
    52 884
    Par défaut
    Que veux-tu dire par "intensité initiale de ces pixels dans l'image couleur initiale" ?

    Veux-tu récupérer les trois composantes RGB ? Ou bien une autre valeur ?

    Pour deux images IMGRAY et IMRGB de même dimension, la valeur d'un pixel à la position (r,c) sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IMGRAY(r,c) % un scalaire
    IMRGB(r,c,:) % un vecteur RGB
    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
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    bonjour je n'ai pas bien précisé ma question,
    Voila mon code qui me donne 50 pixels extraits dans une image
    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
     
    %%%%%%%%%%%%%%%extraction des pixel joueurs dans un image segmentée%
     
    close all; clear all; clc;
    %seg =imread('joueurs.tif'); 
    seg =imread('seg01.tif'); 
     
    I = rgb2gray(seg) > 0 ;
    %imagesc (I); figure(gcf);
    Mask = I > 0 ; 
     
    L = bwlabel(Mask  ) ; 
    L_final = L .* 0 ; %%% L_final contient les pixels extraits
    for ns =1:max(L(:))
        L1 = L == ns ; % ns est le nombre de points actuel
        L1Idx = find (L1(:)) ; 
        for k =1: 50
            kr = fix(1+rand() * length(L1Idx)) ; 
            L1Idx(kr) = 0 ; 
        end
     
       % L1Idx(L1Idx == 0 ) = [] ; %% élimination des éléments null
     
        L1Idx(~ L1Idx)=[];
        L_final (L1Idx ) = ns ; 
    end
     
    Mask2 = L_final > 0  ;
    D = Mask == 1 & Mask2 == 0 ; % D est un mask
     
    %%% affichage des resultat :
    subplot(221) , imshow(seg) , title('image Original '); 
    subplot(222) , imshow(Mask) , title('BW Mask'); 
    subplot(223) , imshow(D) , title(' les Points extraitre'); 
     
     
     
    % on peut appliqué le mask D pour trouver la valeur des pixels extraits
    % si vous applique D a l'image originale tu peux trouver la valeur initiale de
    % pixel
     Drgb = seg ;
     Drgb=double(Drgb);
     Drgb(: , : , 1) = Drgb( : , : , 1 ) .* D ;
      Drgb(: , : , 2) = Drgb( : , : , 2 ) .* D ;
      Drgb(: , : , 3) = Drgb( : , : , 3 ) .* D ;
    %   %% Drgb est les pixels extrait de l'image couleur
     
     DrgbIdx = find (Drgb(:)) ; 
    %   
      subplot(224) , imshow(Drgb) , title('intensité initiale des pixels extraire'); 
    % 
    %   
    %
    pour chaque échantillon (ici 50 pixels) je dois calculer la moyenne dans chaque composante de l'image. C'est a dire la moyenne selonles 3 composantes RGB et aussi selon tous les systèmes de représentation d'image couleur par exemple (XYZ) et (Luv) (I1,I2,I3).....
    Si vous voulez tester ce code l'image seg01.tif

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/06/2015, 11h50
  2. déterminer l'orientation de droite sur une image
    Par emboss dans le forum Images
    Réponses: 2
    Dernier message: 10/06/2008, 18h54
  3. Déterminer les coordonnées d'une image
    Par blaise4714 dans le forum Images
    Réponses: 2
    Dernier message: 27/11/2006, 19h05
  4. Recuperer l'intensite d'un pixel dans une image
    Par Battosaiii dans le forum Langage
    Réponses: 6
    Dernier message: 03/07/2006, 04h44
  5. Déterminer automatiquement le path pour une image
    Par mikedavem dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2006, 08h41

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