1、前言
opencv 提供了用于绘制文字的puttext()方法
使用这个方法不仅能够设置字体的样式、大小和颜色,而且能够使字体呈现斜体的效果,还能够控制文字的方向,进而使文字呈现垂直像的效果。puttext()方法的语法格式如下
需要注意的是:
字体样式介绍:
2、绘制英文文字
代码:
import numpy as np # 导入python中的numpy模块
import cv2
# np.zeros():创建了一个画布
# (100, 300, 3):一个100 x 300,具有3个颜色空间(即red、green和blue)的画布
# np.uint8:opencv中的灰度图像和rgb图像都是以uint8存储的,因此这里的类型也是uint8
canvas = np.zeros((100, 300, 3), np.uint8)
# 在画布上绘制文字“mrsoft”,文字左下角的坐标为(20, 70)
# 字体样式为font_hershey_triplex
# 字体大小为2,线条颜色是绿色,线条宽度为5
cv2.puttext(canvas, "mrsoft", (20, 70), cv2.font_hershey_triplex, 2, (0, 255, 0), 5)
cv2.imshow("text", canvas) # 显示画布
cv2.waitkey()
cv2.destroyallwindows()
2.1 文字的斜体效果
font italic 可以与其他文字类型一起使用,使字体在呈现指定字体样式效果的同时,也呈现斜体效果。
代码:
import numpy as np # 导入python中的numpy模块
import cv2
# np.zeros():创建了一个画布
# (100, 300, 3):一个100 x 300,具有3个颜色空间(即red、green和blue)的画布
# np.uint8:opencv中的灰度图像和rgb图像都是以uint8存储的,因此这里的类型也是uint8
canvas = np.zeros((100, 300, 3), np.uint8)
# 字体样式为font_hershey_triplex和font_italic
fontstyle = cv2.font_hershey_triplex + cv2.font_italic
# 在画布上绘制文字“mrsoft”,文字左下角的坐标为(20, 70)
# 字体样式为fontstyle,字体大小为2,线条颜色是绿色,线条宽度为5
cv2.puttext(canvas, "mrsoft", (20, 70), fontstyle, 2, (0, 255, 0), 5)
cv2.imshow("text", canvas) # 显示画布
cv2.waitkey()
cv2.destroyallwindows()
2.2 文字的垂直镜像效果
在 puttext0方法的语法格式中,有一个用于控制绘制文字时的方向的参数,即 bottomletorigin,其默认值为 false。当 bottomleftorigin为true 时,文字将呈现垂直镜像效果。
代码:
import numpy as np # 导入python中的numpy模块
import cv2
# np.zeros():创建了一个画布
# (200, 300, 3):一个200 x 300,具有3个颜色空间(即red、green和blue)的画布
# np.uint8:opencv中的灰度图像和rgb图像都是以uint8存储的,因此这里的类型也是uint8
canvas = np.zeros((200, 300, 3), np.uint8)
# 字体样式为font_hershey_triplex
fontstyle = cv2.font_hershey_triplex
# 在画布上绘制文字“mrsoft”,文字左下角的坐标为(20, 70)
# 字体样式为fontstyle,字体大小为2,线条颜色是绿色,线条宽度为5
cv2.puttext(canvas, "mrsoft", (20, 70), fontstyle, 2, (0, 255, 0), 5)
# 使文字“mrsoft”呈现垂直镜像效果,这时linetype和bottomleftorigin变成了必须参数
# 其中,linetype取默认值8,bottomleftorigin的值为true
cv2.puttext(canvas, "mrsoft", (20, 100), fontstyle, 2, (0, 255, 0), 5, 8, true)
cv2.imshow("text", canvas) # 显示画布
cv2.waitkey()
cv2.destroyallwindows()
3、图像上绘制文字
代码:
import cv2
image = cv2.imread("d:/2.1.jpg") # 读取d盘根目录下的2.1.jpg
# 字体样式为font_hershey_triplex
fontstyle = cv2.font_hershey_triplex
# 在2.1.jpg上绘制文字“mrsoft”,文字左下角的坐标为(20, 90)
# 字体样式为fontstyle,字体大小为1,线条颜色是黄色
cv2.puttext(image, "flower", (20, 90), fontstyle, 1, (0, 255, 255))
cv2.imshow("text", image) # 显示画布
cv2.waitkey()
cv2.destroyallwindows()
发表评论