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

2 次查看(过去 30 天)
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.

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2019-1-13
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

标签

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by