MATLAB Answers


drawfreehand in App Designer ?

Asked by moon215
on 15 May 2019
Latest activity Commented on by Stanley Strawbridge on 8 Aug 2019
I want to add a freehand draw in my app, with :
d = drawfreehand(app.UIAxes_1,'color','green');
But i have this error:
Error using images.roi.internal.ROI/parseInputs
ROI parent must be a valid Axes object.
Error in images.roi.Freehand
So how can i use drawfreehand in App Designer ?
Thanks a lot in advance.


Sign in to comment.




2 Answers

Answer by Saumya Goel on 23 May 2019
 Accepted Answer

At this time, the "drawfreehand" function only takes an 'axes' objects as an argument, not 'UIAxes', the type of axes that are used in App Designer. More information about the valid arguments for 'drawfreehand' can be found on this documentation page:


So is there a way to draw a roi on an image in the UIAxes in App designer?
See my answer below.

Sign in to comment.

Answer by Sean de Wolski
on 8 Aug 2019

It's kind of silently supported but you can programmatically (>=R2018b) add an axes to a uifigure and then draw* will work.
ax = axes('Parent', uifigure)

  1 Comment

Hi Sean, thanks for the response! This is moving in the right direction.
The commands provided allow me to open a NEW uifigure, separate from my GUI, that I am able to use drawfreehand with:
ax = axes('Parent',uifigure);
However I would like to use this on the figure I already have in the GUI. I've tried several permutations of:
ax = axes('Parent',app.UIFigure);
But this is not working on either the blank app.UIFigure/UIAxes, or on the image I have plotted with imshow.
Is there a way to get my current app.UIFigure/UIAxes to work?
OR. do I need to go back to the begining and manually add a uifigure to my GUI, do all of the plotting In that window, and then use drawdfreehand (I'm makeing a 3D image viewer that lets you circle things on different slices of a z-stack TIFF). If this is the case, could you point me to how to manually embed the new uifigure such that it has the same properties as the app.UIFigure. (I am interpreting "programatically add an axes", literally code the figure in by hand without the aid of the app designer. Is this what you mean?)

Sign in to comment.