gpt4 book ai didi

OpenCv 点多边形测试。如何提供轮廓作为输入?

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:59 26 4
gpt4 key购买 nike

我一直在尝试使用 OpenCV 函数:

double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)

我有一个由 4 个点在 2D (x1,y1), ..., (x4,y4) 中指定的轮廓。我想测试点 (x,y) 是在轮廓内部还是外部。但我似乎无法找到任何引用如何正确地将轮廓指定为函数的输入。

我尝试了以下实现,但没有得到正确的结果:

vector< Point2f > contour;

contour.push_back(Point2f(x1, y1));
contour.push_back(Point2f(x2, y2));
contour.push_back(Point2f(x3, y3));
contour.push_back(Point2f(x4, y4));

int inCont;
inCont = pointPolygonTest(contour, Point2f(x, y), false);

我错过了什么吗?

最佳答案

功能对我来说没有任何问题(OpenCV 2.3.1):

vector<Point2f> points;

points.push_back(Point2f(0,0));
points.push_back(Point2f(0,4));
points.push_back(Point2f(4,4));
points.push_back(Point2f(4,0));

cout << pointPolygonTest(points, Point2f(5,1), false) << endl;
cout << pointPolygonTest(points, Point2f(1,1), false) << endl;
cout << pointPolygonTest(points, Point2f(0,0), false) << endl;

输出:

-1
1
0

关于OpenCv 点多边形测试。如何提供轮廓作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com