Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Computer-Vision-Bibliothek opencv in Python

Detaillierte Erläuterung der Computer-Vision-Bibliothek opencv in Python

PHPz
PHPzOriginal
2023-06-10 20:09:053296Durchsuche

Computer Vision ist ein Zweig der künstlichen Intelligenz, der sich der Verwendung von Computern zur Simulation und Realisierung der Funktionen des menschlichen visuellen Systems widmet. Im Kontext der Entwicklung moderner Wissenschaft und Technologie wird Computer Vision in verschiedenen Bereichen wie Robotik, Sicherheit, medizinische Versorgung, autonomes Fahren usw. häufig eingesetzt.

OpenCV (Open Source Computer Vision) ist eine plattformübergreifende Open-Source-Computer-Vision-Bibliothek, die von der Intel Corporation initiiert und verwaltet wird. Es bietet umfangreiche Bildverarbeitungs- und Computer-Vision-Funktionen, einschließlich Bilderkennung, Merkmalsextraktion, Zielverfolgung, Gesichtserkennung usw. Die Popularität von Python in den Bereichen maschinelles Lernen und Datenwissenschaft hat auch dazu geführt, dass die Version von OpenCV in Python viel Aufmerksamkeit erregt. In diesem Artikel wird die Verwendung und spezifische Implementierung von OpenCV in Python vorgestellt.

OpenCV installieren

Bevor Sie OpenCV verwenden, müssen Sie die relevanten Bibliotheken und Abhängigkeiten installieren. In Python können Sie zum Installieren den Befehl pip verwenden.

pip install opencv-python

pip install opencv-contrib-python

Diese beiden Befehle installieren die Basisversion bzw. die erweiterte Version von OpenCV. Die erweiterte Version enthält einige Funktionen, die in der Basisversion nicht zu finden sind.

Bilder lesen und anzeigen

Der erste Schritt bei der Verwendung von OpenCV zum Verarbeiten von Bildern besteht darin, das Bild in das Programm einzulesen. OpenCV bietet die Funktion cv2.imread() zum Lesen von Bildern. Die gelesenen Bilder werden in Form von NumPy-Arrays gespeichert.

import cv2

img = cv2.imread('example.jpg')

Nachdem Sie das Bild gelesen haben, können Sie die Funktion cv2.imshow() verwenden, um das Bild anzuzeigen. Diese Funktion benötigt zwei Parameter: Der erste Parameter ist der Name des Fensters und der zweite Parameter ist das anzuzeigende Bild.

cv2.imshow('example', img)

Verwenden Sie die Funktion cv2.waitKey(), um darauf zu warten, dass der Benutzer eine beliebige Taste drückt. Das Fenster wird dann automatisch geschlossen.

cv2.waitKey(0)

Die Größe des Bildes kann mit img.shape ermittelt werden, das ein Triplett (Höhe, Breite, Tiefe) zurückgibt, wobei die Höhe die Höhe des Bildes und die Breite die Breite des Bildes darstellt Bild und Tiefe stellt die Anzahl der Bits pro Pixel dar. Die Tiefe beträgt 3, wenn das Bild ein Farbbild ist, und 1 für ein Graustufenbild.

Bildverarbeitung und -manipulation

OpenCV bietet eine Fülle von Bildverarbeitungs- und -manipulationsfunktionen. Die einfachste davon ist die Graustufenverarbeitung, bei der Farbbilder in Graustufenbilder umgewandelt werden. Dazu ist die Verwendung der Funktion cv2.cvtColor() erforderlich.

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.COLOR_BGR2GRAY wird in der Graustufenverarbeitung definiert, wobei cv2 der Name des OpenCV-Moduls ist. Das integrierte Bildformat von OpenCV ist BGR, nicht das übliche RGB, daher ist die Reihenfolge seiner Parameter BGR.

Zusätzlich zur Graustufenverarbeitung gibt es auch einige häufig verwendete Bedienfunktionen, wie z. B. das Anpassen der Bildgröße, Drehung, Übersetzung usw.

Resize-Operation des Bildes

resized = cv2.resize(img, (600, 600), interpolation=cv2.INTER_AREA)

Flip-Operation des Bildes

flipped = cv2.flip(img, -1)

Image Rotationsoperation

(rows, cols) = img.shape[:2]
M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 45, 1)
rotated = cv2.warpAffine(img, M, ( cols, rows))

Feature-Extraktion und -Erkennung von Bildern

Zusätzlich zur grundlegenden Bildverarbeitung und -operation bietet OpenCV auch verschiedene Funktionen zur Feature-Extraktion und -Erkennung. Diese Funktionen können Merkmale in Bildern erkennen und extrahieren, z. B. Ecken, Linien und Konturen.

Eckenerkennung ist eine Technologie, die in den Bereichen maschinelles Sehen und Computersehen weit verbreitet ist. Sie kann für Anwendungen wie Bildabgleich, Zielverfolgung und dreidimensionale Rekonstruktion verwendet werden. OpenCV stellt die Funktion cv2.goodFeaturesToTrack() zur Verfügung, um die Eckenerkennung abzuschließen.

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.int0(corners)

Unter diesen liegt der Parameter Grau nach der Graustufenverarbeitung Bild, Parameter 100 stellt die Anzahl der erkannten Eckpunkte dar, Parameter 0,01 ist QualityLevel, wird zur Darstellung des Eckqualitätsfaktors verwendet, Parameter 10 ist minDistance, stellt den Mindestabstand zwischen zwei Eckpunkten dar.

Darüber hinaus gibt es weitere Methoden zur Merkmalserkennung wie SIFT, SURF und ORB usw.

Fazit

OpenCV ist eine leistungsstarke Computer-Vision-Bibliothek, die in verschiedenen Bereichen weit verbreitet ist. In Python können mit OpenCV Bildverarbeitungs- und Computer-Vision-Aufgaben einfach implementiert werden. Dieser Artikel stellt die grundlegende Verwendung und allgemeine Operationen von OpenCV in Python vor. Ich hoffe, dass er den Lesern hilfreich sein wird.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Computer-Vision-Bibliothek opencv in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn