如何使用OpenCV绘制多边形?

时间:2013-07-09 11:45:40

标签: c++ opencv

我有4个与图像像素有关的坐标。 说(x1,y1),(x2,y2),(x3,y3)和(x4,y4)。 如何绘制通过这4个坐标的多边形?

void cvFillPoly(CvArr* img, CvPoint** pts, int* npts, int contours, CvScalar color, int lineType=8, int shift=0)

填充多边形的内部。

参数: img - 图片

pts - 指向多边形的指针数组

npts - 多边形顶点计数器数组

contours - 绑定填充区域的轮廓数

颜色 - 多边形颜色

lineType - 多边形边界的类型,请参阅线描述

shift - 顶点坐标中的小数位数

这是信息。如何以及在哪里可以放置我的坐标。

任何人都可以用代码解释一下吗?

1 个答案:

答案 0 :(得分:4)

你应该创建一个4点

的数组或向量
vector<Point> points(4);
points = { (x1,y1),(x2,y2),(x3,y3),(x4,y4) };

然后你可以使用这个向量作为输入数组。

您应该使用draw approx polygon method

vector<Point> approxCurve;
double epsilon = ... // choose a value.
approxPolyDP(points, approxCurve, epsilon, true);