首页 > 解决方案 > 如何找出图像中发生子网超大异常的位置?

问题描述

我正在尝试将从某些图像时间序列中提取的坐标与自定义坐标查找算法联系起来。第二步有一个问题:

trackpy.linking.utils.SubnetOversizeException: Subnetwork contains 35 points

我将其解释为图像 1 和 2(从 0 开始)之间某个区域的坐标之间存在太多可能的连接,这是正确的吗?

如果是,如何找出图像中出现此错误的位置?我查看了代码,我很确定信息在trackpy.linking.subnet.Subnets.compute()方法的某个地方:

for i, p in enumerate(dest_hash.points):
    for j in range(nn[i]):
        wp = source_hash.points[inds[i, j]]
        wp.forward_cands.append((p, dists[i, j]))
        assign_subnet(wp, p, self.subnets)

我认为这wp是“起点”,但是在wp.forward_cands.append()被调用之后,我只能在 中找到一个点wp.forward_cands,而不是 35 点。也许我完全错了.. 任何帮助表示赞赏!

标签: trackpy

解决方案


限制是为了防止进程失控(最好退出而不是永远运行)。它可能不会在您正在检查的步骤中爆炸,而是在稍后的某个步骤中爆炸。

如果没有更多代码,很难准确判断您在做什么,但我建议同时调低最大位移、调低内存,并尽可能以更高的帧速率获取数据。

如果您处于获得大型子网络的情况,我不确定您是否应该信任链接,因为这意味着粒子在每个时间步移动其平均间距的很大一部分,这意味着您将错过链接

T1 ...A....B....
T2 .....BA......

其中每一行都是一个时间步长。该算法将选择以最小化总位移的方式链接粒子,在这种情况下,交换它们的真实身份并将您的数据偏向低于实际位移的数据。


推荐阅读