Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: While loop stopped by a GUI button
Replies: 3   Last Post: Jan 21, 2013 9:25 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Sanjeev

Posts: 4
Registered: 12/27/12
Re: While loop stopped by a GUI button
Posted: Jan 21, 2013 9:25 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

i tried doing this and even though i got it stopped the program returned an error.

??? Error using ==> imaqdevice.start at 91
Multiple VIDEOINPUT objects cannot access the same device simultaneously.

Error in ==> GUI>startstop_Callback at 89
start(source);

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> GUI at 42
gui_mainfcn(gui_State, varargin{:});

Error in ==>
@(hObject,eventdata)GUI('startstop_Callback',hObject,eventdata,guidata(hObject))


??? Error using ==> drawnow
Error while evaluating uicontrol Callback


here is my code


function varargout = GUI(varargin)
% GUI MATLAB code for GUI.fig
% GUI, by itself, creates a new GUI or raises the existing
% singleton*.
%
% H = GUI returns the handle to a new GUI or the handle to
% the existing singleton*.
%
% GUI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in GUI.M with the given input arguments.
%
% GUI('Property','Value',...) creates a new GUI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before GUI_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to GUI_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help GUI

% Last Modified by GUIDE v2.5 21-Jan-2013 15:48:38

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_OpeningFcn, ...
'gui_OutputFcn', @GUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before GUI is made visible.
function GUI_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to GUI (see VARARGIN)

% Choose default command line output for GUI
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes GUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = GUI_OutputFcn(hObject, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in startstop.
function startstop_Callback(hObject, eventdata, handles)
% hObject handle to startstop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of startstop
clc;
source= videoinput('winvideo');
set(source, 'ReturnedColorSpace', 'RGB');
set(source, 'FramesPerTrigger', 1);
set(source, 'TriggerRepeat', inf);
triggerconfig(source, 'manual');
start(source);
thresh = 15/255;
pause(2);
trigger(source);
bg = getdata(source,1,'double');
bg_bw = rgb2gray(bg);

if get(handles.startstop,'Value')
set(handles.startstop,'String','Stop');
drawnow();
else
set(handles.startstop,'String','Start');
drawnow();
stop(source);
delete(source);
end


while get(handles.startstop,'Value')


fr_size = size(bg);
width = fr_size(2);
height = fr_size(1);
f = zeros(height, width);trigger(source);
fr=getdata(source,1,'double');
fr1=fr(:,:,:,1);
fr_bw1=rgb2gray(fr1);

bg_fr_diff = abs((double(bg_bw)) - (double(fr_bw1)));

for j=1:width % if fr_diff > thresh pixel in foreground
for k=1:height
if (bg_fr_diff(k,j) > thresh)
f(k,j) =255;
else
f(k,j) = 0;
end
end
end

subplot(1,2,1);
imshow(fr1);
title('REAL TIME VIDEO');

subplot(1,2,2);
imshow(uint8(f));
title('DETECTED MOVING OBJECT');
bg_bw=fr_bw1;
drawnow();

end


could you help me out with this???




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.