Use ButtonDownFcn on an image
Show older comments
I have a (pixelated) image that has been created from an array of data using the function imagesc(). I would like to click on a pixel and be able to a)obtain the coordinates of the pixel in the figure window, and b)pass these values to a piece of code (to be created) which "finds" what the data values at those coordinates were, and displays the data values in a new figure window. Is such an extraction method, where I am not,say,clicking on a line or axis of a bar graph, possible using the ButtonDownFcn?
5 Comments
Adam
on 9 Jul 2018
If you add the ButtonDownFcn to your axes instead then you can use the
'CurrentPoint'
property of the axes to give you the location. To do this though you must set the
'HitTest'
property of your image to 'off', otherwise the image will pick up the mouse click instead of the axes.
J.S.
on 10 Jul 2018
J.S.
on 10 Jul 2018
Adam
on 11 Jul 2018
I would use functions rather than scripts, but scripts do at least allow nested functions now so you can create your callback as a function at the bottom of your script, to do whatever you want it to with the 'CurrentPoint'.
This function will be called every time you click on whatever you have attached it to, so if this is the axes (assuming you have turned the hittest of the image off) then each time you click the axes the function will trigger so no loops should be needed.
J.S.
on 11 Jul 2018
Answers (0)
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!