OpenCV (Open Source Computer Vision Library) est une collection de bibliothèques de traitement vidéo / image sous licence BSD. Il existe de nombreux algorithmes tels que le filtrage d'images, la mise en correspondance de modèles, la reconnaissance d'objets, l'analyse vidéo et l'apprentissage automatique.
Exemple de suivi de mouvement avec OpenCV (OpenCV Google Summer of Code 2015) https://www.youtube.com/watch?v=OUbUFn71S4s
Cliquez ici pour l'installation et une utilisation facile http://qiita.com/olympic2020/items/d5d475a446ec9c73261e
Cliquez ici pour filtrer les images fixes Essayez la détection des bords avec OpenCV
Cette fois, je vais convertir la vidéo en temps réel.
Ce qui suit est fait dans la boucle de l'instruction while.
movie.py
# -*- coding: utf-8 -*-
import cv2
#Définition constante
ESC_KEY = 27 #Touche Echap
INTERVAL= 33 #Temps d'attente
FRAME_RATE = 30 # fps
ORG_WINDOW_NAME = "org"
GRAY_WINDOW_NAME = "gray"
ORG_FILE_NAME = "org_768x576.avi"
GRAY_FILE_NAME = "gray_768x576.avi"
#Lire le fichier vidéo original
org = cv2.VideoCapture(ORG_FILE_NAME)
#Préparation du fichier vidéo enregistré
end_flag, c_frame = org.read()
height, width, channels = c_frame.shape
rec = cv2.VideoWriter(GRAY_FILE_NAME, \
cv2.VideoWriter_fourcc(*'XVID'), \
FRAME_RATE, \
(width, height), \
False)
#Préparation de la fenêtre
cv2.namedWindow(ORG_WINDOW_NAME)
cv2.namedWindow(GRAY_WINDOW_NAME)
#Boucle de traitement de conversion
while end_flag == True:
#Conversion de l'échelle de gris
g_frame = cv2.cvtColor(c_frame, cv2.COLOR_BGR2GRAY)
#Affichage du cadre
cv2.imshow(ORG_WINDOW_NAME, c_frame)
cv2.imshow(GRAY_WINDOW_NAME, g_frame)
#Écriture de cadre
rec.write(g_frame)
#Quitter avec la touche Echap
key = cv2.waitKey(INTERVAL)
if key == ESC_KEY:
break
#Lire l'image suivante
end_flag, c_frame = org.read()
#Terminer le traitement
cv2.destroyAllWindows()
org.release()
rec.release()
Cliquez ici pour un exemple de vidéo. (Télécharger) Renommez "768x576.avi" en "org_768x576.avi" et placez-le dans le même répertoire que le script et exécutez-le.
La vidéo couleur et la vidéo en échelle de gris ont été affichées en même temps, et la vidéo en échelle de gris a également été enregistrée dans le fichier.
OpenCV3.1 n'a pas cv2.cv.CV_FOURCC
, qui existait jusqu'à OpenCV2.4.
Il existe également une méthode pour le gérer avec votre propre méthode, comme indiqué ci-dessous, je vais donc la présenter.
CV_FOURCC.py
# cv2.cv.CV_FOURCC
def cv_fourcc(c1, c2, c3, c4):
return (ord(c1) & 255) + ((ord(c2) & 255) << 8) + \
((ord(c3) & 255) << 16) + ((ord(c4) & 255) << 24)
Si vous ne devez utiliser qu'un code fixe dans le programme, vous pouvez également le définir comme ceci dans la définition de la constante.
opencv3.1.py
XVID = 0x44495658
Voici un résumé des codecs fréquemment utilisés.
Code codec | Chaîne | constant |
---|---|---|
MPEG-1 | PIM1 | 0x314D4950 |
MPEG-4 | MPG4 | 0x3447504D |
MPEG-4.2 | MP42 | 0x3234504D |
MPEG-4.3 | DIV3 | 0x33564944 |
DivX | DIVX | 0x58564944 |
DivX 5.0 | DX50 | 0x30355844 |
Xvid | XVID | 0x44495658 |
H.263 | U263 | 0x33363255 |
H.263I | I263 | 0x33363249 |
H.264 | H264 | 0x34363248 |
FLV1 | FLV1 | 0x31564C46 |
Motion JPEG | MJPG | 0x47504A4D |
Non compressé | zéro(0) | 0x00000000 |
Cliquez ici pour une liste de codecs (lien)
Ensuite, convertissons la vidéo de la caméra Web / caméra vidéo en temps réel avec OpenCV. Essayez de convertir des vidéos de caméra Web / caméra vidéo en temps réel avec OpenCV
Recommended Posts