Mercurial > hg > nsaunier > traffic-intelligence
annotate include/cvutils.hpp @ 662:72174e66aba5
corrected bug that increased TTC by 1 frame and structure to store collision points and crossing zones
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 18 May 2015 17:17:06 +0200 |
| parents | b6ad86ee7033 |
| children | 17e54690af8a 8ac7f61c6e4f |
| rev | line source |
|---|---|
| 9 | 1 #ifndef CVUTILS_HPP |
| 2 #define CVUTILS_HPP | |
| 3 | |
|
126
336926453b28
added conversion function from keypoint vector to point vector and cleaned headers
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
70
diff
changeset
|
4 #include "opencv2/core/core.hpp" |
|
336926453b28
added conversion function from keypoint vector to point vector and cleaned headers
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
70
diff
changeset
|
5 #include "opencv2/features2d/features2d.hpp" |
| 9 | 6 |
|
12
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
7 class CvCapture; |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
131
diff
changeset
|
8 //template<typename T> class Point_<T>; |
|
12
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
9 |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
10 /// constant that indicates if the image should be flipped |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
11 //static const int flipImage = CV_CVTIMG_FLIP; |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
12 |
|
147
0089fb29cd26
added projection of points and reprojection for display
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
144
diff
changeset
|
13 /** Projects a point with the homography matrix |
|
0089fb29cd26
added projection of points and reprojection for display
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
144
diff
changeset
|
14 use perspectiveTransform for arrays of points. */ |
|
0089fb29cd26
added projection of points and reprojection for display
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
144
diff
changeset
|
15 cv::Point2f project(const cv::Point2f& p, const cv::Mat& homography); |
|
0089fb29cd26
added projection of points and reprojection for display
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
144
diff
changeset
|
16 |
|
144
b32947b002da
added the code to read matrices from text files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
139
diff
changeset
|
17 /** Loads a cv mat from a text file where the numbers are saved line by line separated by separator */ |
|
b32947b002da
added the code to read matrices from text files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
139
diff
changeset
|
18 cv::Mat loadMat(const std::string& filename, const std::string& separator); |
|
b32947b002da
added the code to read matrices from text files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
139
diff
changeset
|
19 |
|
481
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
407
diff
changeset
|
20 //template<typename T> |
|
b6ad86ee7033
implemented smoothing (requires latest trajectory management library version)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
407
diff
changeset
|
21 //float scalarProduct(const cv::Point_<T>& v1, const cv::Point_<T>& v2) { return v1.x*v2.x+v1.y*v2.y;} |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
131
diff
changeset
|
22 |
|
128
536510f60854
new features generated as needed
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
127
diff
changeset
|
23 void keyPoints2Points(const std::vector<cv::KeyPoint>& kpts, std::vector<cv::Point2f>& pts, const bool& clearPts = true); |
|
126
336926453b28
added conversion function from keypoint vector to point vector and cleaned headers
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
70
diff
changeset
|
24 |
|
12
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
25 /** Allocates a new IplImage. */ |
|
407
5eeb3b9fb568
commented problem code (opencv 2.4.6)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
26 // IplImage* allocateImage(const int& width, const int& height, const int& depth, const int& channels); |
| 9 | 27 |
|
407
5eeb3b9fb568
commented problem code (opencv 2.4.6)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
28 // IplImage* allocateImage(const CvSize& size, const int& depth, const int& channels); |
| 9 | 29 |
|
12
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
30 /** Goes to the target frame number, by querying frame, |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
31 supposing the video input is currently at current frame number. |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
diff
changeset
|
32 Returns the frame number that was reached.*/ |
|
407
5eeb3b9fb568
commented problem code (opencv 2.4.6)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
33 // int goToFrameNum(CvCapture* inputVideo, const int& currentFrameNum, const int& targetFrameNum); |
|
11
e77e2fd69b02
modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents:
9
diff
changeset
|
34 |
| 131 | 35 /// Pre-defined colors |
| 36 class Colors { | |
| 37 public: | |
| 38 static const int nColors = 8; | |
| 39 static const cv::Scalar color[]; | |
| 40 | |
| 41 static cv::Scalar black(void); | |
| 42 static cv::Scalar red(void); | |
| 43 static cv::Scalar green(void); | |
| 44 static cv::Scalar blue(void); | |
| 45 static cv::Scalar white(void); | |
| 46 static cv::Scalar magenta(void); | |
| 47 static cv::Scalar cyan(void); | |
| 48 static cv::Scalar yellow(void); | |
| 49 | |
| 50 /** Maps integers to primary colors. */ | |
| 51 static cv::Scalar color3(const int& num); | |
| 52 static cv::Scalar color8(const int& num); | |
| 53 }; | |
| 54 | |
| 9 | 55 #endif |
