WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Image Acquisition Toolbox - Bilder als jpeg abspeichern

 

Shaka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 12:26     Titel: Image Acquisition Toolbox - Bilder als jpeg abspeichern
  Antworten mit Zitat      
Hallo! Smile

Ich brauche beim Arbeiten mit der Image Acquisition Toolbox dringend Hilfe. Das Ansteuern der USB Kamera klappt ohne Probleme.

Doch was muss ich tun, damit in einem vorgegebenen Intervall/Zeitabstand Bilder in Form von jpeg abgespeichert werden? Überall wird nur das Abspeichern eines Videos beschrieben... Rolling Eyes

Gruß, Shaka


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 14:23     Titel:
  Antworten mit Zitat      
So?

Code:

vid = connect_cam; %Mit Kamera verbinden
bild = getsnapshot(vid);
imwrite(bild, 'dateiname', 'jpeg');
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Shaka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 10:15     Titel:
  Antworten mit Zitat      
Ja, dankeschön. Hab es zwar etwas anders gelöst, aber dieser Weg scheint wohl weniger rechenlastig zu sein. Muss ich aber noch genau in Erfahrung bringen.

Hab aber noch eine weitere Frage. Wie kann ich dafür sorgen, dass er vorhandene Bilddateien nicht überschreibt? Hier mal mein Code:
Code:

FPT=1;                                                  
TN=20;                                                  

vid=videoinput('winvideo',1);
triggerinfo(vid)
triggerconfig(vid, 'manual');

set(vid,'FramesPerTrigger', FPT);
set(vid,'TriggerRepeat',TN);

i=0
while i<TN
    i=i+1;
    trigger(vid);
    D=getdata(vid,FPT);
    saveas(imshow(D),['picture_' num2str(i)],'jpg');
end
 


Gruß, shaka
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 10:39     Titel:
  Antworten mit Zitat      
Klar, wenn Du das Bild zuerst anzeigen lässt und dann erst speicherst, ist es sicher langsamer. Zumal Bildschirmausgaben jeglicher Art in Matlab immer ziemlich langsam sind.

Dem Befehl selbst kann man meines Wissens nicht sagen, dass er nicht überschreiben soll. Du kannst aber mit der Funktion exist prüfen, ob es die Datei schon gibt. Wenn nicht, schreibst Du die Datei, wenn sie existiert änderst Du den Namen und fragst, ob die Datei auch schon existiert. Ganz clever wäre es in einer while-Schleife:

Code:

wunschname = 'gewuenschter_name';
speichername = dateiname;
iCount = 1;

while exist(speichername, 'file') %so lange die Datei existiert
    speichername = [wunschname, '_', sprintf('%03d', iCount)];
    iCount = iCount + 1;
end
 


Damit wird eine fortlaufende Nummer angefügt. Wenn Du eine Datei mittendrin löschst, wird die entstandene Lücke wieder aufgefüllt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Shaka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 12:34     Titel:
  Antworten mit Zitat      
Funktioniert bestens! Dankeschön Smile

Gibt es eine Möglichkeit die ROI Region Of Interest im Code zu verankern, so dass immer nur derselbe Bereich von der Kamera aufgenommen wird?

Gruß, Shaka
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 13:20     Titel:
  Antworten mit Zitat      
Wüsste nicht, dass die USB-Kameras sowas unterstützen würden. Das Bild muss auf jeden Fall komplett übertragen werden und das Beschneiden musste dann selbst machen. Kannst ja deine eigene Capture-Funktion schreiben, wo das automatisch gemacht wird...
Private Nachricht senden Benutzer-Profile anzeigen
 
wetterfreund
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 20.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2010, 14:52     Titel:
  Antworten mit Zitat      
Hallo zusammen,
ich brauche eure Hilfe, ich bin leider schlecht in programmierung. in meinem studienarbeit muss ich ne camera durch matlab steuern. mein aufgabe ist, soll ein programm schreiben, dass die camera in ner bestimmten Zeit bestimme bilder macht . ich hab das folgendes geschrieben .

Code:

%-----------------------------%
% Cleaning up                 %
%-----------------------------%
clear all;
clc;
close all;

vid = videoinput('winvideo',1);    
set(vid,'FramesPerTrigger', 100);
start(vid)                          
[data time] = getdata(vid,50);    
elapsed_time = time(50) - time(1)  

j=input ('Anzahl Bilder: ');
for  i=1:j
    frame = getsnapshot(vid);          
    imshow(frame)          
    pause(3)
    frame_gray = rgb2gray(frame);      
    figure, imshow(frame_gray )          
   
end

stop(vid)                          
delete(vid)                        
clear vid
 

das programm funktioniert leider nicht so wie ich es haben will
1) die qualität von Bilder ist sehr schlecht
2) ich kriege immer ein Bild mehr als was ich will (eingabe : 2 bilder, ausgabe 3 bilder).
kann vieleicht jemand mein Programm verbessern ? oder irgendwelchen rat geben , was ich da noch verbessern muss?
vielen dank im voraus
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.