Updated by Marina Kolpakova almost 13 years ago
In file modules/video/src/lkpyramid.cpp, line 1072, inside function cvCalcOpticalFlowPyrLK(), its C++ version is called with a wrong input parameter.
The declaration of cv::calcOpticalFLowPyrLK() is
<pre><code class="cpp">
void cv::calcOpticalFlowPyrLK( InputArray _prevImg, InputArray _nextImg,
InputArray _prevPts, InputOutputArray _nextPts,
OutputArray _status, OutputArray _err,
Size winSize, int maxLevel,
TermCriteria criteria,
double derivLambda,
int flags, double minEigThreshold )
</code></pre>
while inside cvCalcOpticalFlowPyrLK(), it is called:
<pre><code class="cpp">
cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, status ? cv::_OutputArray(st) : cv::_OutputArray(),
error ? cv::_OutputArray(err) : cv::_OutputArray(),
winSize, level, criteria, flags);
</code></pre>
The 10th parameter is replaced by "int flags", which is actually "double derivLamba".
The declaration of cv::calcOpticalFLowPyrLK() is
<pre><code class="cpp">
void cv::calcOpticalFlowPyrLK( InputArray _prevImg, InputArray _nextImg,
InputArray _prevPts, InputOutputArray _nextPts,
OutputArray _status, OutputArray _err,
Size winSize, int maxLevel,
TermCriteria criteria,
double derivLambda,
int flags, double minEigThreshold )
</code></pre>
while inside cvCalcOpticalFlowPyrLK(), it is called:
<pre><code class="cpp">
cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, status ? cv::_OutputArray(st) : cv::_OutputArray(),
error ? cv::_OutputArray(err) : cv::_OutputArray(),
winSize, level, criteria, flags);
</code></pre>
The 10th parameter is replaced by "int flags", which is actually "double derivLamba".