OpenCV ellipse():绘制椭圆(附带实例)
函数 ellipse() 用来绘制或者填充一个简单的椭圆弧或椭圆扇形。圆弧被 ROI(Region of Interest,兴趣区域)矩形忽略,并使用线性分段近似值来处理反走样弧线和粗弧线,所有的角都以角度的形式给定。
ellipse() 函数声明如下:
下面看一个实例,绘制丰田车标。丰田车标是由 3 个椭圆组成的,两个横着,一个竖着:
ellipse() 函数声明如下:
ellipse(img, center, axes, angle, start_angle, end_angle, color, thickness=1, lineType=8, shift=0) -> None各个参数的含义如下:
- img 表示输入的图像(圆画在这个图像上);
- center 表示椭圆圆心坐标;
- axes 表示轴的长度;
- angle 表示偏转的角度;
- start_angle 表示圆弧起始角的角度;
- end_angle 表示圆弧终结角的角度;
- color 表示线条的颜色;
- thickness 表示线条的粗细程度;
- line_type 表示线条的类型;
- shift 表示圆心坐标点和数轴的精度。
下面看一个实例,绘制丰田车标。丰田车标是由 3 个椭圆组成的,两个横着,一个竖着:
import numpy as np import cv2 as cv img = cv.imread("test.jpg") points_list = [ (45, 45), (45, 45),(45, 32)] size_list = [ (40, 25), (25, 11),(28, 12)] color = (0, 0, 255) # BGR #绘制第一个椭圆,大椭圆,颜色为红色 cv.ellipse(img, points_list[0],size_list[0], 0, 0, 360, color, 5, 8); #绘制第二个椭圆,竖椭圆 cv.ellipse(img,points_list[1], size_list[1], 90, 0, 360, color, 5, 8); #绘制第三个椭圆,小椭圆(横) cv.ellipse(img, points_list[2],size_list[2], 0, 0, 360, color, 5, 8); cv.imshow("Result", img); cv.waitKey (10000) # 显示 10000 ms 后消失代码很简单,调用 ellipse() 函数画 3 个椭圆。运行工程,结果如下图所示:
