Convertir une vidéo en noir et blanc avec ffmpeg + python + opencv

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".

Environnement d'exécution

OS: Windows7(Cygwin) ffmpeg: N-74313-g9c0407e Python: 2.7.10 OpenCV: 2.4.11

0. Préparation du travail

Créez un dossier de travail et placez le fichier vidéo d'origine.

$ mkdir bwmovie/row bwmovie/bw
$ mv movie bwmovie/
$ cd bwmovie

1. Découpez une image fixe d'une vidéo

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".

2. Convertissez les images fixes en noir et blanc

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)etcv2.imwrite ('bw /% 06d.jpg) Enregistrez-les dans le dossier image bw en tant que numéros de série avec '% index, th) `.

3. Joindre des images fixes pour créer une vidéo

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.

Résumé

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

Convertir une vidéo en noir et blanc avec ffmpeg + python + opencv
Briller la vie avec Python et OpenCV
Réseau neuronal avec OpenCV 3 et Python 3
Ajoutez un faux effet d'inclinaison aux vidéos avec OpenCV + Python
J'ai créé un programme pour convertir des images en art ASCII avec Python et OpenCV
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Convertir un mémo à la fois avec Python 2to3
Enregistrer la vidéo image par image avec Python OpenCV
Capturer des images avec Pupil, python et OpenCV
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Fractal pour faire et jouer avec Python
Convertissez des données FX 1 minute en données 5 minutes avec Python
Convertir des nombres chinois en nombres arabes avec Python
Exemple de conversion en ondelettes d'images en Python
Mettez OpenCV dans OS X avec Homebrew et vidéo d'entrée / sortie avec python
J'ai créé un réseau pour convertir des images noir et blanc en images couleur (pix2pix)
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Essayez de séparer l'arrière-plan et l'objet en mouvement de la vidéo avec OpenCV
Hello World et détection de visage avec OpenCV 4.3 + Python
Grattage de la nourriture avec python et sortie en CSV
MessagePack-Try pour lier Java et Python avec RPC
Conversion DICOM en PNG avec ordre croissant et décroissant
Convertir un PDF en image (JPEG / PNG) avec Python
Convertissez des PDF en images en masse avec Python
Convertir mp4 en mp3 avec ffmpeg (version miniature intégrée)
Convertir un fichier svg en png / ico avec Python
Comment recadrer une image avec Python + OpenCV
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Convertir les valeurs d'époque Windows à ce jour avec python
Le moyen le plus simple d'utiliser OpenCV avec python
Correspondance des fonctionnalités avec OpenCV 3 et Python 3 (A-KAZE, KNN)
[Python] Comment gérer les caractères japonais avec openCV
Essayez de détecter les poissons avec python + OpenCV2.4 (inachevé)
Convertir une chaîne au format de liste caractère par caractère avec python
Convertir 202003 en 2020-03 avec les pandas
Binarisation avec OpenCV / Python
Introduction à OpenCV (python) - (2)
Convertir la date et l'heure zonées en temps Unixtime dans Python2.7
Comment convertir / restaurer une chaîne avec [] en python
Procédure pour charger MNIST avec python et sortie en png
[Python] Convertit les nombres décimaux en nombres binaires, octaux et hexadécimaux
[Python] Convertit un conteneur à usage général et une classe entre eux
Je veux gérer l'optimisation avec python et cplex
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Convertissez l'image au format .zip en PDF avec Python
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Afficher et prendre des images de caméra Web avec Python Kivy [GUI]
[Python] Taille d'image de la caméra Web et paramètres FPS avec OpenCV
Chargement / affichage et accélération de gif avec python [OpenCV]
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
[Python] Convertit l'affichage de l'heure (type str) en utilisant "" "et" '"en secondes (type float) avec datetime et timedelta
API Nifty Cloud facile à utiliser avec botocore et python
Programmation avec Python et Tkinter
Connectez-vous à BigQuery avec Python
Chiffrement et déchiffrement avec Python