Vor kurzem habe ich mit Bildern herumgespielt, die aus Videos mit der Kombination "ffmpeg + python + opencv" aufgenommen wurden. Dieses Mal werde ich versuchen, diese zu verwenden, um "ein Farbvideo in Schwarzweiß umzuwandeln".
OS: Windows7(Cygwin) ffmpeg: N-74313-g9c0407e Python: 2.7.10 OpenCV: 2.4.11
Erstellen Sie einen Arbeitsordner und legen Sie die Originalvideodatei ab.
$ mkdir bwmovie/row bwmovie/bw
$ mv movie bwmovie/
$ cd bwmovie
Wechseln Sie in den Arbeitsordner und extrahieren Sie mit ffmpeg Standbilder aus der Videodatei in Frame-Einheiten.
$ ffmpeg -i movie -f image2 row/%06d.jpg
Das letzte Argument ist der Dateiname. In diesem Fall wird der Dateiname im Zeilenordner angegeben, sodass er "in der Reihenfolge geordnet ist, in der er durch die 0-gepackte 6-stellige Ganzzahl extrahiert wurde".
Diese Konvertierung erfolgt in Python + OpenCV. Erstellen Sie den folgenden Python-Code direkt unter dem Arbeitsordner.
import cv2
import glob
paths = glob.glob('row/*')
for index,path in enumerate(paths):
image = cv2.imread(path, 0)
ret, th = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU )
cv2.imwrite('bw/%06d.jpg' % index, th)
Dieser Code ruft zuerst path = glob.glob ('row / *')
ab und ruft die Dateien unter dem Zeilenordner als Array ab.
Drehen Sie diese Dateipfade dann in eine for-Schleife und speichern Sie sie mit image = cv2.imread (path, 0)
im Bild. Zu diesem Zeitpunkt wird für das zweite Argument von imread 0 angegeben, damit es zu einer Graustufe wird.
Danach wird das Bild mit ret, th = cv2.threshold (Bild, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
undcv2.imwrite ('bw /% 06d.jpg) binärisiert (schwarz und weiß). Speichern Sie sie im Ordner image bw als Seriennummern mit '% index, th)
.
Fügen Sie zum Schluss die konvertierten Schwarzweißbilder hinzu, um ein Video zu erstellen.
ffmpeg -i bw/%06d.jpg video.mp4
Geben Sie das Originalbild nach der Option i an und geben Sie den Namen der Ausgabedatei im letzten Argument an.
Mit dem oben genannten können Sie "das Video in Schwarzweiß konvertieren". Die Videoausgabe mit dieser Methode hat jedoch keinen Ton und die Bitrate ist nicht angegeben, sodass die Anzahl der Bilder im Vergleich zum Originalvideo zunimmt und etwas langweilig wird. Wenn Sie ein Kininal sind, gehen Sie bitte zu "Verwendung von ffmpeg".
Recommended Posts