【问题标题】:Interpolating Missing Frames in Matlab在 Matlab 中插入缺失帧
【发布时间】:2016-03-22 22:31:34
【问题描述】:

我有兴趣通过在前一帧和下一帧之间进行插值来“修复”“损坏”的帧(因此,忽略坏帧并创建一个没有损坏的新帧)。

我可以试试:

 c = ((1-r)*a + r*b); %Where r = 0.5 

它会根据需要创建一个中间帧,但是它会在图像中引入我想避免的模糊。如果我删除 r 因子(基本上等于 1),则生成的帧基本上是等式中的后一帧(在本例中为 b),因此它不完全是我想要实现的中间图像。 Q1:如何获得中间的、不模糊的图像?

我知道 Matlab 中的scatterInterpolant 函数,但我不知道如何实现它。我见过类似的问题:2D interpolation using TriScatteredInterp (Matlab)

然而,

t = [10, 20, 30, 20]
F = TriScatteredInterp(x, y, t)

t 的使用和需要让我感到困惑。我在想 x 和 y 可以分别是前一帧和下一帧的像素位置(所以我需要在遍历每个像素的循环中运行这个函数),但我觉得我可能看错了这个函数. Q2:这个功能可以用来实现中间的、不模糊的图像吗?如果可以,我该怎么做?

【问题讨论】:

  • Motion interpolation 可能就是您要找的。​​span>
  • 在寻找 matlab 的实现之后,我找到了scholar.harvard.edu/stanleychan/software/…。 (以防其他人好奇)。不确定它是否真的是它发现的中间体。仍在努力理解它。 @Daniel 你知道运动插值的另一个 Matlab 实现吗?
  • 从未对该主题进行过任何与 MATLAB 相关的研究。

标签: matlab frame interpolation


【解决方案1】:

它没有插值,但也许中值函数可以帮助你。如果 B 是损坏的像素,A 是之前帧中的像素,之后是帧中的 C,则最终像素为 B=median[A,B,C]。这适用于无运动。但是对于运动,您需要一个函数来插入像素。我的猜测

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多