VAT  3.0
Video Analysis Tool
footballscenemodel.h
1 #ifndef FOOTBALLSCENEMODEL_H
2 #define FOOTBALLSCENEMODEL_H
3 #include "calibration.h"
4 #include "footballConstants.h"
5 
6 
7 /***
8  * Author: Cristobal Barrientos Low, cbarrientoslow@gmail.com
9  *
10  * Tipo: Modelo de escena para campo de juego en el contexto del fútbol
11  * Paper:Learning Surveillance Tracking Models for Self-Calibrated Groud Plane
12  * Autores: J. Renno, P. Remagnino, G.A Jones
13 */
14 
15 enum fieldZones
16 {
17  teamA_zone,
18  teamB_zone,
19  outOfField,
20  teamA_smallarea,
21  teamB_smallarea,
22  middleField_zone,
23  fieldZone
24 };
25 
26 //Estructura que define las variables para representar una muestra de tamaño
27 typedef struct sizeSample sizeSample;
28 struct sizeSample
29 {
30  double value;
31  QPoint pointImage;
32 };
33 
35 {
36 public:
37 
39  footballSceneModel(double hmodel, double wmodel, double par1, double par2);
41 
42  void setParameters(const cv::Mat &p, const cv::Mat &h);
43  bool trainSizesModel();
44  std::vector< sizeSample > getSamples();//Obtiene muestras de tamaño desde un archivo CSV
45  void setField(); //Definir las lineas que pertenecen al campo de juego dado los parámetros de tamaño de éste
46  void setFieldDimensions();//Definir las dimensiones reales en metros del terreno de juego
47 
48  double getHeightFromModel(int px, int py);
49  double getWidthFromModel(int px, int py, double angle = 0);
50  double WmodelfromAngle(double angle);
51 
52  bool isOnArea(int px, int py, fieldZones zone);//Entrega Verdadero si el punto en la imagen se encuentra sobre alguna de las areas del campo de juego
53 
54  QPointF getRealWorldFieldPos(double px, double py);
55  QPoint getScreenFieldPos(double x, double y);
56 
57  //Altura del jugador en cierta posición vertical en la imagen
58  double _hmodel;
59  double _wmodel; //Person
60  double _par1;
61  double _par2;
62 
63  std::map< fieldZones, QRect > zones; //Rectas en la imagen que definen cada una de las zonas del campo de juego
64 
65  perspective_matrix pM; //Matriz Perspectiva de la cámara
66  homography_matrix hM; //Matriz de Homografía entre el campo de juego y la cámara
67 };
68 
69 #endif // FOOTBALLSCENEMODEL_H
Definition: footballscenemodel.h:28
Definition: footballscenemodel.h:34
Definition: calibration.h:51