Commit 3442a8de authored by Vladislav Samsonov's avatar Vladislav Samsonov

Handle incorrect flow vectors in gpc_evaluate; fixes opencv/opencv#9183

parent 617db6c4
...@@ -114,6 +114,7 @@ int main( int argc, const char **argv ) ...@@ -114,6 +114,7 @@ int main( int argc, const char **argv )
std::cout << "Found " << corr.size() << " matches." << std::endl; std::cout << "Found " << corr.size() << " matches." << std::endl;
std::cout << "Time: " << meter.getTimeSec() << " sec." << std::endl; std::cout << "Time: " << meter.getTimeSec() << " sec." << std::endl;
double error = 0; double error = 0;
int totalCorrectFlowVectors = 0;
Mat dispErr = Mat::zeros( from.size(), CV_32FC3 ); Mat dispErr = Mat::zeros( from.size(), CV_32FC3 );
dispErr = Scalar( 0, 0, 1 ); dispErr = Scalar( 0, 0, 1 );
Mat disp = Mat::zeros( from.size(), CV_32FC3 ); Mat disp = Mat::zeros( from.size(), CV_32FC3 );
...@@ -123,13 +124,22 @@ int main( int argc, const char **argv ) ...@@ -123,13 +124,22 @@ int main( int argc, const char **argv )
{ {
const Point2f a = corr[i].first; const Point2f a = corr[i].first;
const Point2f b = corr[i].second; const Point2f b = corr[i].second;
const Point2f c = a + gt.at< Point2f >( corr[i].first.y, corr[i].first.x ); const Point2f gtDisplacement = gt.at< Point2f >( corr[i].first.y, corr[i].first.x );
// Check that flow vector is correct
if (!cvIsNaN(gtDisplacement.x) && !cvIsNaN(gtDisplacement.y) && gtDisplacement.x < 1e9 && gtDisplacement.y < 1e9)
{
const Point2f c = a + gtDisplacement;
error += normL2( b - c ); error += normL2( b - c );
circle( disp, a, 3, getFlowColor( b - a ), -1 );
circle( dispErr, a, 3, getFlowColor( b - c, false, 32 ), -1 ); circle( dispErr, a, 3, getFlowColor( b - c, false, 32 ), -1 );
++totalCorrectFlowVectors;
}
circle( disp, a, 3, getFlowColor( b - a ), -1 );
} }
error /= corr.size(); if (totalCorrectFlowVectors)
error /= totalCorrectFlowVectors;
std::cout << "Average endpoint error: " << error << " px." << std::endl; std::cout << "Average endpoint error: " << error << " px." << std::endl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment