python opencv圆、椭圆与任意多边形的绘制实例详解

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绘图有所帮助。

后端开发标签