1.      void 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);

ellipse函数将椭圆画到图像 lmg 上, 椭圆中心为点center,并且大小位于矩形 axes 内,椭圆旋转角度为 angle, 扩展的弧度从 0 度到 360 度,

图形颜色为 Scalar(x, y,z),线宽 (thickness)为 1,线型(lineType)为 8 (8 联通线型)。

2.     void circle(InputOutputArray img,  Point center,  int radius,  const Scalar& color,   int thickness = 1,   int lineType = LINE_8,  int shift = 0);

img :表示输入的图像

center:  圆心坐标

radius: 圆的半径

color:Scalar类型,表示圆的颜色,例如蓝色为Scalar(255,0,0)

thickness:线的宽度

lineType:线的类型,(默认为8联通型)

 #include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std; #define WINDOW_NAME1 "绘制图1"
#define WINDOW_NAME2 "绘制图2"
#define WINDOW_WIDTH 600 //定义窗口大小
string image = "C:\\Users\\asus\\Pictures\\Saved Pictures\\123.jpg";
 void DrawEllipse(Mat img, double angle);
void DrawFi1ledCirc1e(Mat img, Point center);
int main()
{
Mat atomImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
Mat rookImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
//绘制椭圆
DrawEllipse(atomImage, );
DrawEllipse(atomImage, );
DrawEllipse(atomImage, );
DrawEllipse(atomImage, -); //绘制圆心
DrawFi1ledCirc1e(atomImage, Point(WINDOW_WIDTH / ,WINDOW_WIDTH / )); imshow(WINDOW_NAME1, atomImage);
waitKey();
return ;
}
void DrawEllipse(Mat img, double angle) {
int thickness = ;
int lineType = ;
ellipse(img, Point(WINDOW_WIDTH / , WINDOW_WIDTH / ),
Size(WINDOW_WIDTH / , WINDOW_WIDTH / ), angle, , , Scalar(, , ),
thickness, lineType);
}
void DrawFi1ledCirc1e(Mat img, Point center) {
int thickness = -;
int lineType = ;
circle(img, center, WINDOW_WIDTH / , Scalar(, , ), thickness, lineType);
}

opencv中画圆circle函数和椭圆ellipse函数-LMLPHP

05-11 15:39