OpenCV-Python 绘制矩形,绘制文本,获取文本大小【rectangle(),getTextSize(),putText()】
程序员文章站
2023-12-12 16:27:52
介绍三个函数:rectangle(),getTextSize(),putText()1. 函数介绍cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)参数解释img要绘制的图像pt1矩形的左上角坐标 (xmin,ymin)(x_{min}, y_{min})(xmin,ymin)pt2矩形的右下角坐标 (xmax,ymax)(x_{max},y_{max}...
介绍三个函数:rectangle(),getTextSize(),putText()
1. 函数介绍
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
参数 | 解释 |
---|---|
img | 要绘制的图像 |
pt1 | 矩形的左上角坐标 |
pt2 | 矩形的右下角坐标 |
color | 矩形边框或者填充的颜色/亮度 |
thickness | 矩形边框的粗细。负值表示使用 color 填充矩形 |
lineType | 矩形边框的线型 |
shift | 坐标中的小数位数 |
retval, baseLine = cv2.getTextSize(text, fontFace, fontScale, thickness)
计算文本的宽和高
参数 | 解释 |
---|---|
text | 要计算的文本 |
fonFace | 要使用的字体 |
fontScale | 乘以特定字体基本大小的比例因子 |
thickness | 文本的线的粗细 |
retval | 返回值,元组,字体的宽高 (width, height) |
baseLine | 相对于最底端文本的 y 坐标,文本的高是从baseLine到文本最顶端 |
在图片上写文本,部分参数同上
参数 | 解释 |
---|---|
org | 文本的左下角坐标 |
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)
本文地址:https://blog.csdn.net/m0_38007695/article/details/107093108