OpenCV poner texto en las imágenes

Ammar Ali 12 abril 2022
OpenCV poner texto en las imágenes

Este tutorial discutirá cómo poner texto en las imágenes usando la función putText() de OpenCV en Python.

Use la función putText() de Opencv para poner texto en imágenes en Python

Podemos usar la función putText() de OpenCV para poner texto en una imagen con el color, el tamaño de fuente, la familia de fuentes y la ubicación que deseemos. El primer argumento de la función putText() es la imagen a la que queremos poner el texto.

El segundo argumento es el texto (cadena) que queremos poner en la imagen. El tercer argumento es la ubicación en la que queremos colocar el texto y, de forma predeterminada, el origen de la ubicación es la parte superior izquierda de la imagen.

El valor de la ubicación debe establecerse utilizando dos enteros en los que el primer entero define la posición del eje x y el segundo entero define la posición del eje y.

Por ejemplo, si establecemos la ubicación en (10,20), colocará el texto a 10 píxeles de distancia en el eje x y a 20 píxeles de distancia en el eje y desde el origen, que se encuentra en la parte superior izquierda de la imagen.

El cuarto argumento es la familia de fuentes, que puede ser de las familias de fuentes predeterminadas de OpenCV como cv2.FONT_HERSHEY_SIMPLEX. El quinto argumento es el tamaño de fuente o escala de fuente, y su valor debe ser del tipo de datos doble.

El sexto argumento es el color del texto, y su valor debe ser un triplete RGB como (255,255,255) para el color blanco.

Se requieren todos los argumentos anteriores, y si faltan uno o más argumentos, habrá un error. También hay tres argumentos opcionales que podemos establecer, y si no establecemos el valor del argumento opcional, se usará un valor predeterminado.

El primer argumento opcional es el grosor de la línea y su valor debe ser un número entero por defecto. El segundo argumento opcional es el tipo o estilo de línea, establecido en cv2.LINE_8 por defecto.

El tercer argumento opcional se usa para establecer la posición inferior izquierda como origen si es verdadero, pero de forma predeterminada, se establece en falso y cambiará el texto.

Por ejemplo, vamos a crear una imagen de color negro de 512 por 512 usando la función zeros() de la biblioteca numpy y luego ponerle un texto aleatorio usando la función putText(). Vea el código a continuación.

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)

Producción:

texto en la imagen

Hemos usado una imagen en negro en el ejemplo anterior, pero también podemos usar cualquier imagen en color usando la función imread(). También podemos cambiar el valor de los argumentos opcionales.

Por ejemplo, cambiemos el grosor de la línea a 3. El tipo de línea a cv2.LINE_AA para la línea antialiased, y volteemos el texto usando el último argumento y estableciéndolo en verdadero. Vea el código a continuación.

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)

Producción:

argumento opcional de la función puttext

Puede ver en el código que también tenemos que establecer la ubicación del texto nuevamente para que sea visible. Consulte este enlace para obtener más detalles sobre las familias de fuentes compatibles con OpenCV.

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

Artículo relacionado - Python OpenCV

Artículo relacionado - OpenCV Image