31.08.2011, 11:39
Beitrag #1
|
ttdadp
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2010
2010
2008
DE
Deutschland
|
Messungen per USB-Kamera aufnehmen und filmen
Hallo und Mahlzeit,
mein Problem besteht darin, eine kontinuierliche Messung, die ich mit LabVIEW durchführe, über eine USB-Kamera zu überwachen und während der Messung eine Viedoaufnahme zu starten und zu stoppen.
Ich untersuche in einer Black-Box thermodynamische Vorgänge kontinuierlich mittels eines LabVIEW Programms (Leider darf ich dieses aus Datenschutzgründen nicht hochladen). Wenn ich in dem Programm Messdaten aufnehme, speichert mir LabVIEW die Messdaten in ein Textfile. Jetzt sollen diese Vorgänge über eine USB-Kamera überwacht werden. Außerdem soll ein Video während der Messdauer aufgenommen werden.
Mein Problem besteht darin, dass ein Durchlauf der While-Schleife für die Messdatenüberwachung ca. 5 sec. lange dauert. Ich möchte aber ohne Verzögerung mit der Kamera überwachen können. Benötige ich also eine zweite While-Schleife?
Außerdem schaffe ich es nicht, dass ich ein Video zu einem beliebigen Zeitpunkt aufnehme und dann wieder stoppe. Mir gelingt es lediglich, wie im Anhang zu entnehmen, das Video von Anfang an mitlaufen zu lassen.
Mein letztes Problem besteht darin, dass die Videodateien nicht zu groß werden sollen. Ich habe versucht dies dadurch umzusetzen, dass ich immer nur alle 2 sec. ein "Videobild" aufnehme. Eine Messung dauert ca. 20 min., die zu einem Zeitraffervideo zusammengeschnitten werden sollen. Wenn man einfach die Frames-Per-Second hochschraubt, so wird das Video zwar kürzer, aber die Datei eben nicht kleiner (Es wird halt einfach schneller abgespielt). Ich würde nun gerne wissen, ob meine Lösung überhaupt Sinn macht oder ob ich das auch einfacher hinbekommen könnte (z.B. ohne Express-VI)?
Vielen Dank schon einmal und ich hoffe, dass mir jemand vielleicht einen Tipp geben kann. Das angehängte VI habe ich in der Version 8.5 abgespeichert, sodass es jeder öffnen kann.
Thomas
Beobachten und Filmen.vi (Größe: 110,34 KB / Downloads: 514)
|
|
|
31.08.2011, 13:37
Beitrag #2
|
|
|
06.09.2011, 11:59
Beitrag #3
|
ttdadp
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2010
2010
2008
DE
Deutschland
|
RE: Messungen per USB-Kamera aufnehmen und filmen
Hallo,
vielen Dank für die schnelle Antwort!!
Einen Teil meiner Probleme konnte ich mit deinem Vorschlag lösen, nämlich, dass ich, während das Messprogramm läuft, eine Videoaufzeichnung starten und stoppen kann . (Siehe ahgehängtes VI)
Beobachten und Filmen 2.vi (Größe: 167,9 KB / Downloads: 499)
Ein weiteres Problem besteht darin, dass ich ein Video abspeichern will, dass möglichst wenig Speicherplatz benötigt. Das Video selbst soll im Zeitraffer aufgenommen werden, d.h. alle 2 Sekunden ein Bild. Wenn ich dies nun so programmiere, erhalte ich bei einer Auflösung von 320x240 Pixeln und einer Aufnahmedauer von 20min. eine Videodatei, die 300MB groß ist.
Zum Vergleich habe ich mit der Kamera-Software manuell alle 2 sekunden ein Foto (JPEG) gemacht und diese dann im Nachhinein zu einem Video verarbeitet. Das Ergebnis war eine Videodatei mit ca. 20MB Speicher! Zudem wurden die Fotos mit einer höheren Auflösung von 640x480 Pixeln aufgenommen! Wie ist das möglich?
Und kann mir einer einen Tipp geben, wie ich statt einer Videodatei eine Fotostrecke aufnehme? Wenn ich nämlich den Dateipfad angebe, verlangt LabVIEW von mir, dass dieser auf eine bereits bestehende jpeg Datei verweist. Wie kriege ich das hin, dass ich kontinuierlich Fotos abspeichere und diese mit einem fortlaufenden Dateinamen versehe?
Vielen Dank im Voraus!!
|
|
|
07.09.2011, 07:10
Beitrag #4
|
kaiman
LVF-Gelegenheitsschreiber
Beiträge: 146
Registriert seit: Dec 2008
7.1.1, 2011
2007
EN
28***
Deutschland
|
RE: Messungen per USB-Kamera aufnehmen und filmen
Moin,
warum Speicherst du das Video nicht in der gleichen Schleife wie du das Bild anzeigst? Bestimmt weil du keine Diashow in der Anzeige haben willst, richtig?! Ich würde es sonst auch mal mit dem Snap-VI für die Bilderfassung probieren.
Wenn du das Kamerabild einfach als Jpg speichern willst habe ich dir als Beispiel ein Screenshot angehängt. Ist eigentlich recht einfach, aber vllt. geht es noch direkter...
Viel Erfolg & Spaß damit.
P.S.: Das stellt das natürlich nur exemplarisch dar, du musst den Schleifeninhalt natürlich mit in die Schleife packen, in der du die Bilder(aktuell dein AVI) speicherst.
|
|
|
07.09.2011, 14:24
Beitrag #5
|
ttdadp
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Oct 2010
2010
2008
DE
Deutschland
|
RE: Messungen per USB-Kamera aufnehmen und filmen
Hallo,
vielen Dank für deinen Tipp!
Genau, ich möchte zwar möglichst flüssig wiedergeben, aber aufzeichnen möchte ich nur alle 2 Sekunden. Deswegen die zwei Schleifen. Weiß nicht ob das noch einfacher geht...
Wenn ich das nach deinem Vorschlag aufbaue, habe ich zwei Probleme:
1. Meine Kamera liefert mir ein RGB U32 Bild. Ich nehme an, das sind dann 32bit. Um dieses Bild so abzuspeichern wie du vorschlägst, muss ich das umwandeln in Greyscale 8bit. Sonst bekomme ich einen Fehler, dass der Bildtyp nicht passt. Geht das trotzdem irgendwie, dass ich ein farbiges Bild bekomme?
2. Das VI ''JPEG-Datei schreiben'' bringt mir immer einen Fehler (siehe Screenshot). Den Dateipfad habe ich so einfach wie möglich gehalten, aber irgendwie meckert er da rum. Muss ich als Dateipfad eigentlich einen Pfad plus eine bestehende JPEG Datei auswählen, die dann überschrieben wird oder langt einfach ein leerer Ornder? Tut mir Leid, ich komme da nicht mehr weiter... Mach ich irgendwas komplett falsch?
Viele Grüße
Beobachten und Filmen 3.vi (Größe: 173,57 KB / Downloads: 345)
|
|
|
07.09.2011, 16:05
Beitrag #7
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Messungen per USB-Kamera aufnehmen und filmen
Hallo tt,
Pfade sollte man schon korrekt bauen:
Und wenn man da eine Fehlermeldung bekommt, sollte man als erstes den benutzten Pfad überprüfen!
|
|
|
08.09.2011, 07:26
(Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2011 08:21 von kaiman.)
Beitrag #8
|
kaiman
LVF-Gelegenheitsschreiber
Beiträge: 146
Registriert seit: Dec 2008
7.1.1, 2011
2007
EN
28***
Deutschland
|
RE: Messungen per USB-Kamera aufnehmen und filmen
Moin,
ich hab nochmal das WriteImage getestet. Ist sehr einfach! Mach das Speichern damit, dann sparst du dir die Rumkonvertiererei und Probleme mit den Datentypen/Farbformaten.
NACHTRAG:
Ich hab mich nochmal deiner Problematik auseinander gesetzt ein Bild alle paar Sekunden anzuzeigen/zu speichern.
Du kannst dir aus Timerwerten einen Trigger zusammenbauen, der Quasi alle x Sekunden auf TRUE springt. Ich hab dir mal ein Bild angehängt...
Ist mit Sicherheit keine besonders schöne Lösung, aber funktional ist sie (zumindest für die Anzeige).
Für dich relevant ist nur die Berechnung unten links in der Schleife. Das Schieberegister hab ich mit -1 initialisiert, damit das erste Bild auch aufgenommen wird. Der geneigte Leser wird jedoch feststellen, dass das völliger Blödsinn ist, da die -1 ja in U32 gewandelt wird . Somit wird doch nicht das erste Bild aufgezeichnet, was ja eigentlich auch blöd wäre, weil beim ersten Schleifendurchlauf (zumindest in meiner State Machine) noch kein Bild da ist...
Noch ein Fehler gefunden: GrößerGleich ist natürlich auch Quatsch...
Bin heut morgen noch nicht ganz auf der Höhe...
|
|
|
| |