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 :

morphologie mathématique sur des ensembles complexe


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut morphologie mathématique sur des ensembles complexe
    Bonjour tout le monde,

    c'est ma première participation sur ce forum et gesper que mon problème sera résolu grace à vos participations.
    En effet, je travail sur le filtrage des images interférométrique par morphologie mathématique.
    J'ai donc la phase du signal, mais le principe de la méthode est de passer à l'exponentiel de la phase et essayer d'appliquer la morpho math
    Or la morpho math dans matlab opère sur des ensemble réels.


    Est-ce quelqu'un a une idée sur l'implémentation des opérations de base de morpho math sur des ensembles complexes sur matlab?

    Merci...

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Citation Envoyé par safsaf146 Voir le message


    Est-ce quelqu'un a une idée sur l'implémentation des opérations de base de morpho math sur des ensembles complexes sur matlab?

    Merci...
    Tu peux donner des details que signifie opérations de base de morpho math sur des ensembles complexes sur matlab?

    Amicalment,

    Michel

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Citation Envoyé par mihaispr Voir le message
    Tu peux donner des details que signifie opérations de base de morpho math sur des ensembles complexes sur matlab?

    Amicalment,

    Michel
    les opérations de base sont la dilatation et l'érosion.
    En effet, la morphologie mathématique dans matlab est appliqué sur les valeurs réels.
    Mais, elle est basé sur la définition d'une ralation d'ordre entre des ensembles. Donc elle peut être généralisé sur les valeurs complexes.

    Je ne sais pas si quelqu'un a une idée sur un travail qui réalise ça sur matlab car j'ai besoin de ce code source pour mon travail?

  4. #4
    Membre chevronné

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    A prioris, il n'y a pas de relation d'ordre definie sur les nombres complexes...

    Salutations,

    Greg

  5. #5
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Citation Envoyé par paradize3 Voir le message
    A prioris, il n'y a pas de relation d'ordre definie sur les nombres complexes...

    Salutations,

    Greg
    Paradize3 a raison. Il n'existe pas une relation sur les nombres complexes.

    Tu dois tester les 4 functions donnees sur une image de test (qui a une matrice associe;tu lis ton image avec imread et tu stoque la matrice de ton image de test dans une variable dans mon example c'est la variable imagine) donc tu dois tester imerode,imdilate,imclose et imopen.

    Bonne chance,

    Michel

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Citation Envoyé par mihaispr Voir le message
    Tu dois tester les 4 functions donnees sur une image de test (qui a une matrice associe;tu lis ton image avec imread et tu stoque la matrice de ton image de test dans une variable dans mon example c'est la variable imagine) donc tu dois tester imerode,imdilate,imclose et imopen.

    Bonne chance,

    Michel

    Bonjour, merci bcp pour vos réponses.
    oui j'ai testé ces fonctions sur l'image. Mais mon problème c'est que je n'utilise pas l'image elle même mais une transformé de l'image qui me donne des valeurs complexes?
    et je voudrais appliquer la morphologie mathématique sur cette transformé!

    Merci

  7. #7
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Pour l'erosion et la dilatation d'un image utilise la documentation des fonctions imerode et imdilate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>doc imerode
    >>doc imdilate
    Aussi tu peux avoir d'autres operations morphologiques comme 'opening an image' et 'closing an image'.

    Pour cela regarde la documentation de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>doc imclose
    >>doc imopen
    J'espere que ca t'aides pour ce que tu desires faire!

    Cela est un bon point de depart pour toi!

    Bonne chance,

    Michel

  8. #8
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Il faut nous donner des details pour qu'on puisse t'aider!

    Mais mon problème c'est que je n'utilise pas l'image elle même mais une transformé de l'image qui me donne des valeurs complexes?
    et je voudrais appliquer la morphologie mathématique sur cette transformé!
    Quelle transformation de l'image initiale as-tu applier? Liste le code , donne nous des informations on ne peut pas deviner quelle transformation tu as applie sur l'image de test.

    Liste l'image initielle donne nous des informations parce qu'on risque de ne t'aider plus


    Montre ton code!

    Et donne aussi des explications en detail!


    Sans cela on ne peut pas t'aider!


    Amicalment,

    Michel

  9. #9
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Si j'ai bien compris :

    Tu as une (matrice) image img, sur laquelle tu fait une transformation par endelette, ce qui te donne à priori une nouvelle matrice avec nombre complexe (c'est normal).

    Exemple :

    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
     
    >> i=ones(3,3);
    >> i(2,2)=2+3i
    i =
       1.0000             1.0000             1.0000          
       1.0000             2.0000 + 3.0000i   1.0000          
       1.0000             1.0000             1.0000          
    >> k=imerode(i, strel('disk',2));
    ??? Error using ==> iptcheckinput
    Function IMERODE expected its first input, IM, to be real.
    Error in ==> morphop>CheckInputImage at 322
    iptcheckinput(A, {'numeric' 'logical'}, {'real' 'nonsparse'}, ...
    Error in ==> morphop>ParseInputs at 167
    A = CheckInputImage(A, func_name);
    Error in ==> morphop at 14
    [A,se,pre_pad,...
    Error in ==> imerode at 123
    B = morphop(A,se,'erode',mfilename,varargin{:});

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    mon image est une image interférométrique simulé (image de différence de phase d'un signal radar).
    Je simulé une gaussienne 2D

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a=zeros(nlig,ncol);
    for i=1:nlig;
        for j=1:ncol;
            a(i,j)=h*exp(-((i-(nlig/2))^2+(j-(ncol/2))^2)/(2*sigma^2));
        end
    end
    ensuite et à partir de relation geométrique liant l'altitude à la différence de phase j'obtient l'image de différence de phase que j'enroule ensuite (je la rend entre [0 2pi]
    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
    for n=1:nlig
        for j=1:ncol
            Rj=R0+j*dR;
            Hreel=H-mnt(n,j);
            X=sqrt(Rj^2-H^2);
            Rorbital=sqrt(H^2+(X-B)^2);
            RA=sqrt(Hreel^2+X^2);
            RAprim=sqrt(Hreel^2+(X-B)^2);
            frange_orbitale(n,j)=((4*pi)*(Rj-Rorbital))/lamda;
            phyA(n,j)=((4*pi/lamda)*RA);
            phyAprim(n,j)=(((4*pi)/lamda)*RAprim);
            frangetopog_deroule(n,j)=phyA(n,j)-phyAprim(n,j)-frange_orbitale(n,j);
            a=frangetopog_deroule(n,j)/(2*pi);
            k(n,j)=floor(a);
            deltaphy(n,j)=frangetopog_deroule(n,j)-(2*k(n,j)*pi);
        end
    end
    je transforme ensuite le différence de phase telque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compl=exp(i.*(deltaphy-pi));
    parce que la valeur de la phase est ambigu et pour avoir un espace ou il n'y a pas de saut entre 2pi et 0 dans l'image.

    j'obtient donc une image à valeur complexe que je voudrait ensuite appliquer les op de morphologie mathématique (ouverture, fermeture, filtre alterné séquentiel...)
    mais dans matlab "imopen" "imclose" sont appliqués sur des images réelles??

    c'est ça mon problème

    amicalement

    safsaf

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Citation Envoyé par kmaniche Voir le message
    Si j'ai bien compris :

    Tu as une (matrice) image img, sur laquelle tu fait une transformation par endelette, ce qui te donne à priori une nouvelle matrice avec nombre complexe (c'est normal).

    Exemple :

    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
     
    >> i=ones(3,3);
    >> i(2,2)=2+3i
    i =
       1.0000             1.0000             1.0000          
       1.0000             2.0000 + 3.0000i   1.0000          
       1.0000             1.0000             1.0000          
    >> k=imerode(i, strel('disk',2));
    ??? Error using ==> iptcheckinput
    Function IMERODE expected its first input, IM, to be real.
    Error in ==> morphop>CheckInputImage at 322
    iptcheckinput(A, {'numeric' 'logical'}, {'real' 'nonsparse'}, ...
    Error in ==> morphop>ParseInputs at 167
    A = CheckInputImage(A, func_name);
    Error in ==> morphop at 14
    [A,se,pre_pad,...
    Error in ==> imerode at 123
    B = morphop(A,se,'erode',mfilename,varargin{:});

    oui mon problème ressemble à ça
    Function IMERODE expected its first input, IM, to be real.
    je nsais pa quelle est la solution dans ce cas.

    amicalement

  12. #12
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Function IMERODE expected its first input, IM, to be real.
    Ok.

    Tappes ca en command window pour voir quel type de variable est IM. Elle doit etre de type reel.

    Dis-moi quelle type de variable c'est IM avec tous les informations que t'affiche matlab en command window.

    Puis en fonction du type de la variable IM on utilisera une fonction de conversion.

    Si j'ai bien compris IM c'est la variable ou tu lis ton image.

    Mais en ce cas les valeurs associe a la matrice de ton image doivent etre reels c'est pour ca que tu as cette erreur.

    J'espere de ne me pas tromper.

  13. #13
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Il faut décomposer la matrice en deux : 01 pour la partie réel et la 2ème pour les valeurs complexes.

    L'érosion sera effectuer sur ces deux matrices. puis tu fais une concaténantion de ces deux matrices.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Citation Envoyé par kmaniche Voir le message
    Il faut décomposer la matrice en deux : 01 pour la partie réel et la 2ème pour les valeurs complexes.

    L'érosion sera effectuer sur ces deux matrices. puis tu fais une concaténantion de ces deux matrices.
    Oui c'est une bonne idée, je vais l'essayer

    Merci

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Citation Envoyé par mihaispr Voir le message
    Ok.

    Tappes ca en command window pour voir quel type de variable est IM. Elle doit etre de type reel.

    Dis-moi quelle type de variable c'est IM avec tous les informations que t'affiche matlab en command window.

    Puis en fonction du type de la variable IM on utilisera une fonction de conversion.

    Si j'ai bien compris IM c'est la variable ou tu lis ton image.


    voici ce que matlab m'affiche
    >> workspace=load('workspace.mat');
    >> deltaphy=workspace.deltaphy
    >> compl=exp(i.*(deltaphy-pi));
    >> se=strel('disk',2);
    >> im=imopen(compl,se)
    ??? Function IMOPEN expected its first input, I or BW, to be real.

    Error in ==> imopen>ParseInputs at 55
    iptcheckinput(A, {'numeric' 'logical'}, {'real' 'nonsparse'}, mfilename, ...

    Error in ==> imopen at 33
    [A,SE,pre_pack] = ParseInputs(varargin{:});
    en effet, workspace est un ensemble de variable ou j'ai mis l'image (deltaphy) parceque il faut du temps pour la simuler donc je l'ai stocké ds workspace et chaq fois je le load.
    c'est ce que matlab m'affiche

    Mais en ce cas les valeurs associe a la matrice de ton image doivent etre reels c'est pour ca que tu as cette erreur.

    J'espere de ne me pas tromper.
    oui cé ça

  16. #16
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Un petit example en command window:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >> A=[2+3i 3-i 5-7i; 9+i 5+i 2-i; 2-i 3-4i 4+i]  %matrice avec des valeurs complexes
    >>B=real(A) %premier matrice B contient des valeurs reels
    >>C=imag(A) %deuxieme matrice C contient des valeurs complexes
    >>cell1=mat2cell(B) %conversion matrice en cellule1
    >>cell2=mat2cell(C) %conversion matrice en cellule2
    >>strcat(cell1,cell2) %application fonction strcat pour la concatenation pour les variables cell1 et cell2

Discussions similaires

  1. [Batch] opération mathématique sur des variables
    Par nicnictout dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 10/11/2014, 16h59
  2. Recherche sur des ensembles
    Par krapo13 dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/02/2014, 15h52
  3. [SimpleXML] Opérations mathématiques sur des float
    Par CBresso dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 11/05/2012, 13h38
  4. Malik et Perona sur des images complexes ?
    Par rouliane dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 17/03/2008, 20h53
  5. [Débutant] ET et OU, contraintes sur des ensembles
    Par JakeGrafton dans le forum Prolog
    Réponses: 2
    Dernier message: 27/02/2007, 11h06

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