Zuerst installieren wir OpenCV:
pip3 installiere opencv-pythonBilder lesen und anzeigen
Das erste, was wir lernen müssen, ist das Lesen und Schreiben von Bildern. Das Lesen einer Bilddatei, die Eingabe des vollständigen Pfads zur Datei oder des Dateinamens (wenn sich die Datei im Python-Ordner befindet) und das Hinzufügen eines Flags erfolgt mit cv2.imread(). Das Flag kann den Wert 1 (für ein Farbbild), 0 (für Graustufen) oder -1 (für Farbbild mit Kanälen) annehmen. Man kann den cv2 . verwenden.imshow()-Funktion zum Anzeigen des Bildes; hier werden zwei Argumente übergeben - ein Name für das Bild und das anzuzeigende Bild. Als nächstes verwenden wir die cv2.waitKey()-Funktion, um auf eine Tastatureingabe zu warten; eine 0 für den cv2.Die waitKey(0)-Funktion impliziert eine permanente Wartezeit. Auf der anderen Seite ist der cv2.Die Funktion DestroyAllWindows() schließt die Fenster.
Dadurch wird ein Bild gelesen und geöffnet und das Bild geöffnet, bis Sie es schließen:
CV2 importieren importBild = cv2.imread('LinuxLogo.jpg', 1)
cv2.imshow('Bild', Bild)
cv2.waitKey(0)
cv2.zerstörenAllWindows()
Bilder schreiben
Wir verwenden die cv2.imwrite() Funktion um ein Bild zu speichern. Diese Funktion benötigt zwei Parameter - einen Namen zum Speichern des Bildes und das Bild, das Sie speichern möchten.
CV2 importieren importBild = cv2.imread('identifizieren.jpg', -1)
cv2.imwrite('save_image.png', Bild)
Video von der Webcam aufnehmen
Um Videos aufzunehmen, beginnen wir mit der Initialisierung des cv2.VideoCapture()-Funktion. Wir verwenden dann eine „While“-Schleife, um das Video weiter aufzunehmen. Während der Benutzer die Exit-Taste nicht drückt, können wir die Frames lesen und mit read() und cv2 anzeigen.imshow()-Funktion. Dann setzen wir eine „break“-Taste ein, um die Schleife zu verlassen; in diesem Fall ist die Zahl 27 die ESC-Taste. Drückt der Benutzer die ESC-Taste, bricht er aus der Schleife aus. Sobald Sie die Schleife verlassen haben, müssen Sie die Aufnahme freigeben.
numpy als np importierenCV2 importieren import
erfassen = cv2.Videoaufnahme(0)
während(wahr):
ret, frame = erfassen.lesen()
cv2.imshow('rahmen', rahmen)
wenn cv2.waitKey(1) & 0xFF == 27:
Unterbrechung
Erfassung.Veröffentlichung()
cv2.zerstörenAllWindows()
Abspielen einer Videodatei
Das Abspielen einer Videodatei ist wie das Aufnehmen eines Videos von einer Webcam. Dazu muss der cv2.Die Funktion VideoCapture() wird verwendet; der Name der Videodatei, die Sie abspielen möchten, wird dann zur Funktion hinzugefügt. Die „While“-Schleife wird wieder verwendet, und die Exit-Taste ist in diesem Fall die „s“-Taste auf der Tastatur. Dies öffnet und spielt die Videodatei ab und schließt sie, wenn der Benutzer die „s“-Taste drückt.
numpy als np importierenCV2 importieren import
erfassen = cv2.VideoCapture("Megamind.avi")
während(wahr):
ret, frame = erfassen.lesen()
cv2.imshow('frame', frame)
wenn cv2.waitKey(1) & 0xFF == ord("s"):
Unterbrechung
Erfassung.Veröffentlichung()
cv2.zerstörenAllWindows()
Speichern einer Videodatei
Das Speichern einer Videodatei erfordert etwas mehr Arbeit. Der cv2.Die Funktion VideoWriter() benötigt insgesamt 4 Parameter - den Namen der Ausgabedatei, den FourCC-Code, die Anzahl der Bilder pro Sekunde und die Bildgröße. Außerdem muss der FourCC-Code angegeben werden, der der Videocodec ist, der den cv2 verwendet.VideoWriter_fourcc()-Funktion. Verwenden der Aufnahme.isOpened(), wir lesen den Frame und schreiben den Ausgabeframe. Wir können die Frames auch mit dem cv2 anzeigen.imshow()-Funktion. Dann verwenden wir cv2.waitKey(1) & 0xFF == ord('s'), um eine Exit-Taste zu setzen. Wenn der Benutzer in diesem Fall die Taste „s“ drückt, verlässt er die Schleife und gibt dann die Aufnahme und die Ausgabe frei und schließt die Fenster.
numpy als np importierenCV2 importieren import
erfassen = cv2.Videoaufnahme(0)
viercc = cv2.VideoWriter_fourcc(*'XVID')
Ausgang = cv2.VideoWriter('Ausgabe.avi',fourcc, 30.0, (640,480))
während (einfangen.ist geöffnet()):
ret, frame = erfassen.lesen()
Ausgabe.schreiben (Rahmen)
cv2.imshow('frame',frame)
wenn cv2.waitKey(1) & 0xFF == ord('s'):
Unterbrechung
Erfassung.Veröffentlichung()
Ausgabe.Veröffentlichung()
cv2.zerstörenAllWindows()
Zeichnen von Linien, Kreisen, Rechtecken und Texten
Das erste, was wir lernen werden zu zeichnen, ist eine Linie. Um eine Linie zu zeichnen, verwenden wir einfach die cv2.line()-Funktion. Die Funktion benötigt 5 Argumente - das Quellvideo, den Startpunkt, den Endpunkt, die Farbe und die Linienstärke. Im folgenden Fall haben wir uns für eine rechteckige Umrandung (bestehend aus 4 Linien) entschieden:
CV2 importieren importerfassen = cv2.VideoCapture('vtest.avi')
während Wahr:
ret, frame = erfassen.lesen()
width = int(capture.erhalten(3))
Höhe = int (Erfassung.holen(4))
line1 = cv2.Linie(Rahmen, (0,0), (0,Höhe), (255, 255, 255),10)
line2 = cv2.line(line1, (0, 0), (width,0),(255, 255, 255), 10)
line3 = cv2.line(line2, (0,height), (width, height), (255, 255, 255), 10)
line4 = cv2.line(line3, (Breite, 0), (Breite, Höhe), (255, 255, 255), 10)
cv2.imshow('frame', line4)
wenn cv2.waitKey(40) == ord('q'):
Unterbrechung
Erfassung.Veröffentlichung()
cv2.zerstörenAllWindows()
Als nächstes zeichnen wir sowohl einen Kreis als auch ein Rechteck in das Video. Um ein Rechteck zu zeichnen, verwenden wir die cv2.Rechteck()-Funktion, die 5 Argumente verwendet, ähnlich wie die Zeile. Um einen Kreis zu zeichnen, verwenden wir die Funktion cv2.circle(), das auch 5 Argumente benötigt - das Quellvideo, den Mittelpunkt, den Radius, die Farbe und die Dicke.
CV2 importieren importerfassen = cv2.VideoCapture('vtest.avi')
während Wahr:
ret, frame = erfassen.lesen()
width = int(capture.erhalten(3))
Höhe = int (Erfassung.holen(4))
Rechteck = cv2.Rechteck(Rahmen, (150, 15), (650, 550), (0,0,0), 11)
cv2.Kreis (Rechteck, (250, 250), 60, (0,0,0), 11)
cv2.imshow('frame', frame)
wenn cv2.waitKey(40) == ord('q'):
Unterbrechung
Erfassung.Veröffentlichung()
cv2.zerstörenAllWindows()
Jetzt fügen wir dem Video, das wir haben, etwas Text hinzu. Dazu müssen wir eine Schriftart angeben; hier haben wir cv2 gewählt.FONT_HERSHEY_SIMPLEX. Sobald die Schriftart ausgewählt ist, können wir die Funktion cv2 . verwenden.putText() um den Rest zu erledigen. Lebenslauf2.putText() benötigt 8 Argumente - das Quellvideo, den Text, den Sie schreiben möchten, die gewünschte Position, die Schriftart, die Vergrößerung, die Farbe, die Dicke und cv2.LINE_AA (dadurch sieht alles besser aus).
CV2 importieren importerfassen = cv2.VideoCapture('vtest.avi')
während Wahr:
ret, frame = erfassen.lesen()
width = int(capture.erhalten(3))
Höhe = int (Erfassung.holen(4))
Schriftart = cv2.FONT_HERSHEY_SIMPLEX
Bild = cv2.putText(frame, "VTEST.AVI", (200, 200), Schriftart, 4, (0,0,0), 5, cv2.LINE_AA)
cv2.imshow('rahmen', bild)
wenn cv2.waitKey(40) == ord('q'):
Unterbrechung
Erfassung.Veröffentlichung()
cv2.zerstörenAllWindows()
OpenCV ist zu vielen großartigen Dingen fähig, bei denen man irgendwo anfangen muss. Es könnte lernen, Bilder und Videos zu erstellen und zu speichern. In diesem Tutorial haben wir die Grundlagen der Computer Vision gelernt.
Viel Spaß beim Codieren!