OpenCV Mettre du texte sur les images

Ammar Ali 12 avril 2022
OpenCV Mettre du texte sur les images

Ce tutoriel discutera de la mise de texte sur des images à l’aide de la fonction putText() d’OpenCV en Python.

Utilisez la fonction putText() d’Opencv pour mettre du texte sur des images en Python

Nous pouvons utiliser la fonction putText() d’OpenCV pour mettre du texte sur une image avec la couleur, la taille de police, la famille de polices et l’emplacement souhaités. Le premier argument de la fonction putText() est l’image dans laquelle on veut mettre le texte.

Le deuxième argument est le texte (chaîne) que nous voulons mettre sur l’image. Le troisième argument est l’emplacement sur lequel nous voulons mettre le texte, et par défaut, l’origine de l’emplacement est en haut à gauche de l’image.

La valeur de l’emplacement doit être définie à l’aide de deux entiers dans lesquels le premier entier définit la position de l’axe des x et le second entier définit la position de l’axe des y.

Par exemple, si nous définissons l’emplacement sur (10,20), il placera le texte à 10 pixels sur l’axe des x et à 20 pixels sur l’axe des y à partir de l’origine, qui se trouve en haut à gauche de l’image.

Le quatrième argument est la famille de polices, qui peut provenir des familles de polices par défaut d’OpenCV comme cv2.FONT_HERSHEY_SIMPLEX. Le cinquième argument est la taille de la police ou l’échelle de la police, et sa valeur doit être du type de données double.

Le sixième argument est la couleur du texte, et sa valeur doit être un triplet RVB comme (255,255,255) pour la couleur blanche.

Tous les arguments ci-dessus sont requis, et si un ou plusieurs arguments manquent, il y aura une erreur. Il existe également trois arguments optionnels que nous pouvons définir, et si nous ne définissons pas la valeur de l’argument optionnel, une valeur par défaut sera utilisée.

Le premier argument facultatif est l’épaisseur de la ligne et sa valeur doit être un entier par défaut. Le deuxième argument facultatif est le type ou le style de ligne, défini par défaut sur cv2.LINE_8.

Le troisième argument facultatif est utilisé pour définir la position en bas à gauche comme origine si c’est vrai, mais par défaut, il est défini sur faux et il retournera le texte.

Par exemple, créons une image de couleur noire de 512 par 512 en utilisant la fonction zeros() de la bibliothèque numpy, puis mettons du texte aléatoire dessus en utilisant la fonction putText(). Voir le code ci-dessous.

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)

Production :

texte sur image

Nous avons utilisé une image noire dans l’exemple ci-dessus, mais nous pouvons également utiliser n’importe quelle image couleur en utilisant la fonction imread(). Nous pouvons également modifier la valeur des arguments optionnels.

Par exemple, changeons l’épaisseur de la ligne en 3. Le type de ligne en cv2.LINE_AA pour la ligne antialiasing, et retournons le texte en utilisant le dernier argument et en le définissant sur vrai. Voir le code ci-dessous.

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)

Production :

argument facultatif de la fonction puttext

Vous pouvez voir dans le code que nous devons également redéfinir l’emplacement du texte afin qu’il soit visible. Consultez ce lien pour plus de détails sur les familles de polices prises en charge par OpenCV.

Auteur: 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

Article connexe - Python OpenCV

Article connexe - OpenCV Image