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

Traitement d'images Discussion :

Superposition de deux images avec codage différent


Sujet :

Traitement d'images

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut Superposition de deux images avec codage différent
    Bonjour ,

    Je voudrais superposer deux images pour les comparer. Le problème est que l'une des images est codée en "int16" et l'autre en "int32" donc évidemment, lorsque je fais la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    imsup=zeros(height_temp,width_temp,NbSlices_temp);
    for i=1:height_temp
        for j=1:width_temp
            for k=1:NbSlices_temp
        im_sup(i,j,k)=im_temp(i,j,k)+im2(i,j,k);
            end
        end
    end
    je me fais insultée par Matlab...

    J'ai essayé les deux solutions
    Tout d'abord, j'ai converti l'image im2 en 32bits (en utilisant la fonction int32) mais les valeurs des pixels sont alors trop faibles par rapport a ceux de l'image im_temp. Donc la somme des deux images donnent l'image im_temp
    J'ai ensuite converti l'image im_temp en 16 bits (en utilisant la fonction int16) mais les valeurs des pixels sont alors toutes égales à 2^15..

    Est-ce que qqn aurait une solution pour m'aider???
    merci!!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Tout d'abord une remarque : le format int16 représente des nombres compris entre -2^15 et 2^15-1 et le format int32 représente des nombres compris entre -2^31 et 2^31-1. Voila pourquoi si tes int32 sont tous supérieurs à 2^15-1, la conversion en int16 les convertit à 2^15-1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> int16(int32(32768))
     
    ans =
     
      32767
    int16 et int32 change le format de tes données, toi tu veux changer le format et les valeurs, regarde cette fonction :
    Une autre remarque : pourquoi veux-tu faire la somme de tes images pour les comparer? Quel est le but?
    Car ta prochaine problématique sera certainement le dépassement à cause de ces additions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> int16(16700)+int16(26700)
     
    ans =
     
      32767
    par exemple
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut
    Merci pour ta réponse Magelan.
    Je vais mieux expliquer ce que je fais. En fait je dispose d'images acquise par IRM d'une part, et d'un template déjà recalé sur un atlas d'autre part. Ce que je veux faire est de recaler les images acquises de l'IRM sur les images du template. Pour cela j'ai d'abord fait une normalisation en utilisant le logiciel SPM; Maintenant je veux vérifier la qualité de la normalisation. C'est pourquoi je veux faire la superposition des images (ou la difference) pour voir les differences restantes et donc voir si je dois améliorer le recalage fait avec SPM.
    Depuis tout à l'heure j'ai trouvé une "pseudo solution" à mon problème. J'ai converti les images acquises en 32 bits et j'ai changé la dynamique en multipliant les valeurs de chaque pixel par (2^31)/(2^15). AInsi les valeurs des deux images sont comparables mais le contraste différe encore trop pour pouvoir vraiment faire des comparaisons

Discussions similaires

  1. superposition de deux images avec transparence
    Par ol9245 dans le forum MATLAB
    Réponses: 3
    Dernier message: 27/10/2014, 10h45
  2. Superposition deux images avec deux colormap différentes
    Par defender19 dans le forum Images
    Réponses: 13
    Dernier message: 07/07/2014, 10h43
  3. Recalage de deux images avec les transformees de Fourier
    Par Programmeur_Aladdin dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 22/01/2008, 16h30
  4. "Merger" deux images avec une couleur de transparence
    Par MaelstroeM dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/09/2007, 09h34
  5. Soustraction de deux images de tailles différentes
    Par biquet dans le forum Images
    Réponses: 3
    Dernier message: 26/01/2007, 16h21

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