
一、绘制直线
cv2.line(image, pt1, pt2, color, thickness)
参数 | 说明 |
---|
image | 目标图像。 |
pt1 | 线段起点,格式为 (x, y)。 |
pt2 | 线段终点,格式为 (x, y)。 |
color | 线条颜色,格式为 (B, G, R)。 |
thickness | 线条的粗细,默认值为 1。 |
import cv2
import numpy as npimg = np.zeros((500, 500, 3), dtype=np.uint8) # 创建一个500x500像素的黑色图片,3表示彩色图片(BGR),np.uint8表示像素值为8位无符号整数
cv2.line(img, (100, 100), (300, 300), (0,0,255), 5) # 在图片上画一条直线,起点(100,100),终点(300,300),颜色为灰色(125,125,125),线宽为5
cv2.imshow('img', img) # 显示图片,窗口名为'img'
cv2.waitKey(0) # 等待按键,0表示无限等待,直到用户按下任意键

二、绘制矩形
cv2.rectangle(image, pt1, pt2, color, thickness)
参数 | 说明 |
---|
image | 目标图像。 |
pt1 | 线段起点,格式为 (x, y)。 |
pt2 | 线段终点,格式为 (x, y)。 |
color | 线条颜色,格式为 (B, G, R)。 |
thickness | 线条的粗细,默认值为 1。 |
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8) # 创建一个400x400像素的黑色图片,3表示彩色图片(BGR),np.uint8表示像素值为8位无符号整数# 绘制一个绿色矩形
cv2.rectangle(image, (100, 100), (300, 200), (0, 255, 0), thickness=3) # 在图片上画一个矩形,左上角坐标(100,100),右下角坐标(300,200),颜色为绿色(0,255,0),线宽为3cv2.imshow("Rectangle", image) # 显示图片,窗口名为"Rectangle"
cv2.waitKey(0) # 等待按键,0表示无限等待,直到用户按下任意键
cv2.destroyAllWindows() # 销毁所有OpenCV创建的窗口

三、绘制圆形
cv2.circle(image, center, radius, color, thickness)
参数 | 说明 |
---|
image | 目标图像。 |
center | 圆心坐标 (x, y)。 |
radius | 圆的半径。 |
color | 线条颜色,格式为 (B, G, R)。 |
thickness | 正值 - 圆的边框粗细,负值 - 填充整个圆。 |
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 使用NumPy创建一个400x400像素的数组,表示一个空白图像。
# (400, 400) 是图像的高度和宽度。
# 3 表示图像有3个颜色通道(蓝色、绿色、红色,即BGR格式)。
# dtype=np.uint8 指定数组中每个元素的类型是8位无符号整数,这意味着每个颜色通道的像素值范围是0到255。
# 初始值为0,所以图像是黑色的。# 绘制一个蓝色圆
cv2.circle(image, (200, 200), 50, (255, 0, 0), thickness=-1)
# 在图像上绘制一个圆。
# image: 要在其上绘制圆的图像。
# (200, 200): 圆心的坐标,X轴200,Y轴200。
# 50: 圆的半径,像素单位。
# (255, 0, 0): 圆的颜色,BGR格式。这里是蓝色(蓝色通道255,绿色和红色通道0)。
# thickness=-1: 圆的填充方式。-1表示填充整个圆,如果指定一个正整数,则表示圆的边框宽度。cv2.imshow("Circle", image) # 显示图像,窗口标题为"Circle"
cv2.waitKey(0) # 等待用户按下任意按键。0表示无限等待。
cv2.destroyAllWindows() # 关闭所有OpenCV创建的窗口。

四、绘制多边形
cv2.polylines(image, pts, isClosed, color, thickness)
参数 | 说明 |
---|
image | 目标图像。 |
pts | 多边形的顶点集合,格式为 np.array([[x1, y1], [x2, y2], ...],dtype=np.int(32)。 |
isClosed | 布尔值,是否闭合多边形。 |
color | 线条颜色,格式为 (B, G, R)。 |
thickness | 边框的粗细。 |
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 使用NumPy创建一个400x400像素的数组,表示一个空白图像。
# (400, 400) 是图像的高度和宽度。
# 3 表示图像有3个颜色通道(蓝色、绿色、红色,即BGR格式)。
# dtype=np.uint8 指定数组中每个元素的类型是8位无符号整数,这意味着每个颜色通道的像素值范围是0到255。
# 初始值为0,所以图像是黑色的。# 定义多边形顶点
points = np.array([[150, 150], [250, 150], [300, 250], [200, 300]], dtype=np.int32)
# 定义多边形的各个顶点坐标。
# np.array() 创建一个NumPy数组。
# 每个子列表 [x, y] 代表一个顶点的(x, y)坐标。
# dtype=np.int32 指定顶点坐标的数据类型为32位整数。# 绘制多边形
cv2.polylines(image, [points], isClosed=True, color=(255, 255, 0), thickness=2)
# 在图像上绘制多边形。
# image: 要在其上绘制多边形的图像。
# [points]: 顶点的数组列表。即使只有一个多边形,也需要将其放在一个列表中。
# isClosed=True: 表示多边形是闭合的,即最后一个顶点会与第一个顶点连接。如果为False,则只绘制开放的折线。
# color=(255, 255, 0): 多边形的颜色,BGR格式。这里是青色(蓝色和绿色通道255,红色通道0)。
# thickness=2: 多边形边框的线宽,像素单位。cv2.imshow("Polygon", image) # 显示图像,窗口标题为"Polygon"
cv2.waitKey(0) # 等待用户按下任意按键。0表示无限等待。
cv2.destroyAllWindows() # 关闭所有OpenCV创建的窗口。
