OpenCV: Python dibuja un rectángulo, dibuja texto, obtiene el tamaño del texto [rectangle (), getTextSize (), putText ()]

Introduce tres funciones: rectangle (), getTextSize (), putText ()

1. Introducción a la función

cv2.rectangle (img, pt1, pt2, color, thick = None, lineType = None, shift = None)

parámetro Explicación
img La imagen a dibujar
pt1 Las coordenadas de la esquina superior izquierda del rectángulo (xmin, ymin) (x_ (min), y_ (min))( xm i n,ym i n)
pt2 Las coordenadas de la esquina inferior derecha del rectángulo (xmax, ymax) (x_ (max), y_ (max))( xm un x,ym un x)
color El color / brillo del borde o relleno rectangular
grosor El grosor del borde del rectángulo. Valor negativo significa llenar el rectángulo con color.
tipo de línea Estilo de línea de borde rectangular
cambio Número de posiciones decimales en coordenadas

retval, baseLine = cv2.getTextSize (texto, fontFace, fontScale, grosor)

Calcule el ancho y alto del texto.

parámetro Explicación
texto El texto a calcular
fonFace Fuente para usar
fontScale Multiplica el factor de escala por el tamaño básico de una fuente específica.
grosor El grosor de la línea de texto.
retval Valor de retorno, tupla, ancho y alto de fuente (ancho, alto)
base En relación con la coordenada y del texto inferior, la altura del texto es desde la línea base hasta la parte superior del texto.

putText (img, text, org, fontFace, fontScale, color, thick = None, lineType = None, bottomLeftOrigin = None)

Escriba texto en la imagen, algunos parámetros son los mismos que los anteriores

parámetro Explicación
org Las coordenadas de la esquina inferior izquierda del texto (xmin, ymax) (x_ (min), y_ (max))( xm i n,ym un x)
bottomLeftOrigin Cuando es Verdadero, el origen de la imagen es la esquina inferior izquierda; de lo contrario, el punto más alejado de la imagen es la esquina superior izquierda (predeterminado)

2. Ejemplo de función

Utilice estas tres funciones para dibujar un cuadro rectangular y un texto de cuadro rectangular en la imagen

# -*- coding: utf-8 -*-

import numpy as np
import cv2 as cv

image = cv.imread('test.jpg')

pt1, pt2 = (423, 103), (531, 358)

text = 'Man 0.9'
fontFace = cv.FONT_HERSHEY_COMPLEX_SMALL
fontScale = 1
thickness = 1
# 绘制矩形框
cv.rectangle(image, pt1, pt2, thickness=2, color=(0, 255, 0))
# 计算文本的宽高,baseLine
retval, baseLine = cv.getTextSize(text,fontFace=fontFace,fontScale=fontScale, thickness=thickness)
# 计算覆盖文本的矩形框坐标
topleft = (pt1[0], pt1[1] - retval[1])
bottomright = (topleft[0] + retval[0], topleft[1] + retval[1])
cv.rectangle(image, (topleft[0], topleft[1] - baseLine), bottomright,thickness=-1, color=(0, 255, 0))
# 绘制文本
cv.putText(image, text, (pt1[0], pt1[1]-baseLine), fontScale=fontScale,fontFace=fontFace, thickness=thickness, color=(0,0,0))
cv.imwrite('test_.jpg', image)

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_38007695/article/details/107093108
Recomendado
Clasificación