实现图像稳定opencv,c ++

时间:2011-01-05 21:18:16

标签: c++ image image-processing opencv

今天,我有很多问题,我需要任何帮助,即使在我的问题的某些部分。 这些问题非常迫切需要回答,所以请尽我所能。

我正在使用光流法研究图像稳定。这个步骤正确完成并给出了很好的结果,现在我想实现视频的稳定性,我有两种方法可以做到这一点: 第一种方式: 我已经获得了第一帧和下一帧的特征之间的平移和旋转矩阵。现在,我的主管建议我这样做;使画布比原始画面大两倍,并复制中间的第一帧。对于每个下一帧,使用我获得的变换来计算偏移和旋转。使用这些参数并将下一帧复制到其更正位置。这应该会产生一个纠正的视频。

那怎么办呢?如果可用,请关于openCV中的功能帮助。

第二种方式,

我试图以自己的方式做到这一点,我试图通过扭曲图像来获取更正的视频,我已经获得了单应矩阵,但无论如何它都不适用于函数cvWarpPerspective().,这是正确的我在这里做什么来获得稳定的图像或你的建议?

问题:

1- Homography矩阵给出的负值是正确的吗?

2-正如我上面提到的关于旋转和平移矩阵,我必须制作这个等式,以便将第二帧中的估计特征返回到第一帧中的位置

Y =旋转矩阵* x +平移矩阵

它有时给出几乎完美的结果,而另一次给出非常可怕的结果,我得到负值并远离他们应该在的位置,为什么它就像那样?

请回答即使是子问题也能回答的问题

非常感谢你。

2 个答案:

答案 0 :(得分:1)

看起来您可能有错误的对应关系会破坏您的算法以恢复全局对齐(BTW,您使用哪种算法?)。试着看一下只有少量对应关系的合成数据集会发生什么可能会有所帮助。

答案 1 :(得分:-1)

  

Homography矩阵给出的负值是正确的吗?

可能不是。我想这需要从“后面”查看图像。

  

另一次给予非常   可怕的结果,我得到否定   价值和远离该位置   他们应该在,为什么会这样   是什么?

一些想法:

  • 一个int类型溢出?
  • 功能检测不正确?
  • 如果我没记错的话,单应矩阵只有在翻译不是NULL时才有效