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 :

Récupérer les cordonnées de la souris par rapport non pas à la figure mais l'image


Sujet :

MATLAB

  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer les cordonnées de la souris par rapport non pas à la figure mais l'image
    Bonjour à tous,
    voila mon souci est le suivant:
    Je cherche a faire apparaitre les coordonnées de ma souris lorsque je me trouve sur une image.Mon problème et que pour le moment j'arrive à afficher uniquement les coordonnées de la souris par rapport à la figure dans laquelle se trouve mon image.
    Mon but serait d'avoir mes coordonnées qui démare de 0 à partir de l'image.
    Je pense que mon problème vient du fait que je récupère le currentpoint de la figure et non de l'image.
    Le programme est le suivant:
    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
    function reticule_matlab_coordonnees
    %% création de la fenêtre principal
    handles(1)=figure('Position', [0, 300, 600, 400],...  % Position de la fenêtre.
        'Name', 'Acquisition',...  % Nom de la fenêtre.
        'NumberTitle', 'off',...  % Non affichage 'figure X'.
        'Pointer','fullcross',... % Choix du réticule.
        'WindowButtonMotionFcn',@trace); %WindowButtonMotionFcn permet de récupérer la position de la souris.
     
    %afficheur x_souris
    handles(2)=uicontrol('style','text','position',[125 20 20 15]);
    %afficheur y_souris
    handles(3)=uicontrol('style','text','position',[100 20 20 15]);
     
    %% Ouverture et affichage de la photo.
    I = imread('noir_et_blanc.png');
    imshow(I);
    axesimg = gca;
     
    %% Création de la fenêtre pour afficher le tracer de X.
    figure('Position', [650, 550, 600, 400],...
        'Name', 'X trace (ligne)',...
        'NumberTitle', 'off');
    axesx = axes();
     
    %% Création de la fenêtre pour afficher le tracer de y.
    figure('Position', [650, 50, 600, 400],...
        'Name', 'Y trace (colonne)',...
        'NumberTitle', 'off');
    axesy = axes();
     
    x = zeros(size(I,2),1);
    y = zeros(size(I,1),1);
     
    px = plot(axesx,x); 
    py = plot(axesy,y);
     
        function trace(~,~)
            pt = ceil(get(axesimg,'CurrentPoint')); %Arrondi au positif sup axesming et position souris(CurrentPoint).
     
            % On mais a jour le tracer que si on ce trouve sur l'image
            if pt(1,1) >= 1 && pt(1,2) >= 1 && pt(1,1) <= size(I,2) && pt(1,2) <= size(I,1) 
                x = I(pt(1,2),:); % Extraction ligne des x pointée
                y = I(:,pt(1,1)); % Extraction colonne des y pointée
                set(px,'YData',x); % Mise à jour des paramètres graphique (point et axe)
                set(py,'YData',y); % Mise à jour les paramètres graphique (point et axe)
     
              %% Recuperation de la position de la souris et affichage
            P=get(handles(1),'CurrentPoint');
            x_souris=P(1);
            y_souris=P(2);
     
            set(handles(2),'string',x_souris); % mise a jour affichage
            set(handles(3),'string',y_souris);
     
            end     
        end
    end

  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 896
    Points
    52 896
    Par défaut
    La ligne suivante ne sert à rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P=get(handles(1),'CurrentPoint');
    Tu as déjà les coordonnées dans la variable pt

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci DUT ça marche nickel

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/10/2009, 14h10
  2. position curseur souris par rapport à ma JTable
    Par jdewalqu dans le forum Composants
    Réponses: 3
    Dernier message: 24/08/2006, 17h21
  3. Réponses: 2
    Dernier message: 05/06/2006, 17h51
  4. Position de la sourie par rapport à la page
    Par Cyrilh7 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 19h25
  5. Les possibilité que C++ offre par rapport à Pascal Objet
    Par Riko dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 01/02/2003, 21h38

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