我有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 - 顶点坐标中的小数位数
这是信息。如何以及在哪里可以放置我的坐标。
任何人都可以用代码解释一下吗?
答案 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);