我的输入
我有一个vector<Point2f>
包含多边形轮廓的。我还有一个需要与这个多边形相交的点列表。
问题
我想计算这些点中有多少与多边形相交。我想对多个多边形重复此计算,以查看哪个包含最多的点。
OpenCV 是自己实现这样的交集功能,还是我需要自己实现交集功能?我担心如果我尝试自己实现它,结果会不必要地缓慢。如果 OpenCV 做不到,还有其他免费的图形库可以完成这个任务吗?
pointPolygonTest完全符合您的要求,并且经过了很好的优化。该参数是Mat
您可以使用带有点向量的构造函数制作的参数。
该函数确定该点是在轮廓内部、外部还是位于边上(或与顶点重合)。它相应地返回正(内部)、负(外部)或零(在边缘)值。当 measureDist=false 时,返回值分别为 +1、-1 和 0。否则,返回值是点和最近轮廓边缘之间的有符号距离。
不过,您的问题似乎很容易并行化,即每批候选多边形都可以在不同的线程上运行,所以如果您担心性能,我肯定会考虑这一点。