OpenCV--Python 绘制矩形,绘制文本,获取文本大小【rectangle(),getTextSize(),putText()】

介绍三个函数:rectangle(),getTextSize(),putText()

1. 函数介绍

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

参数 解释
img 要绘制的图像
pt1 矩形的左上角坐标 ( x m i n , y m i n ) (x_{min}, y_{min}) (xmin,ymin)
pt2 矩形的右下角坐标 ( x m a x , y m a x ) (x_{max},y_{max}) (xmax,ymax)
color 矩形边框或者填充的颜色/亮度
thickness 矩形边框的粗细。负值表示使用 color 填充矩形
lineType 矩形边框的线型
shift 坐标中的小数位数

retval, baseLine = cv2.getTextSize(text, fontFace, fontScale, thickness)

计算文本的宽和高

参数 解释
text 要计算的文本
fonFace 要使用的字体
fontScale 乘以特定字体基本大小的比例因子
thickness 文本的线的粗细
retval 返回值,元组,字体的宽高 (width, height)
baseLine 相对于最底端文本的 y 坐标,文本的高是从baseLine到文本最顶端

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

在图片上写文本,部分参数同上

参数 解释
org 文本的左下角坐标 ( x m i n , y m a x ) (x_{min}, y_{max}) (xmin,ymax)
bottomLeftOrigin True时,图像原点为左下角;否则, 图像远点为左上角(默认)

2. 函数示例

使用这三个函数在图像上绘制矩形框以及矩形框的文本

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_38007695/article/details/107093108