Mercurial > hg > nsaunier > traffic-intelligence
comparison c/feature-based-tracking.cpp @ 193:a728fce85881
simple test of adding and using default HoG pedestrian detector
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 12 Dec 2011 15:44:54 -0500 |
| parents | 0e60a306d324 |
| children | 09c7881073f3 |
comparison
equal
deleted
inserted
replaced
| 192:38974d27dd2d | 193:a728fce85881 |
|---|---|
| 10 #include "opencv2/core/core.hpp" | 10 #include "opencv2/core/core.hpp" |
| 11 #include "opencv2/imgproc/imgproc.hpp" | 11 #include "opencv2/imgproc/imgproc.hpp" |
| 12 #include "opencv2/video/tracking.hpp" | 12 #include "opencv2/video/tracking.hpp" |
| 13 #include "opencv2/features2d/features2d.hpp" | 13 #include "opencv2/features2d/features2d.hpp" |
| 14 #include "opencv2/highgui/highgui.hpp" | 14 #include "opencv2/highgui/highgui.hpp" |
| 15 #include "opencv2/objdetect/objdetect.hpp" | |
| 15 | 16 |
| 16 #include <boost/shared_ptr.hpp> | 17 #include <boost/shared_ptr.hpp> |
| 17 #include <boost/foreach.hpp> | 18 #include <boost/foreach.hpp> |
| 18 | 19 |
| 19 #include <iostream> | 20 #include <iostream> |
| 136 Mat prevDesc, currDesc; | 137 Mat prevDesc, currDesc; |
| 137 | 138 |
| 138 vector<FeatureTrajectoryPtr> lostFeatures; | 139 vector<FeatureTrajectoryPtr> lostFeatures; |
| 139 vector<FeaturePointMatch> featurePointMatches; | 140 vector<FeaturePointMatch> featurePointMatches; |
| 140 | 141 |
| 142 HOGDescriptor hog; | |
| 143 hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); | |
| 144 | |
| 141 int key = '?'; | 145 int key = '?'; |
| 142 unsigned int savedFeatureId=0; | 146 unsigned int savedFeatureId=0; |
| 143 Mat frame, currentFrameBW, previousFrameBW; | 147 Mat frame, currentFrameBW, previousFrameBW; |
| 144 for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)) && !::interruptionKey(key); frameNum++) { | 148 for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)) && !::interruptionKey(key); frameNum++) { |
| 145 capture >> frame; | 149 capture >> frame; |
| 197 saveFeatures(lostFeatures, *trajectoryDB, "positions", "velocities"); | 201 saveFeatures(lostFeatures, *trajectoryDB, "positions", "velocities"); |
| 198 | 202 |
| 199 if (params.display) { | 203 if (params.display) { |
| 200 BOOST_FOREACH(FeaturePointMatch fp, featurePointMatches) | 204 BOOST_FOREACH(FeaturePointMatch fp, featurePointMatches) |
| 201 fp.feature->draw(frame, invHomography, Colors::red()); | 205 fp.feature->draw(frame, invHomography, Colors::red()); |
| 206 // object detection | |
| 207 // vector<Rect> locations; | |
| 208 // hog.detectMultiScale(frame, locations, 0, Size(8,8), Size(32,32), 1.05, 2); | |
| 209 // BOOST_FOREACH(Rect r, locations) | |
| 210 // rectangle(frame, r.tl(), r.br(), cv::Scalar(0,255,0), 3); | |
| 202 } | 211 } |
| 203 //drawOpticalFlow(prevPts, currPts, status, frame); | 212 //drawOpticalFlow(prevPts, currPts, status, frame); |
| 204 | 213 |
| 205 // cout << matches.size() << " matches" << endl; | 214 // cout << matches.size() << " matches" << endl; |
| 206 // descMatcher.match(currDesc, prevDesc, matches); | 215 // descMatcher.match(currDesc, prevDesc, matches); |
