『OpenCV-Python』绘制文字

点赞 + 关注 + 收藏 = 学会了

推荐 《OpenCV-Python专栏》

绘制文字(数字和英文)

OpenCV 提供了 cv2.putText() 方法,可以方便地在图像上绘制文本。

本文可在公众号「德育处主任」免费阅读

cv2.putText() 的基本用法:

cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType)
  • img:目标图像。

  • text:要绘制的文字。

  • org:文字左下角的起始坐标。

  • fontFace:字体类型(如 cv2.FONT_HERSHEY_SIMPLEX)。fontFace 可传入的字体类型 OpenCV 也提供了选项:

    • cv2.FONT_HERSHEY_SIMPLEX:无衬线字体(常用)。
    • cv2.FONT_HERSHEY_PLAIN:简单无衬线字体。
    • cv2.FONT_HERSHEY_DUPLEX:双线无衬线字体。
    • cv2.FONT_HERSHEY_COMPLEX:衬线字体。
    • cv2.FONT_HERSHEY_TRIPLEX:三线衬线字体。
    • cv2.FONT_HERSHEY_SCRIPT_SIMPLEX:手写字体。
    • cv2.FONT_HERSHEY_SCRIPT_COMPLEX:复杂手写字体。
  • fontScale:字体大小比例。

  • color:文字颜色,格式为 (B, G, R)。

  • thickness:文字线条粗细。

  • lineType:线型,如 cv2.LINE_AA。

举个例子

在这里插入图片描述

import cv2
import numpy as np

# 创建空白图像
img = np
### OpenCV-Python 绘制图形的基础方法 OpenCV 是一个强大的计算机视觉库,支持多种图像处理功能。尽管它主要用于图像和视频分析,但也提供了基本的绘图函数来创建简单的形状和线条[^1]。 以下是使用 `cv2` 库绘制常见几何图形的一些基础示例: #### 导入必要的模块 在开始之前,确保已导入所需的 Python 模块: ```python import cv2 import numpy as np ``` --- #### 创建空白画布 为了绘制任何图形,通常会先创建一块黑色背景作为画布: ```python canvas = np.zeros((500, 500, 3), dtype=np.uint8) # 高度500px,宽度500px,RGB三通道 ``` --- #### 绘制直线 可以使用 `cv2.line()` 函数绘制一条线段: ```python start_point = (50, 50) # 起始坐标 end_point = (400, 400) # 结束坐标 color = (255, 0, 0) # BGR颜色模式下的蓝色 thickness = 2 # 线条粗细 cv2.line(canvas, start_point, end_point, color, thickness) ``` --- #### 绘制矩形 通过 `cv2.rectangle()` 可以定义一个矩形区域: ```python top_left_corner = (100, 100) # 左上角顶点 bottom_right_corner = (300, 300) # 右下角顶点 color = (0, 255, 0) # 绿色 thickness = 3 # 边框厚度 (-1表示填充) cv2.rectangle(canvas, top_left_corner, bottom_right_corner, color, thickness) ``` --- #### 绘制圆形 利用 `cv2.circle()` 方法可绘制圆圈或椭圆: ```python center_coordinates = (250, 250) # 圆心位置 radius = 50 # 半径大小 color = (0, 0, 255) # 红色 thickness = -1 # 填充内部 cv2.circle(canvas, center_coordinates, radius, color, thickness) ``` --- #### 添加文字 可以通过 `cv2.putText()` 将文本渲染到图片上: ```python text = "Hello OpenCV" position = (50, 450) # 文本起始位置 font = cv2.FONT_HERSHEY_SIMPLEX # 字体样式 scale = 1 # 字号比例 color = (255, 255, 255) # 白色字体 thickness = 2 # 笔触粗细 cv2.putText(canvas, text, position, font, scale, color, thickness) ``` --- #### 显示结果 最后调用窗口展示所绘制的内容并等待按键退出: ```python cv2.imshow('Canvas', canvas) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上代码片段展示了如何借助 OpenCV 的内置工具完成一些简单而直观的艺术创作。 --- #### 完整示例程序 下面是一个综合性的例子,演示上述所有操作: ```python import cv2 import numpy as np # 初始化画布 canvas = np.zeros((500, 500, 3), dtype=np.uint8) # 绘制直线 cv2.line(canvas, (50, 50), (400, 400), (255, 0, 0), 2) # 绘制矩形 cv2.rectangle(canvas, (100, 100), (300, 300), (0, 255, 0), 3) # 绘制圆形 cv2.circle(canvas, (250, 250), 50, (0, 0, 255), -1) # 添加文字 cv2.putText(canvas, "OpenCV Drawing", (50, 450), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) # 展示最终效果 cv2.imshow('Drawing Example', canvas) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此脚本能帮助理解 OpenCV 中不同类型的绘图命令及其参数设置方式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值