comparison c/feature-based-tracking.cpp @ 400:7ef1071e3cc3

clean up of input classes for list of images and video files
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 29 Jul 2013 18:06:55 -0400
parents c389fae9689a
children b829ebdc18e6
comparison
equal deleted inserted replaced
399:c389fae9689a 400:7ef1071e3cc3
80 Size window = Size(params.windowSize, params.windowSize); 80 Size window = Size(params.windowSize, params.windowSize);
81 81
82 // BruteForceMatcher<Hamming> descMatcher; 82 // BruteForceMatcher<Hamming> descMatcher;
83 // vector<DMatch> matches; 83 // vector<DMatch> matches;
84 84
85 InputFrameProviderIface* capture = nullptr; 85 InputFrameProviderIface* capture = 0;
86 if(!params.listFilename.empty() && !params.folderData.empty()) 86 if(!params.listFilename.empty() && !params.folderData.empty())
87 capture = new InputFrameListModule(params.folderData, params.listFilename); 87 capture = new InputFrameListModule(params.folderData, params.listFilename);
88 else if(!params.videoFilename.empty()) 88 else if(!params.videoFilename.empty())
89 capture = new InputVideoFileModule(params.videoFilename); 89 capture = new InputVideoFileModule(params.videoFilename);
90 else 90 else
91 cout << "No valid input parameters"; 91 cout << "No valid input parameters";
92 92
93 if(!capture->isOpen()) 93 if(!capture->isOpen()) {
94 { 94 cout << "Video filename " << params.videoFilename << " could not be opened. Exiting." << endl;
95 cout << "Video filename " << params.videoFilename << " could not be opened. Exiting." << endl; 95 exit(0);
96 exit(0);
97 } 96 }
98 97
99 Size videoSize = capture->getSize(); 98 Size videoSize = capture->getSize();
100 unsigned int nFrames = capture->getNbFrames(); 99 unsigned int nFrames = capture->getNbFrames();
101 cout << "Video " << params.videoFilename << 100 cout << "Video " << params.videoFilename <<
134 133
135 unsigned int lastFrameNum = nFrames; 134 unsigned int lastFrameNum = nFrames;
136 if (params.nFrames > 0) 135 if (params.nFrames > 0)
137 lastFrameNum = MIN(params.frame1+static_cast<unsigned int>(params.nFrames), nFrames); 136 lastFrameNum = MIN(params.frame1+static_cast<unsigned int>(params.nFrames), nFrames);
138 137
139 //capture.set(CV_CAP_PROP_POS_FRAMES, params.frame1); 138 capture->setFrameNumber(params.frame1);
140 for (unsigned int frameNum = params.frame1; (frameNum < lastFrameNum) && !::interruptionKey(key); frameNum++) { 139 for (unsigned int frameNum = params.frame1; (frameNum < lastFrameNum) && !::interruptionKey(key); frameNum++) {
141 bool success = capture->getNextFrame(frame); 140 bool success = capture->getNextFrame(frame);
142 141
143 if (!success || frame.empty() || frame.size() != videoSize) 142 if (!success || frame.empty() || frame.size() != videoSize)
144 break; 143 break;