comparison c/feature-based-tracking.cpp @ 278:f21ef87f98f1

resolved issue 2 and problem with negative nframes parameter
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 14 Dec 2012 01:01:55 -0500
parents 2d34060db2e9
children 68861b52a319
comparison
equal deleted inserted replaced
277:21f14fadd098 278:f21ef87f98f1
123 HOGDescriptor hog; 123 HOGDescriptor hog;
124 hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); 124 hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
125 125
126 int key = '?'; 126 int key = '?';
127 unsigned int savedFeatureId=0; 127 unsigned int savedFeatureId=0;
128 Mat frame, currentFrameBW, previousFrameBW; 128 Mat frame = Mat::zeros(1, 1, CV_8UC1), currentFrameBW, previousFrameBW;
129 129
130 unsigned int lastFrameNum = params.frame1+nFrames; 130 unsigned int lastFrameNum = nFrames;
131 if (params.nFrames > 0) 131 if (params.nFrames > 0)
132 lastFrameNum = MIN(params.frame1+params.nFrames, nFrames); 132 lastFrameNum = MIN(params.frame1+static_cast<unsigned int>(params.nFrames), nFrames);
133 133
134 capture.set(CV_CAP_PROP_POS_FRAMES, params.frame1); 134 //capture.set(CV_CAP_PROP_POS_FRAMES, params.frame1);
135 for (unsigned int frameNum = params.frame1; (frameNum < lastFrameNum) && !::interruptionKey(key); frameNum++) { 135 for (unsigned int frameNum = params.frame1; (frameNum < lastFrameNum) && !::interruptionKey(key); frameNum++) {
136 capture >> frame; 136 capture >> frame;
137
138 if (frame.empty() || frame.size() != videoSize)
139 break;
140
137 if (frameNum%50 ==0) 141 if (frameNum%50 ==0)
138 cout << "frame " << frameNum << endl; 142 cout << "frame " << frameNum << endl;
143
139 //capture.get(CV_CAP_PROP_POS_FRAMES) << " " << prevPts.size() << endl; 144 //capture.get(CV_CAP_PROP_POS_FRAMES) << " " << prevPts.size() << endl;
140 145
141 // int emptyFrameNum = 0; 146 // int emptyFrameNum = 0;
142 // while (frame.empty()) { 147 // while (frame.empty()) {
143 // cerr << "empty frame " << emptyFrameNum << " " << capture.get(CV_CAP_PROP_POS_FRAMES)<< endl; 148 // cerr << "empty frame " << emptyFrameNum << " " << capture.get(CV_CAP_PROP_POS_FRAMES)<< endl;