OpenCV-Webcam

Salman Mehmood 13 Juni 2022
OpenCV-Webcam

In dieser kurzen Demonstration lernen wir, wie man mit Hilfe von Python und OpenCV auf eine Webcam zugreift und diesen Live-Feed anzeigt.

Greifen Sie mit Hilfe von Python und OpenCV auf die Webcam zu

Wann immer wir an einem Computer-Vision-Projekt arbeiten, bei dem wir auf Live-Kamera-Feeds zugreifen müssen, wenn wir die Gesichtsmaskenerkennung durchführen möchten, oder wenn wir ein Projekt entwerfen, bei dem wir die Erkennung sozialer Distanz durchführen möchten.

In diesem Fall müssen wir auf die Live-Feeds unserer Kamera zugreifen, und welche Live-Feeds wir auch immer von unserer Kamera erhalten, dann kann die nächste Anweisung für andere Zwecke verwendet werden.

Sehen wir uns den Code für den Zugriff auf den Echtzeit-Kamera-Feed mit OpenCV an. Sobald wir die opencv-Bibliothek importiert haben, müssen wir die VideoCapture()-Methode aus der opencv-Bibliothek verwenden.

Es erfasst das Video aus verschiedenen Quellen. Es kann ein Video von Ihrem lokalen Computersystem oder ein Video von der Kamera Ihres Laptops aufnehmen, oder Sie können Videos von jeder IP-basierten Kamera aufnehmen.

Wir müssen die Quelle der Videoaufnahme in Klammern angeben.

WC = cv2.VideoCapture(0)

Jetzt können Sie sehen, dass wir die Quelle 0 bereitgestellt haben, was bedeutet, dass sie auf die Standardkamera unseres Laptops zugreift. Wenn wir auf ein im Computersystem gespeichertes Video zugreifen möchten, können wir den vollständigen Pfad unseres Videos als Zeichenfolge übergeben.

Wenn Sie auf eine IP-basierte Kamera zugreifen möchten, müssen Sie den vollständigen Pfad Ihrer IP-basierten Kamera angeben. Wir betrachten eine Dummy-Adresse, und es wäre ungefähr so.

WC = cv2.VideoCapture("https://3.4.5.6/cam2")

Aber in diesem Artikel werden wir versuchen, auf die Standardkamera unseres Laptops zuzugreifen, und dazu müssen wir die Quelle auf 0 setzen. Es erfasst die Live-Feeds von der Kamera.

Sobald wir das Video aufgenommen haben, speichern wir es in einem Objekt und versuchen danach, jeden Frame aus dem Video oder dem Live-Feed, den wir von der Kamera erhalten, zu lesen.

Das Video ist nichts anderes als eine Folge von Bildern, und im Bereich Computer Vision nennen wir das Frames.

Jetzt schreiben wir eine Menge Code in die while-Schleife; Es liest die Live-Feeds einer Kamera unendlich weiter. Wir lesen die Frames aus dem Objekt WC mit der Methode read(), und dieser Frame ist nichts anderes als ein Bild.

while True:
    # this will read images/frames one by one
    RET, F = WC.read()
    cv2.imshow("Live Feeds", F)

Die nächste Anweisung zeigt diese Bilder mit Hilfe der Methode imshow() an, die zwei Argumente hat. Einer ist der Fenstername, der in der oberen rechten Ecke erscheint, und der zweite ist der Inhalt des Bildes, das numpy-Array.

In der nächsten Anweisung erhalten wir die Feeds von einer Live-Kamera, die weiterhin Frames oder Bilder in unserem Programm anzeigt. Wir müssen diese Schleife unterbrechen, um diese Endlosschleife oder die Live-Feeds der Kamera zu stoppen.

Wir müssen v2.waitKey(1) verwenden, was das Fenster bis zu unserer Aktion geöffnet hält, wenn wir erwähnen, dass die Taste, die wir auf unserer Tastatur drücken, der Ausgang aus der while-Schleife sein soll.

Wenn wir die definierte Taste drücken, werden die Live-Feeds, auf die wir von einer Kamera zugreifen, automatisch gestoppt.

Am Ende des Codes veröffentlichen wir unser Objekt WC. Wir rufen die Methode destroyAllWindows() auf, die alle Fenster zerstört, die wir geöffnet haben, um unsere Live-Feeds anzuzeigen.

import numpy as np
import cv2

# Capture video from storage/laptop camera/IP based camera
WC = cv2.VideoCapture(0)

while True:
    # this will read images/frames one by one
    RET, F = WC.read()
    cv2.imshow("Live Feeds", F)
    KEY = cv2.waitKey(1)  # wait for key press
    if KEY == ord("q"):
        break
WC.release()
cv2.destroyAllWindows()

Jetzt können wir sehen, dass die Kamera Echtzeitvideos aufnimmt.

Greifen Sie mit Python und OpenCV auf die Webcam zu

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn