Zeichnen ein Rechteck mit dem OpenCV-Modul in Python

Vaibhav Vaibhav 22 Januar 2022
Zeichnen ein Rechteck mit dem OpenCV-Modul in Python

OpenCV ist eine Echtzeit-Computer-Vision-Bibliothek. Es ist für Programmiersprachen wie Python, Java und C++ verfügbar. Mit OpenCV können wir Formen zeichnen und Bilder effizient verarbeiten. In diesem Artikel erfahren Sie, wie Sie mit dem OpenCV-Modul Rechtecke zeichnen.

Rechtecke mit OpenCV zeichnen

Das OpenCV-Modul verfügt über eine Funktion rectangle(), die zum Zeichnen von Rechtecken verwendet werden kann. Es gibt ein Bildobjekt zurück. Es akzeptiert die folgenden Argumente.

  • img: Es ist das Bildobjekt, über dem das Rechteck erstellt werden soll.
  • pt1: Dies sind die Startkoordinaten des Rechtecks. Es akzeptiert ein Tupel mit einem x-Koordinatenwert und einem y-Koordinatenwert.
  • pt2: Dies sind die Endkoordinaten des Rechtecks. Es akzeptiert ein Tupel mit einem x-Koordinatenwert und einem y-Koordinatenwert.
  • color: Es ist ein Tupel, das die Farbe des Rechtecks ​​repräsentiert. OpenCV berücksichtigt standardmäßig das BGR-Format. Daher müssen die Werte in BGR anstelle des allgemeinen RGB-Formats eingegeben werden. Zum Beispiel steht (255, 0, 0) für Blau und (0, 0, 255) für Rot.
  • thickness: Dies ist die Dicke des Randes des Rechtecks. Seine Einheiten sind px. Die Dicke -1 füllt das Rechteck mit der angegebenen Farbe. Bei anderen positiven Dickenwerten wird das Rechteck nicht mit der angegebenen Farbe gefüllt. Es gilt nur für die Grenze.

Sehen wir uns nun an, wie wir diese Funktion praktisch verwenden können, um Rechtecke zu zeichnen. Ein Beispiel finden Sie im folgenden Code.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 0, 255)
thickness = 3
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

Der obige Code lädt zuerst das Bild aus dem angegebenen Pfad, wandelt die BGR-Farbreihenfolge mit cv2.COLOR_BGR2RGB in die RGB-Farbreihenfolge um und zeichnet dann ein Rechteck der Grösse 360 x 360 über das Bild. Beachten Sie, dass der Dickenwert positiv ist. Das bedeutet, dass das Rechteck keine Füllfarbe hat.

Außerdem haben wir diese Anweisung cv2.waitKey(0) am Ende des Codes. Es verhindert, dass das Bild automatisch geschlossen wird, sobald das Programm ausgeführt wird. Wird das Programm ohne diese Anweisung ausgeführt, erscheint das geänderte Bild und wird dann sofort geschlossen.

Ausgabe:

Rechteck in opencv cv2 python zeichnen

Was ist, wenn wir den Wert der Dicke auf -1 ändern? In diesem Fall hat das Rechteck eine Füllfarbe. Siehe den folgenden Code für dasselbe.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 255, 255)
thickness = -1
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

Ausgabe:

Rechteck in opencv CV2 Python zeichnen - Dicke auf -1 . setzen

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python OpenCV