仿一个展示型网站多少钱,建设银行人力资源系统网站,wordpress 页面瀑布流,抚州做网站价格多少在图像处理任务中#xff0c;我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数#xff0c;可以很方便地在图像上绘制文本#xff0c;支持多种字体、颜色、大小和位置等参数。
本文将详细介绍如何使用 OpenCV 在图像中添加文字#xff0c;介绍 cv2.putTe…在图像处理任务中我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数可以很方便地在图像上绘制文本支持多种字体、颜色、大小和位置等参数。
本文将详细介绍如何使用 OpenCV 在图像中添加文字介绍 cv2.putText() 的语法、参数及使用示例。
1. cv2.putText() 函数简介
cv2.putText() 是 OpenCV 中的一个函数用于在图像上绘制文本。通过该函数我们可以指定文本的内容、位置、字体、大小、颜色等属性。
函数语法
cv2.putText(image, text, org, fontFace, fontScale, color, thickness, lineTypecv2.LINE_AA)
参数说明
image输入图像文本将被添加到该图像上。text要绘制的文本字符串。org文本的左下角坐标 (x, y)即文本起始点的位置。fontFace字体类型。OpenCV 提供了几种字体类型常用的有 cv2.FONT_HERSHEY_SIMPLEX。fontScale字体大小通常为浮动值值越大字体越大。color文本颜色指定为 BGR 格式的颜色元组例如 (255, 0, 0) 表示蓝色。thickness文本的粗细程度。值越大文本的边缘就越粗。lineType线型通常设置为 cv2.LINE_AA表示抗锯齿线条效果更加平滑。
2. 基本示例在图像中写文字
我们将通过一个简单的示例展示如何在图像上添加文本。
示例代码
import cv2
import numpy as np# 创建一个白色背景的图像
image np.ones((400, 600, 3), dtypenp.uint8) * 255# 要写入的文本
text Hello, OpenCV!# 设置文本的位置左下角
org (50, 200)# 设置字体、大小、颜色和粗细
font cv2.FONT_HERSHEY_SIMPLEX
font_scale 1.5
color (0, 0, 255) # 红色
thickness 2# 在图像上添加文本
cv2.putText(image, text, org, font, font_scale, color, thickness)# 显示图像
cv2.imshow(Text on Image, image)
cv2.waitKey(0)
cv2.destroyAllWindows()代码解析
创建图像我们创建了一幅 400x600 的白色背景图像np.ones((400, 600, 3), dtypenp.uint8) * 255。定义文本定义要写入的文本为 Hello, OpenCV!。设置文本属性 org指定文本的起始位置 (50, 200)即文本的左下角位置。font设置字体为 cv2.FONT_HERSHEY_SIMPLEX这是一种简单的字体。font_scale设置字体大小为 1.5。color设置文本颜色为红色(0, 0, 255)BGR 格式。thickness设置文本的粗细为 2。绘制文本调用 cv2.putText() 在图像上绘制文本。显示图像使用 cv2.imshow() 显示图像并在按下任意键后关闭窗口。 3. 更改字体类型和大小
OpenCV 支持几种常用的字体类型常见的包括
cv2.FONT_HERSHEY_SIMPLEX无衬线字体最常用的字体。cv2.FONT_HERSHEY_PLAIN简单无衬线字体。cv2.FONT_HERSHEY_DUPLEX较粗的无衬线字体。cv2.FONT_HERSHEY_COMPLEX复杂的无衬线字体。cv2.FONT_HERSHEY_TRIPLEX较粗的复杂无衬线字体。cv2.FONT_HERSHEY_COMPLEX_SMALL复杂的小无衬线字体。cv2.FONT_HERSHEY_SCRIPT_SIMPLEX简单的手写字体。cv2.FONT_HERSHEY_SCRIPT_COMPLEX复杂的手写字体。
示例使用不同的字体
import cv2
import numpy as np# 创建一个白色背景的图像
image np.ones((400, 600, 3), dtypenp.uint8) * 255# 要写入的文本
text Font Example!# 设置文本的位置左下角
org (50, 200)# 设置字体、大小、颜色和粗细
font cv2.FONT_HERSHEY_DUPLEX
font_scale 2
color (0, 255, 0) # 绿色
thickness 3# 在图像上添加文本
cv2.putText(image, text, org, font, font_scale, color, thickness)# 显示图像
cv2.imshow(Text with Different Font, image)
cv2.waitKey(0)
cv2.destroyAllWindows()4. 文本对齐
在 OpenCV 中文本的位置通常是从文本的左下角开始指定的即 (x, y) 坐标。如果你需要更精确的文本对齐例如居中、右对齐你需要根据文本的大小进行计算。可以使用 cv2.getTextSize() 函数来获取文本的大小然后进行适当的调整。
示例文本居中对齐
import cv2
import numpy as np# 创建一个白色背景的图像
image np.ones((400, 600, 3), dtypenp.uint8) * 255# 要写入的文本
text Centered Text# 获取文本大小
(font_width, font_height), baseline cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 1, 2)# 计算文本的起始位置使其居中
org ((image.shape[1] - font_width) // 2, (image.shape[0] font_height) // 2)# 在图像上添加文本
cv2.putText(image, text, org, cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)# 显示图像
cv2.imshow(Centered Text, image)
cv2.waitKey(0)
cv2.destroyAllWindows()代码解析
获取文本大小cv2.getTextSize() 函数返回一个元组 (font_width, font_height)表示文本的宽度和高度以及 baseline基线的偏移量。计算居中位置通过 (image.shape[1] - font_width) // 2 计算文本水平居中的位置通过 (image.shape[0] font_height) // 2 计算文本垂直居中的位置。绘制文本将计算好的坐标传入 cv2.putText()。 5. 总结
在 OpenCV 中使用 cv2.putText() 函数我们可以轻松地在图像上添加各种文本。可以通过调整字体类型、大小、颜色、粗细等属性来满足不同的需求。同时通过计算文本的尺寸还可以实现文本的精确对齐如居中、右对齐等。这些操作在图像标注、生成图表、图像处理和计算机视觉任务中都非常有用。