【发布时间】:2017-04-07 20:20:58
【问题描述】:
考虑我有以下稳定的视频帧,其中仅通过旋转和平移(无缩放)完成稳定:
如图所示,图像的右侧与之前的像素对称,即旋转后的黑色区域被对称填充。我添加了一条红线以更清楚地表明它。
我想找到稍后将使用的旋转角度。我可以通过 SURF 或 SIFT 功能完成此操作,但是,在实际情况下,我不会拥有原始帧。
我可能可以通过蛮力找到角度,但我想知道是否有更好更优雅的解决方案。请注意,对称部分的强度值与原始部分并不完全相同。我检查了一些值,例如,键盘上 V 字符的右上角像素在 原始部分中是 [51 49 47],但在 对称副本中是 [50 50 47] 这意味着相应的像素不能保证是相同的RGB 值。
我将在 Matlab 或 python 上实现这一点,并使用ffmpeg 完成视频稳定。
编辑:我只有稳定的视频,无法访问原始视频或ffmpeg制作的文件。
感谢任何帮助/建议,
【问题讨论】:
-
最好的方法是使用与
ffmpeg相同的转换。我假设您正在为 ffmpeg 使用VidStab插件?如果是这样,您可能在进程的某处生成了一个 'transforms.trf' 文件。我会研究这个文件的格式,并从中提取值。 -
@Aaron 我应该提到我只有
stabilized video。现在更新了问题。我正在使用deshake插件,我使用的命令是ffmpeg.exe -i infile -vf deshake -c:v libx264 -crf 0 -preset veryslow outfile。
标签: python matlab matrix image-rotation image-stabilization