MATLAB Answers

0

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

Asked by Ahmer Shahid on 13 Jan 2019
Latest activity Commented on by Ahmer Shahid on 13 Jan 2019
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.

  0 Comments

Sign in to comment.

Tags

Products


Release

R2018a

2 Answers

Answer by Kevin Phung on 13 Jan 2019
 Accepted Answer

you can get the 'Children' property of the axes.
axes_handle.Children
%or
get(axes_handle,'Children')

  6 Comments

May be you are right So, Have you any solution ?
if ~isempty(findobj(app.UIaxis.Children, 'type', 'flat', 'type', 'image'))
or
any(arrayfun(@(x)isa(x,'matlab.graphics.primitive.Image'),ax.Children))
Thank you very much.

Sign in to comment.


Answer by 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

  3 Comments

You are also right Thank you.
You're welcome. You can also than people by clicking the "Vote" link under their icon.
I'm done with it.
Thanks Again.

Sign in to comment.