#include
#include
#include
#include
using namespace cv;
using namespace std;
//绘制椭圆;
void DrawEllipse(Mat img, double angle, int nThickness)
{
int nWidth = img.cols;
int nHeight = img.rows;
int lineType = 8;
if (nThickness != -1)
ellipse(img, Point(nWidth / 2, nHeight / 2), Size(nWidth / 4, nWidth / 16), angle, 0, 360, Scalar(255, 129, 0), nThickness, lineType);
else
ellipse(img, Point(nWidth / 8, nHeight / 8), Size(nWidth / 16, nWidth / 32), angle, 0, 360, Scalar(255, 129, 0), nThickness, lineType);
}
//绘制圆形
void DrawCircle(Mat img, int radius, int nThickness)
{
int nWidth = img.cols;
int nHeight = img.rows;
int lineType = 8;
circle(img, Point(nWidth / 2, nHeight / 2), radius, Scalar(255, 129, 0), nThickness, lineType);
}
int main()
{
//1.创建图片
Mat imageDraw = Mat::zeros(600, 600, CV_8UC3);
//2.绘制椭圆形
for (int i = -90; i < 90; )
{
DrawEllipse(imageDraw, i, 2);
i += 30;
}
DrawEllipse(imageDraw, 90, -1);
DrawEllipse(imageDraw, 0, -1);
//3.绘制圆形
int nWidth = imageDraw.cols;
DrawCircle(imageDraw, nWidth/32, -1);
DrawCircle(imageDraw, nWidth /4 + 5, 1);
//4.显示图片
imshow("imageDraw", imageDraw);
waitKey(0);
destroyAllWindows();
}
绘制椭圆
void cv::ellipse (
InputOutputArray img, //所绘制的图片
Point center, //椭圆中心点
Size axes, //椭圆长短轴
double angle, //旋转角度(角度)
double startAngle, //开始绘制角度
double endAngle, //结束绘制角度
const Scalar & color, //绘制所使用颜色
int thickness = 1, //线宽 -1 全填充
int lineType = LINE_8, // 线类型 8领域绘制
int shift = 0 //小数位数
)
void cv::circle (
InputOutputArray img, //所绘制的图片
Point center, //圆形中心点
int radius, //圆形半径
const Scalar & color, //圆形颜色
int thickness = 1, //线宽 -1 全填充
int lineType = LINE_8, //线类型 8领域绘制
int shift = 0 //小数位数
)