您的位置:首页 > 运维架构

openCV 小结7——基本图形的绘制

2018-09-11 11:12 295 查看

1.用于绘制椭圆的ellipse函数

int thickness=2;
int lineType=8;
double angle=45;

ellipse(img,//图像
Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//椭圆中心
Size(WINDOW_WIDTH/4,WINDOW_WIDTH/16),//椭圆的宽度和高度
angle,//倾角(椭圆旋转角度[顺时针])
0,//弧度范围
360,
Scalar(255,129,0),//图形颜色
thickness,//线宽
lineType);//线型

2.用于绘制圆的circle函数

int thickness=-1;
int lineType=8;

circle(img,//图像
Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//圆心
WINDOW_WIDTH/32,//半径
Scalar(0,0,255),//颜色
thickness,//线宽
lineType);//线型

3.用于绘制直线的line函数

int thickness=2;
int lineType=8;

line(img,//图像
Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//线段起点
Point(WINDOW_WIDTH/4,WINDOW_WIDTH/4),//线段终点
Scalar(0,0,0),//颜色
thickness,//线宽
lineType);//线型

4.用于绘制填充多边形的fillPoly函数。
函数原型:

void cv::fillPoly(cv::Mat&,//图像
const Point**,// 指向多边形的数组指针
const int*,//多边形顶点个数的数组
int, //多边形的数量
const Scalar&,//多边形颜色
int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
int shift = 0, // 偏移量(坐标点的小数点位数)
cv::Point offset = Point()); //整体偏移量

使用方法:

Point point1[3][4];
point1[0][0] = Point(200, 40); /* 三角形的点的相关信息 */
point1[0][1] = Point(150, 80);
point1[0][2] = Point(250, 80);
point1[1][0] = Point(150, 100); /* 正方形的相关信息 */
point1[1][1] = Point(250, 100);
point1[1][2] = Point(250, 200);
point1[1][3] = Point(150, 200);

const Point *ppt[2]={point1[0],point1[1]};
int npts[2] = {3, 4};/* 三角形有三个有效点正方形有四个有效点 */
Scalar color = Scalar(200, 100, 250);/* 颜色参数 */
fillPoly(testImage, ppt, npts, 2, color);

4.用于绘制多边形的polylines函数
函数原型:

void polylines(
cv::Mat& img,
const cv::Point** pts,
int* npts,
int ncontours, //
bool isClosed, // 如果是true, 则连接首尾两点
const cv::Scalar& color,
int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
int shift = 0 // 偏移量
);

5.用于绘制长方形的rectangle函数
函数原型:

void rectangle(InputOutputArray img,
Point pt1,
Point pt2,
const Scalar& color,
int thickness=1,
int lineType=8,
int shift=0);
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: