Verfasst am: 21.03.2017, 16:05
Titel: zwei Kameras verschiedenen Axes zuordnen
Hallo zusammen,
ich habe mich nun erstmalig an die GUI-Programmierung gewagt und stoße doch schnell auf Probleme. Da ich die Syntax noch nicht ganz verstanden habe, fällt es mir schwer zwei Kameras die entsprechende Axes zuzuordnen.
Hier der Code (habe ich für eine Kamera im Internet gefunden):
Code:
% --- Executes just before InterDetectGUI is made visible. function InterDetectGUI_OpeningFcn(hObject, eventdata, 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 InterDetectGUI (see VARARGIN)
% Choose default command line output for InterDetectGUI
handles.output = hObject;
handles.video1 = videoinput('winvideo', 1);
set(handles.video1, 'TimerPeriod', 0.05, ...
'TimerFcn',['if(~isempty(gco)),'...
'handles=guidata(gcf);'...% Update handles
'image(getsnapshot(handles.video1));'...% Get picture using GETSNAPSHOT and put it into axes using IMAGE
'set(handles.Camera1,''ytick'',[],''xtick'',[]),'...% Remove tickmarks and labels that are inserted when using IMAGE
'else '...
'delete(imaqfind);'...% Clean up - delete any image acquisition objects
'end']);
triggerconfig(handles.video1,'manual');
handles.video1.FramesPerTrigger = Inf; % Capture frames until we manually stop it
handles.video2 = videoinput('winvideo', 2);
set(handles.video2,'TimerPeriod', 0.05, ...
'TimerFcn',['if(~isempty(gco)),'...
'handles=guidata(gcf);'...% Update handles
'image(getsnapshot(handles.video2));'...% Get picture using GETSNAPSHOT and put it into axes using IMAGE
'set(handles.Camera2,''ytick'',[],''xtick'',[]),'...% Remove tickmarks and labels that are inserted when using IMAGE
'else '...
'delete(imaqfind);'...% Clean up - delete any image acquisition objects
'end']);
triggerconfig(handles.video2,'manual');
handles.video2.FramesPerTrigger = Inf; % Capture frames until we manually stop it
% --- Executes on button press in startStopCamera. function startStopCamera_Callback(hObject, eventdata, handles) % hObject handle to startStopCamera (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Start/Stop Camera ifstrcmp(get(handles.startStopCamera,'String'),'Start Camera') % Camera is off. Change button string and start camera. set(handles.startStopCamera,'String','Stop Camera')
start(handles.video1)
start(handles.video2) else % Camera is on. Stop camera and change button string. set(handles.startStopCamera,'String','Start Camera')
stop(handles.video1)
stop(handles.video2) end
Zur Erklärung: Ich habe zwei Axes (Tags: Camera1 und Camera2) angelegt. Am Rechner habe ich zwei USB-Kameras angeschlossen.
Auf der GUI habe ich einen Button (Tag: startStopCamera).
Alles, was mit 'video2' und 'Camera2' zutun hat, habe ich der Vorlage selber hinzugefügt.
Wenn ich den Code dann laufen lasse und den Button startStopCamera drücke, wird mir im Axes mit dem tag Camera2 das Bild beider Kameras im Wechsel angezeigt und die Axes mit dem tag Camera1 bleibt leer.
Da ich nun wirklich noch viele Probleme mit der Syntax habe, weiß ich nicht wo ich suchen muss. Sieht jemand den Fehler?
function fun(nummer) if(~isempty(gco))
handles=guidata(gcf); % Update handles image(getsnapshot(handles.(['video' num2str(nummer)]))); % Get picture using GETSNAPSHOT and put it into axes using IMAGE set(handles.(['Camera' num2str(nummer)]),'ytick',[],'xtick',[])% Remove tickmarks and labels that are inserted when using IMAGE else delete(imaqfind); % Clean up - delete any image acquisition objects end
% --- Executes on button press in startStopCamera. function startStopCamera_Callback(hObject, eventdata, handles) % hObject handle to startStopCamera (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Start/Stop Camera
Wenn ich gleiches versuche in meinen Code für die GUI einzubauen (oben als Kommentar) passiert gar nichts. Das Bild ist da aber die Helligkeit ändert sich nicht.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.