如何用OpenCV给图片加上文字?

这篇博客通过Python的OpenCV库展示了如何在一张空白图片上添加文字。首先创建一个全零的RGB图片作为‘空白’图片,然后利用cv.putText函数添加文字,指定文字内容、起始坐标、字体、颜色和粗细。最后,使用cv.imshow显示添加了文字的图片,并通过cv.waitKey防止窗口瞬间关闭。

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

在接下来的例子中我们将在一个“空白”图片上进行演示,所以,首先我们生成一个空白图片:

import cv2 as cv
import numpy as np

blank = np.zeros((300,500,3),dtype='uint8')

如果你对上述代码有疑惑,请看我之前的一篇文章

接下来我们将使用OpenCV中的函数putText来在图片上添加文字:

cv.putText(blank, 'Hello, OpenCV!!!', (0, 225),
 			cv.FONT_HERSHEY_TRIPLEX, 1.0, (255, 0, 0), 2)

在这里,blank是我们要添加文字的图片,接着是所要添加的文字,第三个参数是文字的开头的坐标位置(注意OpenCV中坐标轴的方向),第四、五个参数分别是字体和文字大小,倒数第二个参数是文字的颜色,最后是字体粗细。还有其他几个参数本例没有用到。

最后将图片展示即可:

cv.imshow('image with text', blank)
cv.waitKey(0) # 防止图片一闪而过
### 使用 PythonOpenCV 在图像中添加时间戳 为了在图像上添加时间戳,可以利用 `datetime` 库获取当前的时间字符串,并通过 `cv2.putText()` 方法将其绘制到图像上。下面是一个完整的例子来展示这一过程[^1]。 ```python import datetime import cv2 import numpy as np def add_timestamp_to_image(image_path): # 加载图片 img = cv2.imread(image_path) # 获取当前时间作为时间戳 time_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 判断背景颜色决定文字颜色 region_of_interest = img[700:780, 900:950] avg_color_per_row = np.average(region_of_interest, axis=0) avg_color = np.average(avg_color_per_row, axis=0) if avg_color > 128: text_color = (0, 0, 0) # 黑色字体 else: text_color = (255, 255, 255) # 白色字体 # 将时间戳图片指定位置 font_face = cv2.FONT_HERSHEY_SIMPLEX bottom_left_corner_of_text = (900, 700) font_scale = 0.8 line_type = 2 cv2.putText( img, time_str, bottom_left_corner_of_text, font_face, font_scale, text_color, line_type ) return img image_with_timestamp = add_timestamp_to_image(r"C:\Users\sbdya\Desktop\img\20180208_204710_537514.jpg") cv2.imshow("Image with Timestamp", image_with_timestamp) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码定义了一个函数 `add_timestamp_to_image`, 它接受一张图片路径作为参数,在该图片右下角附近的位置加上了实时的时间戳信息。如果目标区域内的平均亮度较高,则采用黑色的文字;反之则使用白色文字以确保良好的对比度和可读性。 对于视频处理中的每一帧也可以应用相同的方法来添加时间戳。当从摄像头或者其他视频源捕获数据时,还可以直接访问每帧自带的时间戳属性(例如使用 `cap.get(cv.CAP_PROP_POS_MSEC)`),这有助于记录更精确的时间信息[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值