【OpenCV】文字绘制 putText

本文介绍了如何利用OpenCV的putText函数在图像上绘制文字,详细讲解了fontFace参数的选择,包括Hershey Fonts的9个基本款式,并提供了图像生成的代码示例,还提到了如何通过指定文本框左下角的起始点org进行精确控制,以及参考资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Backto OpenCV Index


在图像上绘制文字,

void putText( InputOutputArray img, const String& text, Point org,
                         int fontFace, double fontScale, Scalar color,
                         int thickness = 1, int lineType = LINE_8,
                         bool bottomLeftOrigin = false );

fontFace 字体

其中, fontFace 指的是字体. OpenCV 采用的是适合屏幕显示的 HersheyFonts, 采用了其中的9个基本款. 分别是

FONT_HERSHEY_SIMPLEX = 0
FONT_HERSHEY_PLAIN = 1
FONT_HERSHEY_DUPLEX = 2
FONT_HERSHEY_COMPLEX = 3
FONT_HERSHEY_TRIPLEX = 4
FONT_HERSHEY_COMPLEX_SMALL = 5
FONT_HERSHEY_SCRIPT_SIMPLEX = 6
FONT_HERSHEY_SCRIPT_COMPLEX = 7
FONT_ITALIC = 16

显示效果如下

在这里插入图片描述

图像生成代码,

#include <opencv2\opencv.hpp>

int main() {
   
   
	const cv::String text = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789";
	cv::Mat frame = cv::Mat::zeros(1080, 1920, CV_8UC3);//black background
	
### 如何使用 Python 和 OpenCV 绘制文字 在 Python 中,可以利用 OpenCV 的 `cv.putText` 函数来绘制文字。该函数允许用户指定字体样式、大小、颜色以及位置等参数[^1]。 以下是具体方法及其代码示例: #### 使用 `cv.putText` 方法 此方法用于向图像添加文本。其语法如下所示: ```python import cv2 as cv import numpy as np # 创建空白画布 image = np.zeros((512, 512, 3), dtype=np.uint8) text_to_display = "Hello OpenCV" position = (50, 200) # 文本起始坐标(x,y) font_face = cv.FONT_HERSHEY_SIMPLEX # 字体类型 font_scale = 2 # 字体缩放比例 color = (255, 255, 255) # BGR 颜色模式下的白色 thickness = 3 # 笔触粗细 line_type = cv.LINE_AA # 抗锯齿线型 # 将文本绘制到图像上 cv.putText(image, text_to_display, position, font_face, font_scale, color, thickness, line_type) # 显示结果 cv.imshow("Text on Image", image) cv.waitKey(0) cv.destroyAllWindows() ``` 以上代码创建了一个黑色背景的窗口,并在其上方显示一段白色的文本字符串 “Hello OpenCV”。通过调整变量如 `position`, `font_scale`, 或者 `color` 可以改变文本的位置、尺寸和色彩效果[^2]。 #### 参数说明 - **img**: 输入图像。 - **text**: 要写入的文字内容。 - **org**: 这是一个元组形式 `(x, y)` 表明左下角起点相对于原点的位置。 - **fontFace**: 定义使用的字体风格,例如 `FONT_HERSHEY_SIMPLEX`. - **fontScale**: 设置字体的比例因子,数值越大则字体会越显眼。 - **color**: 设定BGR格式的颜色值,默认范围是从0至255之间。 - **thickness**: 描边宽度;默认为1像素宽线条。 - **lineType**: 控制所绘直线的质量选项之一,推荐采用抗锯齿技术即 `LINE_AA`. #### 注意事项 当尝试将中文字符打印出来时可能会遇到编码错误问题,这是因为 OpenCV 默认并不支持 UTF-8 编码。解决办法可以通过 PIL 库先转换成图片再叠加回原始帧上来完成复杂语言环境的支持需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值