Showing Alert of empty axes box.

1 次查看(过去 30 天)
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?
  2 个评论
Jan
Jan 2017-6-1
Please provide any details. Show us the relevant part of the code, e.g. the button's callback. Do you have the handle of the axes? Does the axes contain any other child objects? What about setting a flag, when the image is imported?
Rya
Rya 2017-6-1
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

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2017-6-1
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.
  8 个评论
Rya
Rya 2017-6-3
yes i made changes in guide also, it still does not work and this is not according to my requirement as well, let me clear u . if there is no image in axes, then clicking on Action buttons like 'extract' and 'match' is something nonsense, i want to alert the user of my project whenever he clicks on any action(button) before loading image a msgbox must popup to alert a user
Walter Roberson
Walter Roberson 2017-6-3
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);
end
if ~handles.have_loaded_something
msgbox('You need to load an image!', 'modal');
return
end
numberPlateExtraction(MyImage);
set(handles.edit1, 'string', noPlate);

请先登录,再进行评论。

更多回答(2 个)

Adam
Adam 2017-6-1
编辑:Adam 2017-6-1
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' )
return
end
  16 个评论
Image Analyst
Image Analyst 2017-6-3
Why not simply use getimage() like I suggested to find out if there is any image in the axes???
Rya
Rya 2017-6-3
编辑:Rya 2017-6-3
where should i write in call back function? plz implement your example in above given code

请先登录,再进行评论。


Image Analyst
Image Analyst 2017-6-1
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'));
end

标签

Community Treasure Hunt

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

Start Hunting!

Translated by