splitting-video in Bilder um in matlab
Bin ich auf ein problem. Mein problem ist, dass ich teilen möchten, auf alle Bild-frames aus einem avi-video. Als erstes habe ich verwendet aviread() Funktion gibt mir die out-of-memory-Fehler. Dann aus der online-Hilfe ich waren mit mmreader() und read () - Funktion split-Bild-frames, aber das problem ist, Lesen Sie Bilder von der read () - Funktion konnte nicht gezeigt werden, die mit imshow () - Funktion. Ich habe den folgenden code-snippet,
function test()
A='G:\ims\avi\nh.avi';
B=mmreader(A);
ims=read(B,[2000 2200]);
figure(1),imshow(ims(1));
end
Hoffte ich, dass dieser code würde das erste Bild gezeigt frame muss es aber nicht. In diesem code bin ich frei von out-of-memory-Fehler, weil ich lese nur 200 frames. Aber das problem bleibt immer noch, wenn ich versuche zu Lesen, alle frames. Also hauptsächlich habe ich die folgenden zwei Probleme,
- wie kann ich loswerden von out-of-memory-problem mit mmreader() und read() ?
- warum nicht imshow() oben nicht zeigen, das Bild Rahmen?
- welche version von MATLAB verwendest du?
- es wurde Matlab 7
Du musst angemeldet sein, um einen Kommentar abzugeben.
Loszuwerden, die out-of-memory Fehler, Lesen Sie in einem einzigen Bild in einer Schleife, wie gezeigt, in der mmreader Dokumentation (
doc mmreader
):Den Grund
imshow
nicht funktioniert ist, dass der zurückgegebene Wert vonread(...)
ist Höhe x Breite x Farben x NumFrames, Wo die Höhe ist die Höhe des Videos, in der Breite ist die Breite des Videos, Farben die Anzahl der Farben (in der Regel 3) und NumFrames ist die Anzahl der frames, die Sie Lesen.Zur Anzeige der ersten frame verwenden:
Wenn Sie möchten, implementieren Sie eine einfache video-player, hier ist ein Beispiel:
Diese liest einen frame zu einem Zeitpunkt, und zeigt es mit IMSHOW. Beachten Sie, dass es erforderlich ist, zu nennen DRAWNOW (oder pause mit einigen kleinen Wert), so dass die GUI-event-queue wird geleert.
Wenn Sie interessiert sind, zeigte ich in einem Vorherige Antwort ein Beispiel für eine GUI für das surfen im Rahmen einer video-Datei.
Diese teilt ein video in frames ohne die Notwendigkeit für zusätzliche codecs:
Hier ist, was ich verwenden, um split up videos und rekombinieren Sie in animierte GIF. Ich bin sicher, Sie können es anpassen, was auch immer Sie mögen. Es basiert vollständig auf code-snippets aus der MATLAB-Hilfe.