Récemment, j'ai joué avec des images prises à partir de vidéos avec la combinaison de "ffmpeg + python + opencv". Cette fois, je vais essayer de les utiliser pour "convertir des vidéos couleur en noir et blanc".
OS: Windows7(Cygwin) ffmpeg: N-74313-g9c0407e Python: 2.7.10 OpenCV: 2.4.11
Créez un dossier de travail et placez le fichier vidéo d'origine.
$ mkdir bwmovie/row bwmovie/bw
$ mv movie bwmovie/
$ cd bwmovie
Accédez au dossier de travail et utilisez ffmpeg pour extraire les images fixes du fichier vidéo en unités d'image.
$ ffmpeg -i movie -f image2 row/%06d.jpg
Le dernier argument est le nom du fichier. Dans ce cas, le nom du fichier est donné dans le dossier de lignes de sorte qu'il soit "ordonné dans l'ordre de celui extrait par l'entier à 6 chiffres à 0".
Cette conversion se fait en Python + OpenCV. Créez le code Python suivant directement sous le dossier de travail.
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)
Ce que fait ce code, c'est d'abord obtenir chemins = glob.glob ('row / *')
et obtenir les fichiers sous le dossier de ligne sous forme de tableau.
Puis tournez ces chemins de fichiers dans une boucle for et stockez-les dans l'image avec ʻimage = cv2.imread (chemin, 0) . À ce stade, 0 est spécifié pour le deuxième argument de imread afin qu'il devienne une échelle de gris. Après cela, l'image est binarisée (noir et blanc) avec
ret, th = cv2.threshold (image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)et
cv2.imwrite ('bw /% 06d.jpg) Enregistrez-les dans le dossier image bw en tant que numéros de série avec '% index, th) `.
Enfin, rejoignez les images converties en noir et blanc pour créer une vidéo.
ffmpeg -i bw/%06d.jpg video.mp4
Spécifiez l'image d'origine après l'option i et spécifiez le nom du fichier de sortie dans le dernier argument.
Avec ce qui précède, vous pouvez "convertir la vidéo en noir et blanc". Cependant, la sortie vidéo de cette méthode n'a pas de son et le débit binaire n'est pas spécifié, de sorte que le nombre d'images augmentera par rapport à la vidéo d'origine et ce sera un peu terne. Si vous êtes un kininal, veuillez consulter "Comment utiliser ffmpeg".
Recommended Posts