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:
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:
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.
Verwandter Artikel - Python OpenCV
- Bildmaskierung in OpenCV
- Kein Modul mit dem Namen CV2 in Mac in Python
- OpenCV ArUco-Marker
- OpenCV Canny in Python
- OpenCV-contrib-Modul in Python
- OpenCV-Paketkonfiguration