Bonjour,
J'essaye, depuis hier, de modifier l'affichage dans une certaine figure afin que l'utilisateur puisse non seulement choisir un pixel sur ladite image mais qu'il ait en même temps accès à la valeur du pixel correspondant.
J'utilise pour le moment des figures pour l'affichage de l'image. Je ne peux pas me contenter d'utiliser imtool pour l'affichage de la valeur du pixel car je dois d'abord faire un calcul sur cette valeur.
Pour le moment, les datacursor c'est pas trop mon truc mais j'ai tenté quelques petites choses :
voila le script pour le test que je suis en train de réaliser.
uiwait n'est là que pour voir si l'affichage de la position des pixels fonctionne correctement. Ce qu'on remarque : la fenêtre affiche les positions du pixel choisit quand l'utilisateur clique sur ce pixel ! or j'aurai besoin que l'affichage se fasse dès que la souris passe sur l'image sans que l'utilisateur ne clique sur 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 close all; clear all; I = imread('cameraman.tif'); figure(); imshow(I); dcm_obj = datacursormode(gcf); set(dcm_obj,'UpdateFcn',@mafonction,... 'DisplayStyle','window',... 'Enable','on'); uiwait; p = ginput(1); display(p);
Sans uiwait : on ne voit rien le programme passe à ginput.
Je change la propriété 'UpdateFcn' avec la fonction suivante :
Quelques difficultés donc pour combiner datacursormode qui permet à l'utilisateur de vérifier le pixel en question et ginput pour sélectionner ce pixel... l'étape suivante sera donc de récupérer la valeur du pixel sur l'image correspondante....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function [ output_txt ] = mafonction(~, event_obj) %UNTITLED4 Summary of this function goes here % Detailed explanation goes here pos = get(event_obj,'Position'); num2str(pos(1:2),'(%d,%d)') output_txt = {['X: ',num2str(pos(1),4)],... ['Y: ',num2str(pos(2),4)]}; end
Toute aide sera appréciée ^^
Merci !
Partager