【问题标题】:Apply transform computed at lower resolution to a higher resolution object将以较低分辨率计算的变换应用于较高分辨率的对象
【发布时间】:2015-10-09 01:56:44
【问题描述】:

我正在开发一个 iOS 应用程序,该应用程序必须计算连续实时视频帧之间的变换矩阵。我正在使用 OpenCV 计算光流,然后找到仿射矩阵。

此过程运行良好,但速度有点慢,因此我现在将每个帧的大小缩小到一半,然后再开始处理。问题是,我必须稍后将转换应用于具有原始分辨率的另一个视频帧(我计算矩阵的两倍)。

我的问题是:我应该如何将我为分辨率为 X 的帧计算的变换矩阵应用到分辨率为 2X 的另一帧?我知道我应该以某种方式“缩放”矩阵,但不确定如何。我尝试将矩阵的平移分量乘以 2,这几乎可以完美地工作(虽然我不明白为什么),但有时取决于变换并不准确。

一种可能的解决方案是将框架缩放到其大小的一半,应用变换,然后将其缩放回其原始大小,但这会降低性能,这就是为什么我试图计算一个我能做到的矩阵稍后用于转换框架。

【问题讨论】:

    标签: opencv matrix transform scale flow


    【解决方案1】:

    如果您使用从 H_00 到 H_22 的单应性,则必须对 H_00 和 H_11 应用比例因子。

    我会推荐另一种解决方法。经过跟踪或对应估计。如果 x0[n], y0[n] 是您的起点并且 x1[n] , y1[n] 您的终点都乘以比例因子,然后运行 ​​findHomography 或 getAffineMatrix。例如。让 w0=200 和 h0=100 是您估计的功能对应的框架的宽度和高度,并且 w1=400 和 h1=300 是您要应用的框架。比 sx=2 和 sy=3 是比例因子和 x0[n] = x0[n] * sx 和 y0[n] = y0[n] * sy 和 x1[n] = x1[n] * sx 等.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      相关资源
      最近更新 更多