How can I check a specific axes has an image or not ?

1 view (last 30 days)
I am using app designer in Matlab 2018a and I replaces a button for testing which is disable.
I know how to enable it but I want to enable it when I have an image on axis.

Accepted Answer

Kevin Phung
Kevin Phung on 13 Jan 2019
you can get the 'Children' property of the axes.
axes_handle.Children
%or
get(axes_handle,'Children')
  6 Comments
Walter Roberson
Walter Roberson on 13 Jan 2019
if ~isempty(findobj(app.UIaxis.Children, 'type', 'flat', 'type', 'image'))
or
any(arrayfun(@(x)isa(x,'matlab.graphics.primitive.Image'),ax.Children))

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 13 Jan 2019
What you accepted as the answer is really not the answer as Walter explained. You can use getimage() and check for zero-sized image. Here's a demo:
% Have either plot() or imshow() - comment out one of them.
% Put something into an axes that is NOT an image.
% plot(1:10)
% Put something into an axes that IS an image.
imshow('moon.tif')
% Check what's in the axes.
theImage = getimage();
whos theImage
if size(theImage, 1) ~= 0
msgbox('There is an image in there');
else
msgbox('There is no image in there');
end

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Tags

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!