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. |
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)