OpenCV Text auf Bilder setzen

Ammar Ali 12 April 2022
OpenCV Text auf Bilder setzen

In diesem Tutorial wird das Einfügen von Text in Bilder mit der Funktion putText() von OpenCV in Python erläutert.

Verwenden Sie die putText()-Funktion von Opencv, um Text auf Bildern in Python zu platzieren

Wir können die Funktion putText() von OpenCV verwenden, um Text mit unserer gewünschten Farbe, Schriftgröße, Schriftfamilie und Position auf ein Bild zu setzen. Das erste Argument der Funktion putText() ist das Bild, in das der Text eingefügt werden soll.

Das zweite Argument ist der Text (String), den wir auf das Bild setzen wollen. Das dritte Argument ist die Position, an der wir den Text platzieren möchten, und standardmäßig ist der Ursprung der Position oben links im Bild.

Der Wert der Position sollte mit zwei Ganzzahlen festgelegt werden, wobei die erste Ganzzahl die Position auf der x-Achse und die zweite Ganzzahl die Position auf der y-Achse definiert.

Wenn wir die Position beispielsweise auf (10,20) setzen, wird der Text 10 Pixel entfernt auf der x-Achse und 20 Pixel entfernt auf der y-Achse vom Ursprung platziert, der sich oben links im Bild befindet.

Das vierte Argument ist die Schriftfamilie, die aus den Standard-Schriftfamilien von OpenCV wie cv2.FONT_HERSHEY_SIMPLEX stammen kann. Das fünfte Argument ist die Schriftgröße oder Schriftskalierung, und sein Wert sollte vom Datentyp double sein.

Das sechste Argument ist die Farbe des Textes und sein Wert sollte ein RGB-Triplett wie (255,255,255) für weiße Farbe sein.

Alle oben genannten Argumente sind erforderlich, und wenn ein oder mehrere Argumente fehlen, wird ein Fehler ausgegeben. Es gibt auch drei optionale Argumente, die wir festlegen können, und wenn wir den Wert des optionalen Arguments nicht festlegen, wird ein Standardwert verwendet.

Das erste optionale Argument ist die Dicke der Linie, und sein Wert sollte standardmäßig eine Ganzzahl sein. Das zweite optionale Argument ist der Linientyp oder -stil, der standardmäßig auf cv2.LINE_8 eingestellt ist.

Das dritte optionale Argument wird verwendet, um die untere linke Position als Ursprung festzulegen, wenn es wahr ist, aber standardmäßig auf falsch gesetzt ist und den Text umdreht.

Lassen Sie uns zum Beispiel ein schwarzes 512-mal-512-Bild mit der zeros()-Funktion der numpy-Bibliothek erstellen und dann mit der putText()-Funktion zufälligen Text darauf einfügen. Siehe Code unten.

import numpy as np
import cv2

img = np.zeros((512, 512, 3), np.uint8)

font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 500)
fontScale = 2
fontColor = (255, 255, 0)

cv2.putText(img, "Hello World!", position, font, fontScale, fontColor)

cv2.imshow("img", img)
cv2.waitKey(0)

Ausgabe:

Text auf Bild

Wir haben im obigen Beispiel ein schwarzes Bild verwendet, aber wir können mit der Funktion imread() auch jedes Farbbild verwenden. Wir können auch den Wert der optionalen Argumente ändern.

Ändern wir beispielsweise die Dicke der Linie auf 3. Der Linientyp ist cv2.LINE_AA für antialiased-Linie, und wir kehren den Text um, indem wir das letzte Argument verwenden und es auf true setzen. Siehe Code unten.

import numpy as np
import cv2

img = np.zeros((512, 512, 3), np.uint8)

font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 450)
fontScale = 2
fontColor = (255, 255, 0)

cv2.putText(
    img, "Hello World!", position, font, fontScale, fontColor, 3, cv2.LINE_AA, True
)

cv2.imshow("img", img)
cv2.waitKey(0)

Ausgabe:

optionales Argument der puttext-Funktion

Sie können im Code sehen, dass wir auch die Position des Textes neu setzen müssen, damit er sichtbar sein soll. Unter diesem Link finden Sie weitere Einzelheiten zu den von OpenCV unterstützten Schriftfamilien.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - Python OpenCV

Verwandter Artikel - OpenCV Image