1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Changement des abscisses

    Bonjour,

    Je vais essayer d'expliquer clairement mon problème. J'ai une matrice A qui contient les valeurs des nuances de gris des pixels d'une image, qui est définie ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A=imread('nom.png');
    imagesc(A);
    colormap gray; axis image;
    Grace à un ruban gradué sur mon image, je peux déterminer la taille d'un pixel en centimètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taillepix=1/(xech(2)-xech(1));
    Ici, xech est un vecteur contenant 2 valeurs, xech(1) est la valeur du pixel positionné à "1 cm", xech(2) la valeur du pixel positionné à "2 cm".

    Mon image étant constitué de bandes noires et blanches verticales, je veux tracer une courbe représentant les variations de nuances de gris dans mon image sur une ligne perpendiculaire aux bandes. Jusqu'ici tout va bien. Mon problème est qu'en abscisse, j'ai actuellement les "numero" des pixels, alors que je voudrais qu'il y ait la valeur en centimètres correspondante.
    J'ai essayé quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abscisse=0:size(A,2)-1;
    abscisse=abscisse*taillepix;
    plot(abscisse,A(200,:));
    Et ça ne me renvoie pas la courbe souhaitée ... Je comprend bien pourquoi (en fait il me trace une courbe jusqu'au pixel 9 à peu près puisque la dernière valeur de mon vecteur abscisse est environ 9) mais du coup je ne sais pas comment me sortir de cette affaire ...

    Auriez vous des idées à me proposer, ou des fonctions à essayer ?
    Aussi, je précise que j'utilise matlab 2014 et que je crois qu'il ne connait pas la fonction xtick car quand je fais help xtick il ne trouve rien.

    Et inutile de préciser, je pense, que je suis débutante

    Merci d'avance,

    Bonne soirée
    Pauline

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    mai 2008
    Messages
    1 514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 1 514
    Points : 1 982
    Points
    1 982

    Par défaut

    Bonjour,

    ON peut ajouter l'échelle en cm en haut de l'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
    clear
    figure
    A=imread('****.jpg');
    %imagesc(A);
    imshow(A)
    colormap gray; 
    axis image;
    xech=[* *];
    taillepix=1/(xech(2)-xech(1));
    abscisse=0:size(A,2)-1;
    abscisse=abscisse*taillepix;
    ax1_pos = get(gca,'Position');
    ax2 = axes('Position',ax1_pos,...
        'XAxisLocation','top',...
        'YAxisLocation','right',...
        'Color','none');
    set(ax2,'Xlim',[0 abscisse(end)]);

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Bonsoir,

    Merci beaucoup de votre réponse. Malheureusement ce que vous me proposez ne fonctionne pas. De plus, étant débutante, je n'ai pas encore eu connaissance des fonctions get, gca, set ...
    Et en regardant l'aide de matlab je ne comprends pas vraiment ce qu'elles permettent de faire...

    Pourriez vous m'expliquer votre raisonnement, peut être que ça pourrait me mettre sur la voie pour essayer autre chose ?

    Merci d'avance,
    Pauline

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    mai 2008
    Messages
    1 514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 1 514
    Points : 1 982
    Points
    1 982

    Par défaut

    Bonjour,
    A quel niveau cela ne fonctionne pas ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2010, 16h50
  2. Réponses: 8
    Dernier message: 06/02/2009, 12h33
  3. Changement Des données entre deux bases
    Par Chakib dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2006, 10h59
  4. changement des couleurs par appuis sur case à cocher
    Par Wormus dans le forum JavaScript
    Réponses: 4
    Dernier message: 10/10/2005, 23h05
  5. Comment dééfinir les valeurs des abscisses en Time ?
    Par marsupilami34 dans le forum Langage
    Réponses: 1
    Dernier message: 29/09/2005, 15h50

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