Filter löschen
Filter löschen

Is there a possibility to recognize right clicks in image objects?

8 Ansichten (letzte 30 Tage)
Aaron Globisch
Aaron Globisch am 26 Nov. 2016
Kommentiert: Walter Roberson am 27 Nov. 2016
I am trying to dispay a DICOM stack so that the user can go through the stack one by one. My problem is, I cant figure out how I get information about the user using right or left clicks, mouse wheel up and down or arrow keys. The program is supposed to pull the user input in a while loop and either increments or decrements the current_slice variable.
while 1
for current_slice = 1:slices
current_figure = imshow(squeezed_data(:,:,current_slice), [0 global_max]);
while 1
% magic happens here
break;
end
end
close all;
break;
end
I know there is the implay() function, but it does not display the slices as good as imshow() or imtool(). Unfortunately, as far as I know, imtool() has no properties I clould access while imshow() just offers 'ButtonDownFcn' what causes a leftclick callback. Since using imshow() it changes my figure properties to image properties, so I can't use the Keyboard or Mouse Controll functions. Otherwise I could use set() to get key presses etc. Is there a a possibillity to get user input or something similar?

Antworten (1)

Walter Roberson
Walter Roberson am 27 Nov. 2016
Unfortunately you will need to go right back to the figure callbacks.
My tests indicate that WindowButtonMotionFcn and WindowScrollWheelFcn continue to work with imshow()
  2 Kommentare
Aaron Globisch
Aaron Globisch am 27 Nov. 2016
Hello Walter, first of all thank you for helping me.
Now I am just trying to get used to callbacks but I keep getting this error message:
Function 'subsindex' is not defined for values of class 'function_handle'.
Error in new_program (line 31)
current_figure('WindowScrollWheelFcn', @mwheel_callback);
I know subsindex converts an object into an integer index but this doesn't help me. I built my callback like
function mwheel_callback( object, callbackdata )
if callbackdata.VerticalScrollCount < 0
disp('Yet I dont know how but this should return -1');
elseif callback.VerticalScrollCount > 0
disp('+1');
% value = +1;
end
end
it is built in the example aviable in WindowScrollWheelFcn — Mouse-scroll-wheel callback in the figure documentation.
My input loop now looks just like this:
while 1
current_figure('WindowScrollWheelFcn', @mwheel_callback);
end
Do you know why it throws this error?
Walter Roberson
Walter Roberson am 27 Nov. 2016
Your current_figure is an array so it thinks the handle reference is a subscript attempt.
I do not recognize what "current_figure" is intended to do?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by