Real time pixel position in a GUI
Mostrar comentarios más antiguos
I have a series of images which change as a function of time (i.e. a 3D matrix, two spatial, one time). I would like to display one time frame of the image inside a GUI and then display the intensity of a pixel as a function of time on a second axis. Right now, I am using the ginput function so I have to click on individual pixels and the graph updates after each click.
Is it possible to update the cursor position in real time so that, instead of having to click many times, the graph will update as I move the cursor over the image? There is a partial solution to this posted (see "Can Matlab determine cursor position continuously?") but I'm not sure how to implement it inside a GUI.
- Mark
Respuestas (3)
Image Analyst
el 15 de Feb. de 2013
1 voto
Yes. Call the impixelinfo() function. With a 2D color or gray scale image displayed, running the mouse over the image will show the coordinates and RGB values or gray levels of the pixel under the cursor.
Mark Wagshul
el 15 de Feb. de 2013
0 votos
1 comentario
Image Analyst
el 15 de Feb. de 2013
Please move this to a comment on my Answer.
Walter Roberson
el 15 de Feb. de 2013
get(0, 'CurrentPoint')
inside a WindowButtonMotionFcn callback
3 comentarios
Image Analyst
el 15 de Feb. de 2013
Then extract a column through your time series and plot it:
intensityAtThisLocation = image3D(y, x, :);
axes(handles.axesPlot);
plot(intensityAtThisLocation, 'r-', 'LineWidth', 3);
grid on;
title('Intensity as function of time', 'FontSize', 25);
KAE
el 9 de Jun. de 2017
Where do x and y come from in your first line?
Image Analyst
el 10 de Jun. de 2017
It's your choice. Perhaps you got them from regionprops identifying the centroid of some blob. Perhaps you called ginput(). How do you want to specify your coordinate?
Categorías
Más información sobre Images en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!