Showing Alert of empty axes box.

3 views (last 30 days)
When the Axes Box does not contain any image and user clicks on the Push button then an error should popup saying "Please upload an image" or something else, how to do that how check whether the axes box is empty or not?
Rya on 1 Jun 2017
like this is main screen, i want to put a check that when user doesn't go in proper order i.e click on 'matching' at first it should make alert that upload image first similar case with 'Extract no plate' button

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 1 Jun 2017
Set the 'enable' property of the Extract button to 'off' at the start of the program. When the user has uploaded or captured an image, set the enable property to 'on'. That way it is not possible for the Extract button to be clicked when there is no image to extract from.
Walter Roberson
Walter Roberson on 3 Jun 2017
function Load_Callback(hObject, eventdata, handles)
[filename, pathname]=uigetfile({'*.jpg';'*.jpeg';'*.gif';'*.png';'*.bmp'},'Select file');
global MyImage;
MyImage = fullfile(pathname, filename);
im = imread(MyImage);
imshow(im, 'Parent', handles.axes1);
handles.have_loaded_something = 1;
guidata(hObject, handles);
function Extract_Callback(hObject, eventdata, handles)
global MyImage;
global noPlate;
if ~isfield(handles, 'have_loaded_something')
handles.have_loaded_something = 0;
guidata(hObject, handles);
if ~handles.have_loaded_something
msgbox('You need to load an image!', 'modal');
set(handles.edit1, 'string', noPlate);

Sign in to comment.

More Answers (2)

Adam on 1 Jun 2017
Edited: Adam on 1 Jun 2017
Declare e.g.
handles.hImage = [];
at the start of your program, then just set this when you plot the image as e.g.
handles.hImage = imagesc( hAxes,... );
Then in your pushbutton callback you can just test
if isempty( handles.hImage )
errordlg( 'Please upload an image' )
Rya on 3 Jun 2017
Edited: Rya on 3 Jun 2017
where should i write in call back function? plz implement your example in above given code

Sign in to comment.

Image Analyst
Image Analyst on 1 Jun 2017
You can use getimage() to see if there is any image in the axes. It will be empty if you have not loaded an image yet (with a function such as imshow, image, imagesc, etc.). Use axes() to switch the current axes to the one you care about, then:
theImage = getimage();
if isempty(theImage)
% Nothing is in the current axes.
uiwait(warndlg('Please load an image'));

Community Treasure Hunt

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

Start Hunting!