1. 绘制圆
1.1 使用cv2.circle()函数绘制圆
在opencv中,可以使用cv2.circle()函数来绘制圆。它需要指定绘制圆的图像,圆心的坐标,半径,颜色和线宽等参数。下面是一个绘制圆的简单示例:
import cv2
import numpy as np
# 创建一个黑色背景的图像
image = np.zeros((512, 512, 3), np.uint8)
# 定义圆心和半径
center = (256, 256)
radius = 100
# 定义颜色和线宽
color = (0, 255, 0)
thickness = 2
# 绘制圆
cv2.circle(image, center, radius, color, thickness)
# 显示图像
cv2.imshow("Circle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们首先创建了一个大小为512x512,颜色为黑色的图像。然后我们定义了圆心的坐标和半径,将颜色设置为绿色并指定线宽为2。最后使用cv2.circle()函数绘制圆。
1.2 绘制实心圆
如果想要绘制实心圆,只需将线宽参数设置为负数即可。例如:
# 绘制实心圆
cv2.circle(image, center, radius, color, -1)
这样就能绘制一个实心的圆。
2. 绘制椭圆
在opencv中,绘制椭圆使用的是cv2.ellipse()函数。该函数需要指定椭圆的外接矩形,椭圆的旋转角度,起始角度和结束角度,颜色和线宽等参数。下面是一个绘制椭圆的示例:
import cv2
import numpy as np
# 创建一个黑色背景的图像
image = np.zeros((512, 512, 3), np.uint8)
# 定义椭圆的外接矩形
rect = ((100, 100), (300, 200))
# 定义椭圆的旋转角度
angle = 30
# 定义起始角度和结束角度
startAngle = 0
endAngle = 360
# 定义颜色和线宽
color = (0, 255, 0)
thickness = 2
# 绘制椭圆
cv2.ellipse(image, rect, angle, startAngle, endAngle, color, thickness)
# 显示图像
cv2.imshow("Ellipse", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
上面的代码中,我们首先创建了一个大小为512x512,颜色为黑色的图像。然后定义了椭圆的外接矩形、旋转角度、起始角度和结束角度,并将颜色设置为绿色,线宽为2。最后使用cv2.ellipse()函数绘制椭圆。
3. 绘制任意多边形
在opencv中,绘制任意多边形使用的是cv2.polylines()函数。该函数需要指定绘制多边形的图像,多边形的顶点坐标,是否闭合多边形,颜色和线宽等参数。下面是一个绘制任意多边形的示例:
import cv2
import numpy as np
# 创建一个黑色背景的图像
image = np.zeros((512, 512, 3), np.uint8)
# 定义多边形的顶点坐标
pts = np.array([[100, 100], [200, 50], [400, 200], [300, 400]], np.int32)
# 重塑顶点数组的形状
pts = pts.reshape((-1, 1, 2))
# 定义颜色和线宽
color = (0, 255, 0)
thickness = 2
# 绘制多边形
cv2.polylines(image, [pts], True, color, thickness)
# 显示图像
cv2.imshow("Polygon", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们创建了一个大小为512x512,颜色为黑色的图像。然后定义了多边形的顶点坐标,并使用cv2.polylines()函数绘制多边形。
总结
本文介绍了如何使用opencv绘制圆、椭圆和任意多边形。通过使用cv2.circle()函数绘制圆,cv2.ellipse()函数绘制椭圆,以及cv2.polylines()函数绘制多边形,我们可以轻松实现基本形状的绘制。这些函数都提供了许多参数来控制绘制的效果,我们可以根据需求进行调整,以达到预期的效果。同时,绘制形状时也可以指定颜色和线宽,以及绘制实心和空心的圆、椭圆等。希望本文对你学习和使用opencv绘图有所帮助。