How to draw an circle on the image where i show it on app.Image using app designer
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Here's the image I used
imshow(image,'Parent', app.Images)
to show it on app.Image
I got the coordinate by using
app.point = get(0,'PointerLocation')
And I'm trying to draw an circle on the image when i click the image.
Is there anyway i could draw a circle on the image?
Also, I can't use the app.UIAxes buttonclick callback after getting the image on the UIAxes.
Thanks for all
0 commentaires
Réponse acceptée
Cameron
le 5 Mar 2023
If you have the Image Processing Toolbox, you can use the function drawcircle().
imshow(imread('peacock.jpg'))
h = drawcircle('Color','k','FaceAlpha',0.4);
7 commentaires
Cameron
le 7 Mar 2023
I found an easier workaround for you. The callback for the UIAxes is not passed to its children - in this case the image. So we would have to set the callback for the image to the callback for UIAxes. There are only two lines you would need to add for your code.
% Button pushed function: Button
function ButtonPushed(app, event)
[filename,pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif'});
image = strcat(pathname,filename);
imshow(image,'Parent', app.UIAxes);
img = app.UIAxes.Children(1);
img.ButtonDownFcn = app.UIAxes.ButtonDownFcn;
end
% Button down function: UIAxes
function UIAxesButtonDown(app, event)
function allevents(src,evt)
disp(['Circle current radius is: ' mat2str(evt.CurrentRadius)]);
disp(['Circle current center is: ' mat2str(evt.CurrentCenter)]);
end
h = drawcircle(app.UIAxes,...
'Color','k',...
'FaceAlpha',0.4);
addlistener(h,'MovingROI',@allevents);
addlistener(h,'ROIMoved',@allevents);
end
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!