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