视频稳定 - 使用estimateGlobalMotionLeastSquares opencv 2.4.7

时间:2014-01-25 15:52:24

标签: c opencv motion estimation stability

我是视频稳定领域的新手。现在我正在研究它。 我正在编写一个小型视频稳定演示。但是我遇到了一些问题 我在OpenCV中使用函数“estimateGlobalMotionLeastSquares”来估计全局运动 但它不起作用

这是我的代码:

CvPoint2D32f p0, p1;
vector<Point2f,allocator<Point2f>> ax, by;
ax.push_back(Point2f(2,2));
by.push_back(Point2f(3,2));
Mat t = estimateGlobalMotionLeastSquares(ax,by,AFFINE,0);

例如:我创建2个变量p0,p1作为函数的参数“ estimateGlobalMotionLeastSquares“我想估计全局运动”t“。 但是当我遵守时,错误是:

  

1&gt; VS_OpenCVDlg.obj:错误LNK2001:未解析的外部符号“class cv :: Mat __cdecl cv :: videostab :: estimateGlobalMotionLeastSquares(class std :: vector,class std :: allocator&gt;&gt; const&amp;,class std :: vector,class std :: allocator&gt;&gt; const&amp;,int,float *)“(?estimateGlobalMotionLeastSquares @ videostab @ cv @@ YA?AVMat @ 2 @ ABV?$ vector @ V?$ Point_ @ M @ CV @@ V'$ @分配器V'$ @ Point_米@简历@@@性病性病@@@ @@ 0HPAM @ Z)   1&gt; F:\ Research \ Workspace \ VS_OpenCV \ Debug \ VS_OpenCV.exe:致命错误LNK1120:1个未解析的外部

请帮我解决这个问题!!! 你能给我一些关于这个功能的例子吗?

1 个答案:

答案 0 :(得分:3)

尝试包含正确的文件:

#include "opencv2/videostab/videostab.hpp"

并将您的代码更改为:

CvPoint2D32f p0, p1;
vector<Point2f,allocator<Point2f>> ax, by;
ax.push_back(Point2f(2,2));
ax.push_back(Point2f(2,3));
ax.push_back(Point2f(2,4));
by.push_back(Point2f(3,2));
by.push_back(Point2f(3,3));
by.push_back(Point2f(3,4));
Mat t = videostab::estimateGlobalMotionLeastSquares(ax,by,3,0);