-1

OpenCV 中是否有函数可以“跟踪”逐渐变化的曲线而不遵循急剧发散的交叉线?例如:如果有人试图追踪两个交叉回旋镖的单独轮廓,有没有一种简单的方法可以沿着曲线“通过”两个回旋镖交叉的交叉点?

这将需要某种惯性组件,当曲线被另一个交叉的回旋镖打断时,它会继续一条“虚拟”线,然后在另一侧找到原始线的延续。

这看起来很简单,但在试图解释它时听起来很复杂。:-) 这似乎是一个经常发生的场景(试图追踪一个被遮挡的对象)。也许是第三方图书馆或专业项目的一部分?

4

1 回答 1

0

我相信我已经找到了解决这个问题的方法。OpenCV 的 approxPolyDP 查找多边形来逼近轮廓。跟踪多边形边之间的角度相对容易(与查找曲线的连续切线相反)。当在两个物体相交的地方找到一个“内”角时,应该可以与相对侧的相应内角相匹配。

例如:当两个香蕉/回旋镖/任何东西重叠时,轮廓将形成一种十字形,有四个点和四个“内角”(> 180 度)。应该可以匹配四个内角的坐标。如果它们对应的线(重叠前的最后已知轨迹)足够接近平行,则表示对象重叠,而不是一个更复杂的形状。

approxPolyDP 将其简化为几何和三角。这应该是一个比我之前设想的连续贝塞尔曲线和惯性更容易的解决方案。我应该早点想到这一点。

于 2017-10-28T06:41:06.883 回答