-2

我有 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 - 多边形顶点计数器数组

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

颜色 - 多边形颜色

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

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

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

谁能用代码解释一下?

4

1 回答 1

5

您应该创建一个包含 4 个点的数组或向量

vector<Point> points(4);
points = { (x1,y1),(x2,y2),(x3,y3),(x4,y4) };

那么您可以将此向量用作输入数组。

您应该使用绘制近似多边形方法

vector<Point> approxCurve;
double epsilon = ... // choose a value.
approxPolyDP(points, approxCurve, epsilon, true);
于 2013-07-09T11:56:20.530 回答