OpenCV mit Python: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 35: Zeile 35:
<code>deactivate</code> deaktiviert werden.
<code>deactivate</code> deaktiviert werden.
== Minimalbeispiel für die Gesichtserkennung mittels Webcam==  
== Minimalbeispiel für die Gesichtserkennung mittels Webcam==  
<code>import cv2
<syntaxhighlight lang="python">
import cv2


# Lade des  vortrainierten Models für die Gesichtserkennung
# Lade das vortrainierte Modell für die Gesichtserkennung
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')


# Öffne die Webcam (Kamera 0) -> Für Video Speicherort 'C:/..' angeben. -> Netzwerkkamera z.b rtsp://<benutzer>:<passwort>@<ip-adresse>:<port>/<pfad>
# Öffne die Webcam (Kamera 0) -> Für Video Speicherort 'C:/..' angeben.
# Netzwerkkamera z.B.: rtsp://<benutzer>:<passwort>@<ip-adresse>:<port>/<pfad>
cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture(0)


Zeile 49: Zeile 51:
print("Beenden mit der Taste Q")
print("Beenden mit der Taste Q")


#SChleife für kontinuierliche erkennung
# Schleife für kontinuierliche Erkennung
while True:
while True:
     ret, frame = cap.read()
     ret, frame = cap.read()
Zeile 56: Zeile 58:
         break
         break


     # Farbkonvertierung z.b in RGB oder GRAY
     # Farbkonvertierung z.B. in GRAY
     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


     # Speiuchern der erkannten Gesichter
     # Speichern der erkannten Gesichter
     faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
     faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))


Zeile 66: Zeile 68:
         cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
         cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)


     cv2.imshow('Gesichterkennung', frame) # ANzeigen
    # Bild mit erkannter Gesichtsanzeige
     cv2.imshow('Gesichterkennung', frame)
   
     # Beende mit der Taste 'q'
     # Beende mit der Taste 'q'
     if cv2.waitKey(1) & 0xFF == ord('q'):
     if cv2.waitKey(1) & 0xFF == ord('q'):
         break
         break


# Sicheres beenden und freigeben
# Sicheres Beenden und Freigeben
cap.release()
cap.release()
cv2.destroyAllWindows()
cv2.destroyAllWindows()
</code>
</syntaxhighlight>

Aktuelle Version vom 15. Januar 2025, 12:05 Uhr

OpenCV mit Python
OpenCV Logo[1]
docs.opencv.org

OpenCV (Open Source Computer Vision Library) ist eine freie und weit verbreitete Softwarebibliothek zur Bild- und Videoverarbeitung, die eine Vielzahl von Algorithmen und Werkzeugen für Anwendungen wie Objekterkennung, Gesichtserkennung, Bewegungsverfolgung, Bildsegmentierung und maschinelles Lernen bereitstellt. Die Bibliothek kann unter anderem in den Programmiersprachen C++ oder Python genutzt werden[2] .

Die Nutzung von OpenCV in Kombination mit den leistungsstarken Bibliotheken des Python-Ökosystems (beispielsweise NumPy, SciPy) ermöglicht eine effiziente Bilddatenanalyse und -manipulation. Die Bibliothek bietet in Verbindung mit den Python-Bibliotheken eine benutzerfreundliche Möglichkeit, auf alle wesentlichen Funktionen von OpenCV zuzugreifen. Dies umfasst grundlegende Operationen wie das Lesen, Schreiben oder Analysieren von Bildern und Videos[2]. Darüber hinaus lässt sich der Funktionsumfang von OpenCV ohne großen Aufwand um die Deep Learning-Funktion mit zum Beispiel der Mediapipe-Bibliothek erweitern, die bereits vortrainierte Modelle für die Personenerkennung, Gesichts- oder Objekterkennung bietet[3] [4] . Ein wesentliches Merkmal von OpenCV ist seine Effizienz, die es erlaubt, große Mengen an Bild- und Videodaten in Echtzeit zu verarbeiten. Diese Eignung prädestiniert die Bibliothek insbesondere für den Einsatz in Fahrzeugprojekten oder der Personenerkennung, beispielsweise im Rahmen einer Zutrittskontrolle.

In Python beginnt die Arbeit mit OpenCV typischerweise mit der Installation des Moduls "opencv-python", das die grundlegende Funktionalität der Bibliothek bereitstellt.

Die Installation von OpenCV kann beispielsweise über pip erfolgen[2]:
Windows:

pip install opencv-python

Raspberry Pi: Leider lässt sich OpenCV nicht direkt über den pip-Befehl beziehen. Der einfachste und schnellste Weg ist, OpenCV in einer virtuellen Umgebung zu installieren:

python -m venv opencv_env
source opencv_env/bin/activate

Wenn die virtuelle Umgebung erfolgreich aktiviert wurde, kann OpenCV mit dem Befehl pip install opencv-python installiert und anschließend mit dem Befehl deactivate deaktiviert werden.

Minimalbeispiel für die Gesichtserkennung mittels Webcam

import cv2

# Lade das vortrainierte Modell für die Gesichtserkennung
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# Öffne die Webcam (Kamera 0) -> Für Video Speicherort 'C:/..' angeben.
# Netzwerkkamera z.B.: rtsp://<benutzer>:<passwort>@<ip-adresse>:<port>/<pfad>
cap = cv2.VideoCapture(0)

if not cap.isOpened():
    print("Fehler: Kamera konnte nicht geöffnet werden.")
    exit()

print("Beenden mit der Taste Q")

# Schleife für kontinuierliche Erkennung
while True:
    ret, frame = cap.read()
    if not ret:
        print("Fehler: Frame konnte nicht gelesen werden.")
        break

    # Farbkonvertierung z.B. in GRAY
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Speichern der erkannten Gesichter
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # Rechteck um das Gesicht setzen
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)

    # Bild mit erkannter Gesichtsanzeige
    cv2.imshow('Gesichterkennung', frame)
    
    # Beende mit der Taste 'q'
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Sicheres Beenden und Freigeben
cap.release()
cv2.destroyAllWindows()
  1. OpenCV, 2024. Wikipedia [online]. [Zugriff am: 15. Januar 2025]. Verfügbar unter: https://de.wikipedia.org/w/index.php?title=OpenCV&oldid=251417753
  2. 2,0 2,1 2,2 url=https://docs.opencv.org/3.4/d6/d00/tutorial_py_root.html |title=OpenCV-Python Tutorials |website=OpenCV Documentation |publisher=OpenCV |access-date=15. Januar 2025
  3. url=https://pypi.org/project/mediapipe/ |title=MediaPipe |website=PyPI |publisher=Python Software Foundation |access-date=15. Januar 2025
  4. url=https://ai.google.dev/edge/mediapipe/solutions/guide?hl=de |title=MediaPipe-Lösungsleitfaden |website=Google AI Edge |publisher=Google |access-date=15. Januar 2025