VAT  3.0
Video Analysis Tool
BackgroundRecLigth.h
1 
10 #ifndef BACKGROUNDRECLIGTH_H
11 #define BACKGROUNDRECLIGTH_H
12 
13 #include <QImage>
14 #include <QDir>
15 #include "Datapool.h"
16 #include "ModuleInterface.h"
17 
18 using namespace std;
19 
20 struct data {
21  int position;
22  int value;
23 };
24 
30 {
31 public:
32  Dynamic_Analisis(uchar *function,int N_row, int N_heigh, int N_Frame);
33 
34  //Metodos adicionales
35  void set_pixel(int x, int y)
36  {
37  this->x_pixel = x;
38  this->y_pixel = y;
39  }
40 
41  //Para Watershed
42  void inundar();
43  void ver_lista();
44  void get_regional_point_left(data dato_in);
45  void get_regional_point_right(data dato_in);
46  void get_max_point_left();
47  void get_max_point_right();
48  int find_position(int Position);
49 
50  //Recuperacion del fonfo
51  void max_dym();
52  void min_dym();
53 
54 private:
55  //Imagen a analizar (gx)
56  uchar *function;
57 
58  //Para Watershed
59  vector<data> *List; //Lista de pixeles para watershed
60  vector<uchar> *minimos; //minimos locales
61  vector<uchar> *maximos; //maximos locales
62  int Point_left; //pixel inundado por el lado izquierdo
63  int Point_right; //pixel inundado por el lado derecho
64 
65  //Para analisis dinamico y recuperacion de fonfo
66  vector<uchar> *F; //F (ver paper)
67  vector<uchar> *D; //D (ver paper)
68  vector<uchar> *L; //L (ver paper)
69  void generate_dinamic_values();
70 
71  //Parametros generales
72  int N_Frame;
73  int N_Row;
74  int N_Column;
75  int x_pixel;
76  int y_pixel;
77 
78  //Metodos generales
79  void remover_dato(int posicion){
80  List->erase(List->begin() + posicion);
81  }
82  data seleccionar_menor(){
83  data menor = this->List->at(this->List->size()-101);
84  List->pop_back(); //ELIMINA ELEMENTO VECTOR
85  return menor;
86  }
87  void agregar_maximo_local(uchar valor)
88  {
89  this->maximos->push_back(valor);
90  //std::cout << "\t MAXIMO AGREGADO, valor:" << (int)valor << ", Tamaño" << this->maximos->size() <<"\n";
91  }
92  void agregar_minimo_local(uchar valor)
93  {
94  //std::cout << "\t MINIMO AGREGADO, valor:" << (int)valor << ", Tamaño" << this->minimos->size() << "\n";
95  this->minimos->push_back(valor);
96  }
97 };
98 
99 
101 
102 public:
103  BackgroundRecLight(Datapool *i_data);
105 
106  //Set module configuration parameters
107  bool setParameters(QDomNode& config);
108 
109  //Initialization after reading parameters
110  bool init();
111 
112  //Function executed at each frame
113  bool run();
114 
115  //update parameters at runtime.
116  bool updateParameters();
117 
118 private:
119  //Parametros bloques
120  int m_nsize;
121  int m_msize;
122  int m_Nframes;
123  int x_posframe;
124  int y_posframe;
125  int m_NumFramesX;
126  int m_NumFramesY;
127 
128  //Atributos
129  bool firstTime;
130  uchar *f_x; //Imagenes sin procesar
131  uchar *g_x; //Imagenes procesadas
132  uchar *media_ponderada; //Media bloque
133  uchar *bufferdata; //Buffer con imagenes originales
134  uchar *bufferbackground; //Buffer con fondo recuperado
135 
136  //Metodos (explicados en *.cpp)
137  bool set_intensity(int column, int row, int Frame, uchar value);
138  bool process_buffer();
139  uchar dilation5(int column, int row, int Frame, uchar *frame);
140  uchar erotion5(int column, int row, int Frame, uchar *frame);
141  void dilation_frame(uchar **output, uchar *input);
142  void erotion_frame(uchar **output, uchar *input);
143  void get_buffer_characteristics(float *mean, float *std_dev);
144  void see_frame_change(uchar *fx, uchar *gx, int *dx, int *ax, int *dx_p, int *ap, int *an, int row, int columns);
145  void dyn_maxima(uchar *gx, int output);
146  void watershed1D(uchar *gx, vector<data> *datas);
147  void select_case(int *ax, float mean_gx, int Sp, int Sn, int Sp_prime, int Sn_prime, int row, int columns);
148 };
149 
150 #endif // BACKGROUNDRECLIGTH_H
Definition: ModuleInterface.h:43
Definition: BackgroundRecLigth.h:29
An object of this class is instantiated at main code, and this object is used by every class to push ...
Definition: Datapool.h:39
Definition: BackgroundRecLigth.h:20
Definition: BackgroundRecLigth.h:100