张裕 发表于 2024-12-7 05:21:00

Python+OpenCV系列:绘制图形和文字

在图像处置处罚领域,绘制根本图形和文字是一个常见需求,例如标记对象、绘制边界框或添加说明文字。Python的OpenCV库提供了强大的工具,可以或许方便地在图像上绘制点、线、矩形、圆形、椭圆以及文字。本篇博客将详细介绍如何利用OpenCV实现这些功能,并通过示例代码展示实在际用法。
1. 根本画图函数简介

OpenCV绘制功能的焦点函数是cv2模块中的画图方法。以下是一些常用的绘制函数:


[*]cv2.line:绘制直线。
[*]cv2.rectangle:绘制矩形。
[*]cv2.circle:绘制圆。
[*]cv2.ellipse:绘制椭圆。
[*]cv2.putText:在图像上添加文字。
全部画图函数必要的根本参数:


[*]img:目标图像,必须是NumPy数组。
[*]color:颜色,通常为BGR格式的三元组,例如(255, 0, 0)表示蓝色。
[*]thickness:线条粗细,单位为像素,负值(如-1)表示填充形状。
[*]lineType:线条类型,例如cv2.LINE_8(默认值)表示8连通线。
2. 绘制示例代码

以下代码展示了如何绘制不同的图形和文字:
2.1 创建一个空缺图像

import cv2
import numpy as np

# 创建一个500x500像素的黑色背景
img = np.zeros((500, 500, 3), dtype=np.uint8)
2.2 绘制根本图形

1. 绘制直线

# 从点(50, 50)到(450, 50)绘制一条蓝色直线
cv2.line(img, (50, 50), (450, 50), color=(255, 0, 0), thickness=3)
2. 绘制矩形

# 绘制一个绿色矩形,左上角为(100, 100),右下角为(400, 300)
cv2.rectangle(img, (100, 100), (400, 300), color=(0, 255, 0), thickness=5)
3. 绘制圆

# 绘制一个红色的圆,中心为(250, 250),半径为50
cv2.circle(img, (250, 250), radius=50, color=(0, 0, 255), thickness=-1)# 填充圆
4. 绘制椭圆

# 绘制一个椭圆,中心为(250, 400),轴长为(100, 50),旋转角度为45°
cv2.ellipse(img, (250, 400), (100, 50), angle=45, startAngle=0, endAngle=360, color=(255, 255, 0), thickness=3)
2.3 添加文字

# 在图像上添加文字
cv2.putText(img, "OpenCV Drawing", (50, 450), fontFace=cv2.FONT_HERSHEY_SIMPLEX,
            fontScale=1, color=(255, 255, 255), thickness=2, lineType=cv2.LINE_AA)
3. 显示与保存图像

# 显示绘制结果
cv2.imshow("Drawing Example", img)

# 保存图像到本地
cv2.imwrite("drawing_example.png", img)

# 等待按键关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
4. 扩展应用

通过这些根本的画图功能,您可以实现以下任务:

[*]标注图像:在物体检测任务中,绘制边界框并添加标签文字。
[*]创建自界说图像:计划可视化图形用于说明或教学。
[*]增强图像处置处罚任务:在处置处罚结果上绘制辅助线条或标记点以便调试。
总结

本文通过实例演示了如何利用OpenCV绘制直线、矩形、圆形、椭圆以及文字。通过这些基础功能,您可以方便地在图像上实现各种标注和可视化结果。在现实项目中,合理应用这些画图功能可以大大提升图像处置处罚任务的可读性和表达力。
希望这篇博客能资助您更好地把握OpenCV的画图功能!假如有任何问题或建议,请在评论区留言讨论!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Python+OpenCV系列:绘制图形和文字