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 :

Déformation d'image : cartésien -> polaire


Sujet :

Images

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Déformation d'image : cartésien -> polaire
    Bonjour,

    suite à cette discussion http://www.developpez.net/forums/d52...esien-polaire/ , j'ai fais des jeux de paramètres de manière à obtenir la résolution idéale(ie le triangle au beau milieu).
    ben je n'arrive pas!!

    pourriez vous m'aider?

    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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Tu pourrais nous montrer un aperçu de ce que tu cherches à obtenir ?
    Quelle est la différence par rapport à l'autre discussion ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    le script que vous aviez proposé dans l'autre discussion donne un résultat différent de ce que je souhaite obtenir.
    je veux exactement ce résultat (l'image ci-joint).
    merci d'avance!
    Images attachées Images attachées  

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Je ne suis pas du tout un spécialiste mais voici une solution en traitant l'image par moitié.

    Avec le fichier mat donné dans l'autre discussion :
    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
    load Matrice
     
    %% Image complete
    Xfull = MatriceAmplitude_MOYENNE_complet;
     
     
    %% Première moitié
    X = Xfull(:,1:size(Xfull,2)/2);
     
    R = 100;
     
    [theta,r]=meshgrid(linspace(pi/8,0,size(X,2)),linspace(0,R,size(X,1)));
    x = r.*cos(theta);
    y = r.*sin(theta);
     
    [xi,yi] = meshgrid(sin(pi/8)*R:-1:0,0:1:R);
     
    Xi = griddata(x,y,X,yi,xi);
     
    %% Seconde moitié
    X = Xfull(:,size(Xfull,2)/2+1:end);
     
    R = 100;
     
    [theta,r]=meshgrid(linspace(0,pi/8,size(X,2)),linspace(0,R,size(X,1)));
    x = r.*cos(theta);
    y = r.*sin(theta);
     
    [xi,yi] = meshgrid(0:1:sin(pi/8)*R,0:1:R);
     
    Xii = griddata(x,y,X,yi,xi);
     
    %% Concaténation des deux moitiés
    XX = [Xi Xii];
     
     
    %% Affichage
    figure
     
    subplot(2,1,1)
    imagesc(Xfull);
     
    subplot(2,1,2)
    imagesc(XX);
    axis image
    ou avec un fichier JPEG (issu d'une capture d'écran dans l'autre discussion) :
    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
    54
    55
    56
    57
    %% Image complete
    Xfull = imread('test2.JPG','jpg');
     
    %% Première moitié
    X = Xfull(:,1:size(Xfull,2)/2,:);
     
    R = 100;
     
    [theta,r]=meshgrid(linspace(pi/8,0,size(X,2)),linspace(0,R,size(X,1)));
    x = r.*cos(theta);
    y = r.*sin(theta);
     
    [xi,yi] = meshgrid(sin(pi/8)*R:-1:0,0:1:R);
     
    Xi(:,:,1) = griddata(x,y,double(X(:,:,1)),yi,xi);
    Xi(:,:,2) = griddata(x,y,double(X(:,:,2)),yi,xi);
    Xi(:,:,3) = griddata(x,y,double(X(:,:,3)),yi,xi);
     
    %% Seconde moitié
    X = Xfull(:,size(Xfull,2)/2+1:end,:);
     
    R = 100;
     
    [theta,r]=meshgrid(linspace(0,pi/8,size(X,2)),linspace(0,R,size(X,1)));
    x = r.*cos(theta);
    y = r.*sin(theta);
     
    [xi,yi] = meshgrid(0:1:sin(pi/8)*R,0:1:R);
     
    Xii(:,:,1) = griddata(x,y,double(X(:,:,1)),yi,xi);
    Xii(:,:,2) = griddata(x,y,double(X(:,:,2)),yi,xi);
    Xii(:,:,3) = griddata(x,y,double(X(:,:,3)),yi,xi);
     
    %% Concaténation des moitiés
    XX(:,:,1) = [Xi(:,:,1) Xii(:,:,1)];
    XX(:,:,2) = [Xi(:,:,2) Xii(:,:,2)];
    XX(:,:,3) = [Xi(:,:,3) Xii(:,:,3)];
     
    %% Normalisation des valeurs
    XX(:,:,1) = XX(:,:,1) - min(min(XX(:,:,1)));
    XX(:,:,1) = XX(:,:,1)/max(max(XX(:,:,1)));
    XX(:,:,2) = XX(:,:,2) - min(min(XX(:,:,2)));
    XX(:,:,2) = XX(:,:,2)/max(max(XX(:,:,2)));
    XX(:,:,3) = XX(:,:,3) - min(min(XX(:,:,3)));
    XX(:,:,3) = XX(:,:,3)/max(max(XX(:,:,3)));
     
    %% Affichage
    figure
     
    subplot(2,1,1)
    imagesc(Xfull);
    axis image 
    drawnow
     
    subplot(2,1,2)
    imagesc(XX);
    axis image
    Voir les images attachées pour visualiser le résultat.
    Images attachées Images attachées   

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci beaucoup monsieur le responsable!!!!
    c'est exactement le résultat que je cherchais!!!!!
    merci une fois encore de plus !!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. représenter l'image en coordonnés polaire
    Par aminoste dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/07/2012, 14h44
  2. Algorithme déformation d'image
    Par ArkAng3 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 16/10/2010, 16h30
  3. algo de déformation d'images
    Par AP dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 10/03/2009, 20h00
  4. Déformation d'image : cartésien -> polaire
    Par jyjeanphi dans le forum Images
    Réponses: 11
    Dernier message: 09/04/2008, 16h18
  5. Outil graphique de déformation d'images
    Par SpaceFrog dans le forum Imagerie
    Réponses: 2
    Dernier message: 21/01/2007, 18h24

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