python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候,通常需要画很多辅助几何形状(比如bounding box等)。基于opencv的几何图形绘制具有易用性,而且天然能和numpy数组交互。

本文总结了几种常用的cv2画几何图形的方法,当一个简易的手册使用:

1. 直线绘制:cv2.line

输入规范如下:

python 复制代码
cv2.line(image, start_point, end_point, color, thickness)

两点确定一条直线,所以我们需要明确起始点,终点的位置即可。另外,我们可以通过color和thickness确定直线的颜色和厚度。我们来看一个小demo:

python 复制代码
import cv2
import numpy as np

blank = np.zeros((224, 224, 3), np.uint8)

# draw line
cv2.line(blank, (22, 99), (83, 200), (255, 255, 255), 2)
cv2.imwrite("line.png", blank)

画出效果为:

2. 矩形绘制:cv2.rectangle

输入规范如下:

python 复制代码
cv2.rectangle(img, pt1, pt2, color, thickness, lineType, shift )

同样,两点(左上角和右下角)确定一个矩形。我们看一下demo:

python 复制代码
import cv2
import numpy as np

blank = np.zeros((224, 224, 3), np.uint8)

# draw rectangle
cv2.rectangle(blank, (22, 99), (83, 200), (255, 255, 255), 2)
cv2.imwrite("rect.png", blank)

3. 圆形绘制:cv2.circle

输入规范:

python 复制代码
cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)

通过圆心坐标和半径即可确定一个圆。实验如下:

python 复制代码
import cv2
import numpy as np

blank = np.zeros((224, 224, 3), np.uint8)

# draw circle
cv2.circle(blank, (112, 112), 12, (255, 255, 255), 1)
cv2.imwrite("circle.png", blank)

效果如下:

4. 输入文字:cv2.putText

python 复制代码
cv2.putText(image, text, org, font, fontScale, color, thickness, lineType=None, bottomLeftOrigin=None)

确定文本、文字位置、字体。实验如下:

python 复制代码
import cv2
import numpy as np

blank = np.zeros((224, 224, 3), np.uint8)

# draw rectangle
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(blank, "helloworld", (80,90), font, 0.5, (255,255,255), 1)
cv2.imwrite("text.png", blank)

实验效果如下:

相关推荐
自可乐9 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus
可触的未来,发芽的智生9 小时前
发现:认知的普适节律 发现思维的8次迭代量子
javascript·python·神经网络·程序人生·自然语言处理
真智AI10 小时前
用 LLM 辅助生成可跑的 Python 单元测试:pytest + coverage 覆盖率报告(含运行指令与排坑)
python·单元测试·pytest
0思必得010 小时前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化
Hui Baby10 小时前
Java SPI 与 Spring SPI
java·python·spring
小猪咪piggy10 小时前
【Python】(3) 函数
开发语言·python
夜鸣笙笙10 小时前
交换最小值和最大值
python
2301_8223636010 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
码界奇点11 小时前
基于Flask与OpenSSL的自签证书管理系统设计与实现
后端·python·flask·毕业设计·飞书·源代码管理
java1234_小锋11 小时前
分享一套优质的基于Python的房屋数据分析预测系统(scikit-learn机器学习+Flask)
python·数据分析·scikit-learn