一般:我希望我将要描述的用例是一个光流问题的简单案例,由于我对此主题了解不多,我想知道是否有人对我的方法有任何建议可以解决我的问题。
我已经完成的研究:我已经开始阅读基于翘曲理论的高精度光流估计论文,并计划查看粒子视频论文。我找到了光流的 MATLAB高精度光流实现。然而,论文(和代码)似乎描述了非常复杂的概念,我可能需要很多时间来挖掘和理解。我希望我的问题的解决方案可能更简单。
问题:我有一系列图像。图像描绘了材料破损过程,其中材料和背景为黑色,裂缝为白色。我有兴趣反向遍历图像序列,以尝试将破损过程中形成的所有裂缝映射到第一个黑色图像。你可以把这些材料想象成一个大拼图,我试图按照它们破坏的相反顺序将这些碎片重新组合在一起。
在每个图像中,可能会有一些刚刚出现的裂缝和/或一些已经完全形成的裂缝(并因此产生了一个片段)。在整个破碎过程中,一些碎片可能会分离并进一步破碎。片段也可以彼此远离(后续帧之间的变化很小)。
期望的输出:序列中的所有裂缝/线都映射到序列中的第一个图像。
附加说明:图像以灰度格式(即原始)和二进制格式提供,其中裂缝已用白色勾勒出来,背景是完全黑色的。请参阅下面的一些图像示例。
顶行显示原始图像,底行显示二值图像。正如你所看到的,随着图像序列的进行,中间的裂缝会变得越来越宽。因此,底部裂纹与下部碎片一起移动。当反向遍历序列时,我希望通过算法实现中间裂缝作为一个整体(并将其正确映射到第一张图像),并正确映射底部裂缝,保持其正确的对应关系(大小和位置)与底部片段。
一个序列通常包含大约 30~40 张图像,所以我只展示了开始的子集。此外,虽然这些图像没有显示它,但特定图像可能仅包含裂缝的开始(即其初始外观),并且在随后的图像中它变得越来越长并且可能与其他裂缝连接。
语言:虽然没有必要,但我想使用 MATLAB 来实现该解决方案(因为与该项目相关的大部分其他代码已在 MATLAB 中完成)。但是,如果 OpenCV 可能更容易,我可以灵活地使用我的语言/库。
任何想法都非常感谢。