Mercurial Hosting > traffic-intelligence
changeset 816:0b03218cd008
merged
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Sat, 18 Jun 2016 14:26:50 -0400 |
parents | daa992ac6b44 (diff) 0ae57c76f19c (current diff) |
children | b9ec0cc2677d |
files | |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/c/feature-based-tracking.cpp Thu Jun 16 17:35:16 2016 +0000 +++ b/c/feature-based-tracking.cpp Sat Jun 18 14:26:50 2016 -0400 @@ -182,8 +182,13 @@ std::vector<FeaturePointMatch>::iterator iter = featurePointMatches.begin(); while (iter != featurePointMatches.end()) { bool deleteFeature = false; - - if (status[iter->pointNum] && (mask.at<uchar>(static_cast<int>(round(currPts[iter->pointNum].y)), static_cast<int>(round(currPts[iter->pointNum].x))) != 0)) { + + int currPtX = static_cast<int>(floor(currPts[iter->pointNum].x)); + int currPtY = static_cast<int>(floor(currPts[iter->pointNum].y)); + if ((status[iter->pointNum] =!0) && + (currPtX >= 0) && (currPtX < videoSize.width) && + (currPtY >= 0) && (currPtY < videoSize.height) && + (mask.at<uchar>(currPtY, currPtX) != 0)) { iter->feature->addPoint(frameNum, currPts[iter->pointNum], homography); deleteFeature = iter->feature->isDisplacementSmall(params.nDisplacements, minTotalFeatureDisplacement)