2012-05-10 124 views
4

我输入与多边形交点在OpenCV中

我有一个vector<Point2f>包含多边形的轮廓。我也有一个需要与这个多边形相交的点列表。

我要计算多少,这些点与多边形相交的问题。我想在多个多边形上重复此计算以查看哪一个包含最多点数。

OpenCV是否实现了自己的这种相交功能,还是我需要自己实现相交功能?我担心如果我自己尝试实施它,结果将会不必要地缓慢。如果OpenCV无法做到这一点,是否有其他免费的图形库可以执行此任务?

回答

3

pointPolygonTest完全符合您的要求,并且已经非常优化。该参数是一个Mat,您可以使用构造函数获取点的矢量。

该函数确定点是位于轮廓内,位于外部还是位于边上(或与顶点重合)。它相应地返回正值(内部),负值(外部)或零(在边缘上)值。当measureDist = false时,返回值分别为+1,-1和0。否则,返回值是该点与最近的轮廓边之间的有符号距离。

你的问题似乎很容易并行,不过,即候选多边形的每一批可能在不同的线程上运行,所以我肯定会考虑,如果你担心性能。