OpenCV - Python dessine un rectangle, dessine du texte, obtient la taille du texte [rectangle (), getTextSize (), putText ()]

Introduisez trois fonctions: rectangle (), getTextSize (), putText ()

1. Présentation des fonctions

cv2.rectangle (img, pt1, pt2, couleur, épaisseur = Aucun, lineType = Aucun, décalage = Aucun)

paramètre Explication
img L'image à dessiner
pt1 Les coordonnées du coin supérieur gauche du rectangle (xmin, ymin) (x_ (min), y_ (min))( xm je n,etm je n)
pt2 Les coordonnées du coin inférieur droit du rectangle (xmax, ymax) (x_ (max), y_ (max))( xm a x,etm a x)
Couleur La couleur / luminosité de la bordure rectangulaire ou du remplissage
épaisseur L'épaisseur de la bordure du rectangle. La valeur négative signifie remplir le rectangle de couleur
type de ligne Style de ligne de bordure rectangulaire
décalage Nombre de décimales en coordonnées

retval, baseLine = cv2.getTextSize (texte, fontFace, fontScale, épaisseur)

Calculer la largeur et la hauteur du texte

paramètre Explication
texte Le texte à calculer
fonFace Police à utiliser
fontScale Multipliez le facteur d'échelle par la taille de base d'une police spécifique
épaisseur L'épaisseur de la ligne de texte
retval Valeur de retour, tuple, largeur et hauteur de la police (largeur, hauteur)
baseLine Par rapport à la coordonnée y du texte du bas, la hauteur du texte va de baseLine au haut du texte

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

Écrivez du texte sur l'image, certains paramètres sont les mêmes que ci-dessus

paramètre Explication
org Les coordonnées du coin inférieur gauche du texte (xmin, ymax) (x_ (min), y_ (max))( xm je n,etm a x)
bottomLeftOrigin Lorsque True, l'origine de l'image est le coin inférieur gauche; sinon, le point le plus éloigné de l'image est le coin supérieur gauche (par défaut)

2. Exemple de fonction

Utilisez ces trois fonctions pour dessiner une zone rectangulaire et une zone de texte rectangulaire sur l'image

# -*- 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)

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/m0_38007695/article/details/107093108
conseillé
Classement