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)