c++ - opencv视频稳定算法

标签 c++ opencv video

我正在使用 opencv 编写视频稳定器。算法如下:

当视频中有更多帧时:

  1. 从视频中提取新帧
  2. 检测新帧中的关键点
  3. 为新的关键点计算描述符
  4. 匹配新帧和上一帧的描述符
  5. 过滤匹配以获得好的匹配
  6. 找到新帧和新帧之间的单应性
  7. 将单应性 (warpPerspective) 应用于新框架,从而创建“调整后的新框架”
  8. 将前一帧设置为等于“调整后的新帧”(描述符、关键点)

我有几个问题。我在正确的轨道上吗?如何进行实际稳定(使用高斯滤波器或其他)?

最佳答案

以下是可能的步骤顺序:

第 1 步。从电影文件中读取帧

第 2 步。从每一帧收集显着点

第 3 步。选择点之间的对应关系

第 4 步。根据噪声通信估计转换

第 5 步。变换近似和平滑

第 6 步。在完整视频上运行

您可以在此处找到有关每个步骤的更多详细信息:

http://www.mathworks.com/help/vision/examples/video-stabilization-using-point-feature-matching.html

我认为您可以在 OpenCV 中执行相同的步骤。

关于c++ - opencv视频稳定算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132713/

相关文章:

c++ - 如何在模板类中为模板函数添加别名

python - 使用 OpenCV 提高检测线的准确性

javascript - 暂停播放按钮时阻止播放 HTML5 视频

c++ - 在 Windows 上为可移植程序使用 Opencv、Mingw 和静态库时出错

audio - 仅使用 ffmpeg(以及所有音频流)重新编码视频流

javascript - 自动播放的单个播放器中包含更多 Vimeo 视频

c++ - 更简单的c++模板编译错误输出

python - 静态链接 Python,但仍支持外部 .pyd 模块

c++ - 未定义的 namespace 引用 - gsoap 错误

python - 在Mouse中将 'elif'解释为画笔代码