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

问题描述

问题陈述:我有一个 video 的 ANSYS 模拟 vortices 是由于平板下沉而形成的。该视频包含漩涡(简单来说是斑点),它们根据旋转(基于红色或蓝色)进行区分。

Frame of the video

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

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

Labelled blobs

解决方法

所以你的问题是跟踪?

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

  2. 框架中,找到斑点

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

  4. 从其分配的 blob 的当前位置更新每个对象的位置

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

这是按分配跟踪。

这可以任意复杂化。

您应该跟踪对象的颜色,以免将红色斑点与蓝色对象(漩涡)相匹配。

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

您可以为对象分配(并更新)速度,并线性预测其下一个位置,然后使用它也许获得更稳定的预测。