如何使用OpenCV绘制多边形?

Fra*_*ein -2 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)
Run Code Online (Sandbox Code Playgroud)

填充多边形的内部。

参数:img –图片

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

npts –多边形顶点计数器的数组

轮廓–绑定填充区域的轮廓数量

颜色–多边形颜色

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

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

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

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

bac*_*aci 5

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

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

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

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

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