#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img = Mat::zeros(Size(800, 800), CV_8UC3);
//绘制圆形
circle(img, Point(50, 50), 30, Scalar(255, 255, 0), -1); //绘制实心圆
circle(img, Point(100, 100), 30, Scalar(0, 255, 255), 4); //绘制空心圆
//绘制直线
line(img, Point(400, 400), Point(600, 600), Scalar(0, 255, 0), 2, LINE_4);
//绘制椭圆
ellipse(img, Point(200, 300), Size(100, 100),0, 0, 100, Scalar(255, 0, 0), -1);
//center椭圆中心坐标, axes椭圆主轴大小的一半, angle椭圆旋转的角度, startAngle椭圆起始角度, endAngle椭圆终止的角度
ellipse(img, RotatedRect(Point2f(150, 100), Size2f(30, 20), 0), Scalar(0, 0, 255), 2); //绘制一个空心椭圆
//绘制矩形
rectangle(img, Point(500, 500), Point(600, 700), Scalar(0, 0, 255), -1); //两点的方式
rectangle(img, Rect(400, 500, 50, 50), Scalar(0, 255, 255), -1); //起点+偏移距离的方式
//绘制多边形
Point pts[3]; //此处绘制一个三角形
pts[0] = Point(350, 400);
pts[1] = Point(600, 700);
pts[2] = Point(500, 200);
const Point* pp[1] = { pts };
int npts[] = { 3 }; //表示内部的多边形有几条边, 多个点就用逗号隔开
fillPoly(img, pp, npts, 1, Scalar(0, 125, 255), 8); //绘制一个多边形
// 添加文字
putText(img, "Hello OpenCV", Point(100, 100), 2, 1, Scalar(125, 125, 80));
imshow("result", img);
waitKey(0);
return 0;
}
效果图:
参考资料:
《OpenCV4快速入门》