opencv库函数ellipse()函数可以画扇形,也可以画椭圆。画扇形时只需要将椭圆的长短轴长度设为相同并给定扇形的圆心角即可。
# 参数 1.目标图片 2.椭圆圆心 3.长短轴长度 4.偏转角度 5.圆弧起始角度 6.终止角度 7.颜色 8.是否填充
cv2.ellipse(img_p, (500, 200), (100, 100), 0, 60, 120, (255, 255, 255), -1)
首先可以创建一个画布或者读取一张图片作为画布,然后利用ellipse()函数创建一个扇形
import cv2 as cv
import numpy as np
# 创建一张画布
img_p = np.zeros((1000, 1000, 3), np.uint8)
# 给画布填充颜色
img_p.fill(255)
# 参数 1.目标图片 2.椭圆圆心 3.长短轴长度 4.偏转角度 5.圆弧起始角度 6.终止角度 7.颜色 8.是否填充
cv.ellipse(img_p, (500, 300), (300, 300), 0, 60, 120, (255, 0, 255), -1)
cv.namedWindow('image_p', cv.WINDOW_NORMAL)
cv.imshow('image_p', img_p)
cv.imwrite('ellipse.png', img_p)
cv.waitKey(0)
cv.destroyAllWindows()
此程序画的是偏转角度为0即坐标轴不偏转,起始角度为60°,终止角度为120°,即圆心角为60°,半径为300的扇形
输出结果如下:
那么,偏转角度、起始角度及终止角度的关系是什么呢?
这时的偏转角度为0,接下来给定偏转角度60°,我们看看效果:
cv.ellipse(img_p, (500, 300), (300, 300), 60, 60, 120, (255, 0, 255), -1)
看一下有偏转角度时的情况:
下面画一个椭圆看看:
cv.ellipse(img_p, (500, 500), (400, 180), 0, 0, 360, (255, 0, 255), -1)
偏转90°看看:
cv.ellipse(img_p, (500, 500), (400, 180), 90, 0, 360, (255, 0, 255), -1)
关于此函数更详细的用法:
cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color [, thickness[, lineType[, shift]]])
参数: image:它是要在其上绘制椭圆的图像。 centerCoordinates:它是椭圆的中心坐标。坐标表示为两个值的元组,即(X坐标值,Y坐标值)。 axesLength:它包含两个变量的元组,分别包含椭圆的长轴和短轴(长轴长度,短轴长度)。 angle:椭圆旋转角度,以度为单位。 startAngle:椭圆弧的起始角度,以度为单位。 endAngle:椭圆弧的终止角度,以度为单位。 color:它是要绘制的形状边界线的颜色。对于BGR,我们通过一个元组。例如:(255,0,0)为蓝色。 thickness:是形状边界线的粗细像素。厚度-1像素将用指定的颜色填充形状。默认值为1. lineType:这是一个可选参数,它给出了椭圆边界的类型。默认值为8. shift:这是一个可选参数。它表示中心坐标中的小数位数和轴的值。默认值为0.
此函数处理后返回值是一个图像。