MATLAB Answers

Mouse Click callback on an image - temporarily disable

20 views (last 30 days)
Jason
Jason on 14 Aug 2019
Commented: Jason on 14 Aug 2019
Hello, I have a GUI (created by guide) where everytime I load an image and display in an axes component I assign a button down function (called ImageClickCallback) so everytime I click on the image my function ImageClickallback executes. This all works fine.
axes(handles.axes1)
imageHandle=imshow(img,[low,high]); % Display Image
set(imageHandle,'ButtonDownFcn',@ImageClickCallback); % Assign callback to ButtonDown event
I am wanting to now use a mouse click on the image to draw lines (I know how to do this) but everytime I click the image the original ImageClickCallback executes. So my question is can I pause the original ButtonDownFcn callback ?
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 14 Aug 2019
Jason - why not just remove the original callback just prior to wanting to draw the lines
set(imageHandle,'ButtonDownFcn',[]);
You could then restore it later when needed.

  7 Comments

Show 4 older comments
Jason
Jason on 14 Aug 2019
OK, have tried this:
In the function that I define image Handle
imageHandle=imshow(A,[lo hi]);
handles.imH=imageHandle;
guidata(hObject, handles);
Then in the 2nd function where I want to disable the ButtonDownFcn
imageHandle=handles.imH;
set(imageHandle,'ButtonDownFcn ',[]); %temporarily turn off current ButtonDown event
But I get the following error message
Error using matlab.graphics.primitive.Image/set
The property name 'ButtonDownFcn ' is not a valid MATLAB identifier.
Error in ArchimedesIQC>pushbutton199_Callback (line 15392)
set(imageHandle,'ButtonDownFcn ',[]); %temporarily turn off current ButtonDown event
Geoff Hayes
Geoff Hayes on 14 Aug 2019
The problem might be because of the trailing space character in the string
'ButtonDownFcn '
Try replacing with
set(handles.imH,'ButtonDownFcn',[]);
Jason
Jason on 14 Aug 2019
Yes thts it....thanks for spotting the error
Jason

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!