gpt4 book ai didi

c++ - OpenCV 在多边形中查找点的最有效方法

转载 作者:搜寻专家 更新时间:2023-10-31 00:59:25 24 4
gpt4 key购买 nike

我有一个包含 500 个 cv::Point 的数据集。

对于每个点,我需要确定该点是否包含在由凹多边形建模的 ROI 中。这个多边形可以很大(大多数情况下,它可以包含在 100x400 的边界框中,但也可以更大)

对于那个数量的点和那个大小的多边形,确定一个点是否在多边形中的最有效方法是什么?

  • 使用 pointPolygonTest openCV 函数?
  • 使用 drawContours 构建蒙版并确定蒙版中的点是白色还是黑色?
  • 其他解决方案? (我真的很想准确,所以排除了凸多边形和边界框)。

最佳答案

一般来说,为了既准确又高效,我会采用两步流程。

  • 首先,多边形上的边界框。查看哪些点在框内是一件快速而简单的事情。有了它,您可以立即放弃几个点。
  • 其次,pointPolygonTest。这是一个相对昂贵的操作,但第一步保证您只会对那些需要更高准确性的点执行它。

这样,您可以在保持准确性的同时加快流程。唯一的异常(exception)是当大多数点都落在边界框内时。在那种情况下,第一步几乎总是会失败,因此不会优化算法,实际上会使它稍微慢一些。

关于c++ - OpenCV 在多边形中查找点的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33343260/

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