8 Stimmen

Erkennung von Szenenänderungen in Python

Ich frage mich, ob jemand Erfahrung mit Python und Videoverarbeitung hat. Im Wesentlichen würde ich gerne wissen, ob es irgendwelche Bibliotheken gibt, die es mir ermöglichen würden, eine Szenenerkennung in einem Video durchzuführen? Wenn nicht, gibt es irgendwelche, die es mir ermöglichen, das Video in eine Reihe von Frames aufzuteilen und mich mit den Pixeln herumspielen lassen?

Gracias.

4voto

Legolas Punkte 533

Sie können FFmpeg verwenden, um die Szene zu erkennen und die Änderungsbilder und ihre Zeitstempel zu erhalten. Der Befehl kann mit einem Python-Skript kombiniert werden und Sie können ihn entsprechend Ihrem Anwendungsfall ändern.

Sie können einfach den Befehl verwenden:

ffmpeg inputvideo.mp4 -filter_complex "select='gt(scene,0.3)',metadata=print:file=time.txt" -vsync vfr img%03d.png

Dies speichert nur die relevanten Informationen in der Datei time.txt wie unten und speichert auch die Bilder der Schusswechsel in der Reihenfolge:

frame:0    pts:108859  pts_time:1.20954
lavfi.scene_score=0.436456
frame:1    pts:285285  pts_time:3.16983
lavfi.scene_score=0.444537
frame:2    pts:487987  pts_time:5.42208
lavfi.scene_score=0.494256
frame:3    pts:904654  pts_time:10.0517
lavfi.scene_score=0.462327
frame:4    pts:2533781 pts_time:28.1531
lavfi.scene_score=0.460413
frame:5    pts:2668916 pts_time:29.6546
lavfi.scene_score=0.432326

Der Rahmen ist die Seriennummer des erkannten Schusswechsels ab dem Start. Wählen Sie außerdem den Schwellenwert (hier 0,3) für Ihren Anwendungsfall angemessen aus, um korrekte Ergebnisse zu erhalten

3voto

tzaman Punkte 44506

OpenCV hat Python-Anbindungen; ich glaube nicht, dass es irgendwelche Algorithmen/Funktionen für die Szenenbegrenzung eingebaut hat, aber Sie können es auf jeden Fall verwenden, um Ihre eigenen zu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X