Mercurial > hg > nsaunier > traffic-intelligence
annotate include/cvutils.hpp @ 398:3399bd48cb40
Ajout d'une méthode pour obtenir le nombre de FPS
Méthode de capture des trames vidéos plus résistante aux erreur
Utilisation d'un dictionnaire pour les fichier de configuration afin de garder le nom des sections
| author | Jean-Philippe Jodoin <jpjodoin@gmail.com> |
|---|---|
| date | Mon, 29 Jul 2013 13:46:07 -0400 |
| parents | 0089fb29cd26 |
| children | 5eeb3b9fb568 |
| 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 |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
131
diff
changeset
|
20 template<typename T> |
|
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
131
diff
changeset
|
21 float scalarProduct(const cv::Point_<T>& v1, const cv::Point_<T>& v2) { return v1.x*v2.x+v1.y*v2.y;} |
|
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. */ |
| 9 | 26 IplImage* allocateImage(const int& width, const int& height, const int& depth, const int& channels); |
| 27 | |
| 28 IplImage* allocateImage(const CvSize& size, const int& depth, const int& channels); | |
| 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.*/ |
|
ff5403319cec
optical flow demo working
Nicolas Saunier <nico@confins.net>
parents:
11
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 |
