Wie kann ich Videos von einer webcam aufzeichnen, die in MATLAB?
Ich würde gerne wissen, wie kann ich ein video aufzeichnen, in MATLAB mit meiner webcam.
- Es ist mir nicht klar aus der Frage, wenn Sie versuchen, eine web-cam zur Aufzeichnung Ihrer MATLAB-Sitzung (wahrscheinlich nicht, aber ich sehe, die Menschen tun es). Alle meine videos werden screenshots gemacht und bearbeitet mit Camtasia.
Du musst angemeldet sein, um einen Kommentar abzugeben.
HINWEIS: Dies ist nun aktualisiert für die Verwendung mit neueren Versionen von MATLAB, da einige ältere Funktionen wurden abgelöst und entfernt.
Wenn Sie bereits wissen, wie erfassen ein einzelnes Bild von einer webcam, dann sollte es nur eine Frage der Nähen die Bilder zusammen in einen Film. Sie können eine
VideoWriter
Objekt, um eine movie-Datei öffnen und dann hinzufügen sequenzielle Bilder mit demwriteVideo
Methode. Zum Beispiel:Habe ich nur verwendet eine for-Schleife ein einfaches Beispiel, aber Sie möglicherweise verwenden möchten, ein
timer
wenn Sie stattdessen möchten, um Bilder aufzunehmen, und fügen Sie die AVI-Datei in regelmäßigen Abständen.Zuerst konstruieren Sie eine video-input-Schnittstelle
Wirst du anpassen müssen, um das Letzte bit für die webcam. Finden Sie eine Liste von webcam-Geräte (und anderen Dingen) verwenden:
Das folgende ist die erste webcam in ein Objekt
Finden Sie die Liste der unterstützten video-Formate mit
Sie werden dann wollen, um zu bestimmen, die frame-rate (mehr dazu hier):
Den
FrameGrabInterval
- Eigenschaft gibt an, wie oft die frames gespeichert werden, die vom video-stream. Zum Beispiel, wenn wir 5, dann nur 1 in 5 Bildern gehalten wird -- die anderen 4 frames verworfen werden. Mit der framerate, die bestimmen, wie oft Sie möchten, zu bekommen framesBestimmen, wie viele Bilder erwerben insgesamt, berechnen Sie die Gesamtzahl der frames, die erworben wurden auf das Gerät-frame-rate, und teilen Sie dann durch die FrameGrabInterval.
Sind Sie nun bereit für die Aufnahme und Wiedergabe mit video mit der
getdata
Befehl (peekdata
ist auch hilfreich), aber...Wenn eine große Anzahl von frames erfasst werden, ist es praktischer, melden Sie die Bilder auf der Festplatte statt im Arbeitsspeicher gespeichert. Mit der Image Acquisition Toolbox können Sie sich Bilder direkt in eine AVI-Datei. Wir konfigurieren diese mit dem LoggingMode-Eigenschaft.
Erstellen Sie eine AVI-Datei-Objekt anmelden, mit dem Befehl avifile. Wir müssen geben Sie den Dateinamen zu verwenden, und die frame-rate, die die AVI-Datei abgespielt werden soll, an. Setzen Sie dann die DiskLogger Eigenschaft des video-input-Objekt, um die AVI-Datei.
Starten Sie die Zeitraffer-Erwerb, und warten Sie, bis die übernahme abgeschlossen ist. Beachten Sie, dass die Image Acquisition Toolbox nicht binden, MATLAB®, während es erwerben. Sie können beginnen, Erwerb und halten Sie die Arbeit in MATLAB.
Sobald die Erfassung abgeschlossen ist, rufen Sie die AVI-Datei-Objekt, und verwenden Sie die schließen-Funktion zur Freigabe der Ressourcen zugeordnet.
Wenn Sie fertig sind mit dem video-Eingang-Objekt verwenden, sollten Sie die löschen-Funktion, um die hardware-Ressourcen zugeordnet sind, und entfernen Sie Sie aus dem workspace mit clear-Funktion.
Einen großen Teil, aber nicht alle, der oben war gezeichnet von hier.
Getroffen, wenn Sie
start(vid)
können Sie feststellen, dass es ein bisschen von einer Verzögerung, bevor der Rahmen beginnt erworben werden. Das ist schlecht, wenn Sie versuchen, die Synchronisierung des Videos mit etwas. In diesem Fall, werden Sie wollen, um zu versuchen die Arbeit mit dem trigger:Mehr info auf Trigger und Synchronisierung hier.
Google offenbart diese:
Hier sehen Sie tolle videos, wie zu erfassen und zu verarbeiten, die Bilder von der webcam, also die Aufnahme sollte nicht zu schwierig sein:
http://blogs.mathworks.com/videos/2008/01/18/cool-feature-video-processing-demos/
In meiner college-Leben, ich habe an diesem Projekt mit dem Namen als
Audio - /video-Recorder & player-Anwendung basierend auf MATLAB
In, ich habe audio-Aufnahme und video-Aufnahme und Wiedergabe der Programmierung in matlab. können Sie download Source code von hier
Ich schrieb vor kurzem einen blog-post darüber, wie eine Aufnahme der synchronisierten audio-und video in MATLAB durch senden von Befehls-Zeilen, um das Programm ffmpeg. Sie können herausfinden, mehr hier, aber unten ist ein Beispiel der Verwendung einige Einstellungen, die sinnvoll auf meinem computer.