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