OpenCV (Open Source Computer Vision Library) ist eine Sammlung von BSD-lizenzierten Video- / Bildverarbeitungsbibliotheken. Es gibt viele Algorithmen wie Bildfilterung, Vorlagenabgleich, Objekterkennung, Videoanalyse und maschinelles Lernen.
Beispiel für Bewegungsverfolgung mit OpenCV (OpenCV Google Summer of Code 2015) https://www.youtube.com/watch?v=OUbUFn71S4s
Klicken Sie hier für die Installation und einfache Verwendung http://qiita.com/olympic2020/items/d5d475a446ec9c73261e
Klicken Sie hier, um Standbilder zu filtern Versuchen Sie die Kantenerkennung mit OpenCV
Dieses Mal werde ich das Video in Echtzeit konvertieren.
Das Folgende wird in der Schleife der while-Anweisung ausgeführt.
movie.py
# -*- coding: utf-8 -*-
import cv2
#Konstante Definition
ESC_KEY = 27 #Esc-Taste
INTERVAL= 33 #Wartezeit
FRAME_RATE = 30 # fps
ORG_WINDOW_NAME = "org"
GRAY_WINDOW_NAME = "gray"
ORG_FILE_NAME = "org_768x576.avi"
GRAY_FILE_NAME = "gray_768x576.avi"
#Lesen Sie die Originalvideodatei
org = cv2.VideoCapture(ORG_FILE_NAME)
#Vorbereiten der gespeicherten Videodatei
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)
#Fenstervorbereitung
cv2.namedWindow(ORG_WINDOW_NAME)
cv2.namedWindow(GRAY_WINDOW_NAME)
#Konvertierungsverarbeitungsschleife
while end_flag == True:
#Graustufenumwandlung
g_frame = cv2.cvtColor(c_frame, cv2.COLOR_BGR2GRAY)
#Rahmenanzeige
cv2.imshow(ORG_WINDOW_NAME, c_frame)
cv2.imshow(GRAY_WINDOW_NAME, g_frame)
#Rahmenschreiben
rec.write(g_frame)
#Beenden Sie mit der Esc-Taste
key = cv2.waitKey(INTERVAL)
if key == ESC_KEY:
break
#Lesen Sie den nächsten Frame
end_flag, c_frame = org.read()
#Verarbeitung beenden
cv2.destroyAllWindows()
org.release()
rec.release()
Klicken Sie hier für ein Beispielvideo. (Download) Benennen Sie "768x576.avi" in "org_768x576.avi" um und legen Sie es im selben Verzeichnis wie das Skript ab und führen Sie es aus.
Das Farbvideo und das Graustufenvideo wurden gleichzeitig angezeigt, und das Graustufenvideo wurde ebenfalls in der Datei gespeichert.
OpenCV3.1 hat kein "cv2.cv.CV_FOURCC", das bis OpenCV2.4 existierte. Es gibt auch eine Methode, um mit Ihrer eigenen Methode umzugehen, wie unten gezeigt, also werde ich sie vorstellen.
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)
Wenn Sie nur einen Code verwenden müssen, der in Ihrem Programm festgelegt ist, können Sie ihn auch in der Konstantendefinition so definieren.
opencv3.1.py
XVID = 0x44495658
Hier finden Sie eine Zusammenfassung häufig verwendeter Codecs.
Codec-Code | String | Konstante |
---|---|---|
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 |
Unkomprimiert | Null(0) | 0x00000000 |
Klicken Sie hier für eine Liste der Codecs (Link)
Als nächstes konvertieren wir das Video der Webkamera / Videokamera in Echtzeit mit OpenCV. Versuchen Sie, Webkamera- / Videokamera-Videos in Echtzeit mit OpenCV zu konvertieren
Recommended Posts