Einführung
Willkommen zu diesem Tutorial zu OpenCV-Python! In diesem Tutorial werden einige grundlegende Operationen auf Bilder mit der OpenCV-Bibliothek in Python behandelt.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
Willkommen zu diesem Tutorial zu OpenCV-Python! In diesem Tutorial werden einige grundlegende Operationen auf Bilder mit der OpenCV-Bibliothek in Python behandelt.
Bevor Sie dieses Lab starten, müssen die Teilnehmer die Python-Shell im Terminal in /home/labex/project
öffnen
cd /home/labex/project
python3
Zunächst laden wir ein Bild und zeigen es mit OpenCV an:
import cv2
## Lade ein Bild
image = cv2.imread('image.jpg')
## Zeige das Bild an
cv2.imwrite('Original Image.jpg', image)
Um einen Pixelwert zuzugreifen, müssen wir einfach seine Koordinaten (x
, y
) angeben, wie folgt:
pixel_value = image[y, x]
Der Pixelwert ist ein Array, das die Farbkanäle (B
, G
, R
) enthält. Um einen Pixelwert zu ändern, weisen Sie einfach einen neuen Wert an die entsprechenden Koordinaten zu.
Hier ist ein Beispiel, um den Pixel [0:9, 0:9] auf rot zu setzen:
for x in range(10):
for y in range(10):
image[x, y] = [0, 0, 255] ## Setze den Pixel auf rot
cv2.imwrite('Modified Image.jpg', image)
Das ursprüngliche Bild sieht wie folgt aus:
Bild nach Änderung der Pixelwerte im Bereich [0:9,0:9]:
Die Benutzer können die Richtigkeit des Ergebnisses überprüfen, indem sie den folgenden Code ausführen.
Bild-Eigenschaften umfassen die Anzahl der Zeilen, Spalten und Kanäle, sowie den Datentyp des Bilds und die Gesamtzahl der Pixel.
Um die Form des Bilds (Zeilen
, Spalten
und Kanäle
) zuzugreifen, verwenden Sie das Attribut shape
:
height, width, channels = image.shape
print(height, width, channels)
## Ausgabe
## 360 640 3
Um die Gesamtzahl der Pixel zuzugreifen, verwenden Sie das Attribut size
:
total_pixels = image.size
print(total_pixels)
## Ausgabe
## 691200
Um den Datentyp des Bilds zuzugreifen, verwenden Sie das Attribut dtype
:
image_dtype = image.dtype
print(image_dtype)
## Ausgabe
## uint8
Ein Bereich von Interesse (ROI) ist ein Teilbild, das wir aus dem ursprünglichen Bild extrahieren können. Um einen ROI einzurichten, müssen wir einfach die Start- und Endkoordinaten angeben.
roi = image[start_y:end_y, start_x:end_x]
Beispielsweise können wir, um einen ROI von 100x100 Pixeln aus der oberen linken Ecke zu extrahieren, Folgendes tun:
roi = image[0:100, 0:100]
cv2.imwrite('ROI.jpg', roi)
Das generierte Bild ROI.jpg
sieht wie folgt aus:
Um ein Bild in seine Farbkanäle (B
, G
, R
) aufzuteilen, verwenden Sie die Funktion cv2.split()
:
b, g, r = cv2.split(image)
Wir können nun die einzelnen Kanäle mit cv2.imwrite()
anzeigen. Um die Kanäle wieder zu einem einzelnen Bild zusammenzuführen, verwenden Sie die Funktion cv2.merge()
:
merged_image = cv2.merge((b, g, r))
Beispielsweise können wir die Rot- und Blaukanäle tauschen, indem wir Folgendes tun:
swapped_image = cv2.merge((r, g, b))
cv2.imwrite('Swapped Channels Image.jpg', swapped_image)
Das generierte Bild Swapped Channels Image.jpg
sieht wie folgt aus:
Und das war's! Sie haben einige grundlegende Operationen mit Bildern mithilfe von OpenCV-Python gelernt. Dies sind wichtige Konzepte, die Sie verstehen sollten, wenn Sie mit Bildern in Anwendungen der computergestützten Vision und der Bildverarbeitung arbeiten. Indem Sie diese grundlegenden Operationen beherrschen, sind Sie gut auf dem Weg, um fortgeschrittene Bildverarbeitungsalgorithmen zu entwickeln.