2. OpenCV中绘图功能
绘图可以实现画线、画矩形、画圆、画多边形和添加文本等操作。
import cv2
import numpy as np
# 读取图像
img = cv2.imread('lena.jpg')
# 画直线
cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5)
# 画矩形
cv2.rectangle(img, (100, 150), (150, 200), (0, 255, 0), 3)
# 画圆
cv2.circle(img, (200, 300), 40, (0, 0, 255), -1)
# 画多边形
pts = np.array([[15, 10], [20, 30], [70, 20], [50, 60]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255), 3)
# 添加文本
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'lena', (120, 450), font, 4, (255, 255, 255), 2, cv2.LINE_AA)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.1 画线
cv2.line(img, pt1, pt2, color, thickness=None)
- img:绘制形状的图像
- pt1:线的开始坐标
- pt2:线的结束坐标
- color:形状的颜色
- thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递
-1
,它将填充形状。
2.2 画矩形
cv2.rectangle(img, pt1, pt2, color, thickness=None)
- img:绘制形状的图像
- pt1:矩形左上角点坐标
- pt2:矩形右上角点坐标
- color:形状的颜色
- thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递
-1
,它将填充形状。
2.3 画圆
cv2.circle(img, center, radius, color, thickness=None)
- img:绘制形状的图像
- center:中心坐标
- radius:半径
- color:形状的颜色
- thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递
-1
,它将填充形状。
2.4 画多边形
cv2.polylines(img, pts, isClosed, color, thickness=None)
- img:绘制形状的图像
- pts:顶点的坐标,为数组且类型为int32
- isClosed:是否闭合
- color:形状的颜色
- thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递
-1
,它将填充形状。
2.5 添加文本
cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None)
- img:添加文本的图像
- text:写入的文字数据
- org:位置坐标(即数据开始的左下角)
- fontFace:字体类型
- fontScale:字体比例(指定字体大小)
- color:文本的颜色
- thickness:文本的粗细
- lineType:线条类型