我创建了一个二维数组,其中包含每个爪子的最大值,这些最大值是由爪子随时间加载的传感器产生的。以下是一个示例,我使用Excel绘制了我想要“检测”的区域。这些区域是围绕具有局部极大值的传感器的2x2方框,它们的总和最大。
注意:2x2的方块不能重叠,因为它们必须是分开的。
我把2x2当作一种便利方法,欢迎任何更高级的解决方案,但我只是一个人类运动科学家,既不是真正的程序员也不是数学家,所以请保持“简单”。
这是一个可以使用`np.loadtxt`加载的版本。
结果
所以我尝试了 @jextee 的解决方案(请参见下面的结果)。正如您所看到的,它在前脚上运作得非常好,但对于后腿来说效果不太好。
更具体地说,它无法识别作为第四趾的小峰。这显然是由于该循环从上向下看最低值,并未考虑其位置造成的固有问题。
是否有人知道如何调整 @jextee 的算法,使其能够找到第四趾?
因为我还没有处理其他试验,所以无法提供其他样本。但之前给出的数据是每只爪子的平均值。这个文件是一个数组,按照它们与板子接触的顺序列出了9只爪子的最大数据。
这张图显示了它们在板子上如何空间分布。
更新:
我为所有感兴趣的人建立了一个博客,并且我已经设置了一个包含所有原始测量数据的OneDrive。因此,对于任何请求更多数据的人:祝你好运!
新的更新:
在我关于 爪子检测 和 爪子分类 的问题得到帮助后,我终于能够检测每只爪子的脚趾!结果发现,除了与我自己示例中的爪子尺寸相似的爪子外,它在其他情况下的效果并不好。事后想想,选择2x2的尺寸是我的任性。
以下是一个错误的例子:一根指甲被识别为脚趾,而“脚跟”太宽,被识别了两次!
爪子太大了,所以采用2x2的尺寸且不重叠,会导致有些脚趾被检测到两次。反过来,在小狗身上通常无法找到第五个脚趾,我怀疑是因为2x2区域太大的原因。
在对所有我的测量值尝试当前解决方案后,令人惊讶的结论是几乎所有的小狗都没有找到第五个脚趾,而在大狗的超过50%的情况下会找到更多!
所以显然我需要进行改变。我自己的猜测是将neighborhood
的大小对于小狗设定得更小,对于大狗设定得更大。但是generate_binary_structure
不允许我更改数组的大小。
有人对于定位脚趾有更好的建议吗?也许能够使脚趾区域与爪子大小成比例变化?