基于旋转的涡流检测和编号

Detection of vortex and numbering on basis of rotation

问题陈述: 我有一个 video of ANSYS Simulation of vortices 由于平板切入而形成。该视频包含漩涡(更简单地说是斑点),它们根据旋转(基于红色或蓝色)来区分。

Objective: 涡旋需要根据它们的旋转来识别和标记。例如,顺时针旋转的漩涡(红色)标记为 R1、R2、R3 等,逆时针旋转的漩涡(蓝色)标记为 B1、B2、B3 等

问题:我已经能够使用轮廓检测​​将涡流识别为顺时针和逆时针,但主要问题是编号。识别出的 blob 当它超出框架时 标签被破坏 即。如果漩涡有一个标签 A1,现在超出了框架,这个标签将被分配给框架中的另一个漩涡,因此 失去唯一性

所以你的问题是跟踪?

  1. 跟踪“对象”及其位置。我可以称它们为漩涡,但我会保持笼统。

  2. new 帧中,找到 blob

  3. 然后将这些斑点中的每一个分配给空间上最近的对象(在一定距离内)。检查以确保您没有将多个斑点与同一对象匹配......或者至少要意识到这种可能性。如果在一定距离内没有现有对象,则为此 blob 创建一个新对象。

  4. 根据分配给 blob 的当前位置更新每个对象的位置

  5. 注意剔除消失的对象(即没有分配)。

这是按分配跟踪。

这可以任意复杂化。

您应该跟踪对象的颜色,这样您就知道不要将红色斑点与蓝色对象(漩涡)相匹配。

您可以仅使用质心来表示您的对象。或者您可以使用轮廓来表示它们。那么“距离”可能涉及计算重叠甚至形状(查找傅里叶描述符,它们是轮廓的极坐标表示的傅里叶变换)。

你可以为一个物体分配(和更新)一个速度,并线性预测它的下一个位置,然后用它来也许得到更稳定的预测。