# HG changeset patch # User Nicolas Saunier # Date 1380836595 14400 # Node ID ca5784652d5740c0ae34a244e524897a039a4500 # Parent a2ff03a52b73190aca1d275312f6d9045fc42661 updated use of calcOpticalFlowPyrLK for new signature, added minEigThreshold parameter in configuration file diff -r a2ff03a52b73 -r ca5784652d57 c/Parameters.cpp --- a/c/Parameters.cpp Thu Sep 26 17:07:44 2013 -0400 +++ b/c/Parameters.cpp Thu Oct 03 17:43:15 2013 -0400 @@ -52,6 +52,7 @@ ("smoothing-halfwidth", po::value(&nFramesSmoothing), "number of frames to smooth positions (half window)") ("max-number-iterations", po::value(&maxNumberTrackingIterations), "maximum number of iterations to stop feature tracking") ("min-tracking-error", po::value(&minTrackingError), "minimum error to reach to stop feature tracking") + ("min-feature-eig-threshold", po::value(&minFeatureEigThreshold)->default_value(1e-4), "minimum eigen value of a 2x2 normal matrix of optical flow equations") ("min-feature-time", po::value(&minFeatureTime), "minimum length of a feature (number of frames) to consider a feature for grouping") ("mm-connection-distance", po::value(&mmConnectionDistance), "connection distance in feature grouping") ("mm-segmentation-distance", po::value(&mmSegmentationDistance), "segmentation distance in feature grouping") diff -r a2ff03a52b73 -r ca5784652d57 c/feature-based-tracking.cpp --- a/c/feature-based-tracking.cpp Thu Sep 26 17:07:44 2013 -0400 +++ b/c/feature-based-tracking.cpp Thu Oct 03 17:43:15 2013 -0400 @@ -164,7 +164,7 @@ if (!prevPts.empty()) { //::keyPoints2Points(prevKpts, prevPts); currPts.clear(); - calcOpticalFlowPyrLK(previousFrameBW, currentFrameBW, prevPts, currPts, status, errors, window, params.pyramidLevel, TermCriteria(3 /*static_cast(TermCriteria::COUNT)+static_cast(TermCriteria::EPS)*/, params.maxNumberTrackingIterations, params.minTrackingError), 0.5 /* unused */, 0); // OPTFLOW_USE_INITIAL_FLOW + calcOpticalFlowPyrLK(previousFrameBW, currentFrameBW, prevPts, currPts, status, errors, window, params.pyramidLevel, TermCriteria(3 /*static_cast(TermCriteria::COUNT)+static_cast(TermCriteria::EPS)*/, params.maxNumberTrackingIterations, params.minTrackingError), /* int flags = */ 0, params.minFeatureEigThreshold); /// \todo try calcOpticalFlowFarneback std::vector trackedPts; diff -r a2ff03a52b73 -r ca5784652d57 include/Parameters.hpp --- a/include/Parameters.hpp Thu Sep 26 17:07:44 2013 -0400 +++ b/include/Parameters.hpp Thu Oct 03 17:43:15 2013 -0400 @@ -47,6 +47,7 @@ //int nFramesVelocity; int maxNumberTrackingIterations; float minTrackingError; + float minFeatureEigThreshold; unsigned int minFeatureTime; float mmConnectionDistance; float mmSegmentationDistance; diff -r a2ff03a52b73 -r ca5784652d57 tracking.cfg --- a/tracking.cfg Thu Sep 26 17:07:44 2013 -0400 +++ b/tracking.cfg Thu Oct 03 17:43:15 2013 -0400 @@ -49,6 +49,8 @@ max-number-iterations = 20 # minimum error to reach to stop feature tracking min-tracking-error = 0.3 +# minimum eigen value of a 2x2 normal matrix of optical flow equations +min-feature-eig-threshold = 1e-4 # minimum length of a feature (number of frames) to consider a feature for grouping min-feature-time = 20 # Min Max similarity parameters (Beymer et al. method)