OpenCV ellipse()函数:绘制矩形(附带实例)
函数 ellipse() 用来绘制或者填充一个简单的椭圆弧或椭圆扇形,该函数声明如下:
下面来看一个示例,绘制丰田车标。丰田车标是由 3 个椭圆组成的,两个横着,一个竖着。
1) 打开 Qt Creator,新建一个控制台工程,工程名是 test。
2) 在 IDE 中打开 main.cpp,输入如下代码:
3) 保存工程并运行,结果如下图所示:
void cv::ellipse( InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0 );各个参数的含义如下:
- img 表示输入的图像(椭圆画在这个图像上);
- center 表示椭圆圆心坐标;
- axes 表示轴的长度;
- angle 表示偏转的角度;
- startAngle 表示圆弧起始角的角度;
- endAngle 表示圆弧终结角的角度;
- color 表示线条的颜色;
- thickness 表示线条的粗细程度;
- line_type 表示线条的类型;
- shift 表示圆心坐标点和数轴的精度。
下面来看一个示例,绘制丰田车标。丰田车标是由 3 个椭圆组成的,两个横着,一个竖着。
1) 打开 Qt Creator,新建一个控制台工程,工程名是 test。
2) 在 IDE 中打开 main.cpp,输入如下代码:
#include <iostream> #include <opencv2\imgproc\types_c.h> // for CV_RGB2GRAY #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace std; using namespace cv; int main(int argc, char** argv) { // 绘制丰田车标 Mat image1 = Mat::zeros(900, 900, CV_8UC3);// 900×900的窗口 // 绘制第一个椭圆,大椭圆,颜色为红色 ellipse(image1, Point(450, 450), Size(400, 250), 0, 0, 360, Scalar(0, 0, 225), 5, 8); // 绘制第二个椭圆,竖椭圆 ellipse(image1, Point(450, 450), Size(250, 110), 90, 0, 360, Scalar(0, 0, 225), 5, 8); // 绘制第三个椭圆,小椭圆(横) ellipse(image1, Point(450, 320), Size(280, 120), 0, 0, 360, Scalar(0, 0, 225), 5, 8); imshow("Toyota", image1); waitKey(); return 0; }代码很简单,调用 ellipse() 函数 3 次画 3 个椭圆,要注意算好距离。
3) 保存工程并运行,结果如下图所示:
