imagepro  2019 march
Biblioteca imagepro
measure2d.h
Ir a la documentación de este archivo.
1 
70 #ifndef MEASURE2D_H
71 #define MEASURE2D_H
72 
73 #include <QDebug>
74 #include <QVector3D>
75 #include <QtMath>
76 #include <QLineF>
77 #include "imagepro.h"
78 
79 namespace m2d {
80 
81 enum Units {
83 };
84 
85 // -- Possible outputs
86 typedef struct
87 {
88  // -- Possible inputs for measure2D:
89  QPoint A_2d;
90  QPoint B_2d;
91  double image_width;
92  double image_height;
93  double h_meter2pix;
94  double v_meter2pix;
95  double camera_azimut;
102  double h_FOV;
103  double v_FOV;
105 
113  double err_h_FOV;
114  double err_v_FOV;
115 
116  //Extra inputs for grids:
117  int nV_lines;
119  bool showText;
120 }
122 
123 typedef struct
124 {
125  // -- Output
126  QList <int> measure_id;
127  QList <QDateTime> fk_datetime ;
128  QStringList fk_station ;
129 
130  QList <QVector3D> A_3d;
131  QList <QVector3D> B_3d;
132 
133  QList <double> measure_length;
134  QList <double> measure_base;
135  QList <double> measure_height;
136  QList <double> measure_elevation;
137  QList <bool > measure_outOfRange;
138 
139  QList <QVector3D> err_A_3d;
140  QList <QVector3D> err_B_3d;
141 
142  QList <double> err_measure_length;
143  QList <double> err_measure_base;
144  QList <double> err_measure_height;
145  QList <double> err_measure_elevation;
146 
147  QList <QPoint> measure_A_2d;
148  QList <QPoint> measure_B_2d;
149  QList <QPoint> measure_base_point;
150  QList <QPoint> measure_height_point;
151 
152  QList <Units> measure_units;
153 
155 }
156 measured2D_imgwc; //usada por el volcamwidgets
157 
158 typedef struct
159 {
160  // -- Output
161  QVector3D A_3d;
162  QVector3D B_3d;
163 
165  double measure_base;
169 
170  QVector3D err_A_3d;
171  QVector3D err_B_3d;
172 
177 
178  QPoint measure_A_2d;
179  QPoint measure_B_2d;
182 
184 
186 }
188 }
189 
190 using namespace m2d;
192 {
193 public:
194  Measure2D();
195  ~Measure2D();
196 
197  // -- Possible inputs
198  QPoint A_2d;
199  QPoint B_2d;
200  double image_width;
201  double image_height;
202  double h_meter2pix;
203  double v_meter2pix;
211  double h_FOV;
212  double v_FOV;
214 
222  double err_h_FOV;
223  double err_v_FOV;
224 
225  measure2Dinput getMeasure2Dinput_empty();
227  void setInputData_VerticalCorrection(bool verticalCorrection_);
228 
229  void set_cleanInputData();
230  void set_cleanOutputData();
231 
232  void setInputData( measure2Dinput m2dinput);
233  void setInputData( double v_meter2pix_);
234  void setInputData( double image_width_, double image_height_);
235  void setInputData( double camera_latitude_, double camera_longitud_, double camera_height_, double object_distance_);
236  void setInputData( double camera_azimut_, double camera_rotation_, double camera_elevation_, double h_FOV_, double v_FOV_);
237  void setInputData( QPoint A_2d_, QPoint B_2d_, double h_FOV_, double v_FOV_ , double object_distance_, double image_width_, double image_height_);
238  void setInputData( QPoint A_2d_, QPoint B_2d_, double h_meter2pix_, double v_meter2pix_ );
239  void setInputData(QPoint A_2d_, QPoint B_2d_, double h_meter2pix_, double v_meter2pix_ ,
240  double object_distance_, double image_width_, double image_height_ ,
241  double h_FOV_, double v_FOV_,
242  double camera_azimut_, double camera_rotation_, double camera_elevation_,
243  double camera_latitude_, double camera_longitud_, double camera_height_);
244 
245  void setInputDataErrors( double err_camera_azimut_, double err_camera_rotation_, double err_camera_elevation_, double err_h_FOV_, double err_v_FOV_);
246  void setInputDataErrors( double err_pickPixError_, double err_h_FOV_, double err_v_FOV_ , double err_object_distance_);
247  void setInputDataErrors( double err_pickPixError_, double err_h_meter2pix_, double err_v_meter2pix_);
248  void setInputDataErrors(double err_pickPixError_, double err_h_meter2pix_, double err_v_meter2pix_ ,
249  double err_object_distance_, double err_h_FOV_, double err_v_FOV_ ,
250  double err_camera_azimut_, double err_camera_rotation_, double err_camera_elevation_);
251 
252  measure2Doutput getOutputData();
253  measure2Doutput getEmptyOutputData();
254  void getOutputData( double *length, double *base , double *height, double *elevation, bool *outOfRange );
255  void getOutputData( QVector3D *A_3d_, QVector3D *B_3d_);
256  void getOutputDataErr(double *err_length, double *err_base , double *err_height, double *err_elevation);
257  void getOutputDataErr( QVector3D *err_A_3d_, QVector3D *err_B_3d_);
258 
259  void calculate_factors();
260  void calculate_measure2d();
261  void calculate_3d_postion();
262 
264 
265  QPixmap draw(QPixmap pix_original_, measured2D_imgwc m2d_data_);
266  QPixmap getOutputImage();
267 
268  QString logText;
269  QString inputDataAsText();
270  QString outMeasureAsText();
271  void writeLog(QString logtext);
272  QString get_logText();
273 
274  Units getUnit() const;
275  void setUnit(const Units &value);
276 
277 private:
278  // -- Possible outputs
279  measure2Doutput output;
280  Units unit;
281 
282  Mat *image_original;
283  Mat *image_final;
284  QPixmap pix_original;
285  QPixmap *pix_final;
286 
287  QImage image;
288  QPixmap pout;
289 };
290 
291 
292 #endif // MEASURE2D_H
double err_v_meter2pix
Definition: measure2d.h:108
QList< QVector3D > err_B_3d
Definition: measure2d.h:140
Definition: measure2d.h:82
QList< QVector3D > B_3d
Definition: measure2d.h:131
double measure_base
Definition: measure2d.h:165
double camera_elevation
Definition: measure2d.h:206
QList< double > err_measure_base
Definition: measure2d.h:143
double err_v_FOV
Definition: measure2d.h:114
QList< QPoint > measure_height_point
Definition: measure2d.h:150
QVector3D err_A_3d
Definition: measure2d.h:170
QList< QPoint > measure_B_2d
Definition: measure2d.h:148
QList< double > err_measure_elevation
Definition: measure2d.h:145
double err_measure_base
Definition: measure2d.h:174
double err_measure_length
Definition: measure2d.h:173
Definition: measure2d.h:191
double h_FOV
Definition: measure2d.h:102
double image_height
Definition: measure2d.h:201
double err_h_meter2pix
Definition: measure2d.h:107
double v_FOV
Definition: measure2d.h:103
double err_camera_azimut
Definition: measure2d.h:109
bool showText
Definition: measure2d.h:119
double err_pickPixError
Definition: measure2d.h:106
double camera_rotation
Definition: measure2d.h:205
QVector3D err_B_3d
Definition: measure2d.h:171
Definition: measure2d.h:82
QPoint B_2d
Definition: measure2d.h:90
double meter2degrees
Definition: measure2d.h:213
QList< double > measure_elevation
Definition: measure2d.h:136
QList< Units > measure_units
Definition: measure2d.h:152
double image_width
Definition: measure2d.h:91
double err_h_FOV
Definition: measure2d.h:222
double camera_rotation
Definition: measure2d.h:96
double v_meter2pix
Definition: measure2d.h:203
double camera_longitud
Definition: measure2d.h:99
QList< int > vpointimgwc_matched_id
Definition: measure2d.h:154
Definition: measure2d.h:79
double image_width
Definition: measure2d.h:200
QPoint measure_B_2d
Definition: measure2d.h:179
QList< double > err_measure_length
Definition: measure2d.h:142
double camera_longitud
Definition: measure2d.h:208
QPoint B_2d
Definition: measure2d.h:199
double err_camera_rotation
Definition: measure2d.h:110
double err_h_FOV
Definition: measure2d.h:113
double v_meter2pix
Definition: measure2d.h:94
double h_meter2pix
Definition: measure2d.h:93
double measure_length
Definition: measure2d.h:164
QPoint measure_A_2d
Definition: measure2d.h:178
double err_object_distance
Definition: measure2d.h:221
QList< bool > measure_outOfRange
Definition: measure2d.h:137
QList< QPoint > measure_A_2d
Definition: measure2d.h:147
double err_camera_azimut
Definition: measure2d.h:218
double v_FOV
Definition: measure2d.h:212
double err_camera_elevation
Definition: measure2d.h:111
QPoint A_2d
Definition: measure2d.h:198
Clase auxiliar para transformar imágenes de un formato a otro (Mat, QPixmap, QImage)
QList< double > measure_height
Definition: measure2d.h:135
Units
Definition: measure2d.h:81
double h_FOV
Definition: measure2d.h:211
double err_h_meter2pix
Definition: measure2d.h:216
Units measure_units
Definition: measure2d.h:183
double err_pickPixError
Definition: measure2d.h:215
Definition: measure2d.h:86
double camera_latitude
Definition: measure2d.h:98
double err_measure_elevation
Definition: measure2d.h:176
QPoint measure_height_point
Definition: measure2d.h:181
double err_measure_height
Definition: measure2d.h:175
double err_v_FOV
Definition: measure2d.h:223
double camera_height
Definition: measure2d.h:100
Definition: measure2d.h:123
Definition: measure2d.h:158
QList< double > measure_length
Definition: measure2d.h:133
QString logText
Definition: measure2d.h:268
double err_object_distance
Definition: measure2d.h:112
QList< int > measure_id
Definition: measure2d.h:126
double camera_latitude
Definition: measure2d.h:207
QList< double > err_measure_height
Definition: measure2d.h:144
int vpointimgwc_matched_id
Definition: measure2d.h:185
double camera_height
Definition: measure2d.h:209
QList< QDateTime > fk_datetime
Definition: measure2d.h:127
QVector3D A_3d
Definition: measure2d.h:161
double image_height
Definition: measure2d.h:92
double camera_azimut
Definition: measure2d.h:204
bool measure_outOfRange
Definition: measure2d.h:168
double err_camera_rotation
Definition: measure2d.h:219
QList< QVector3D > A_3d
Definition: measure2d.h:130
double camera_azimut
Definition: measure2d.h:95
double err_camera_elevation
Definition: measure2d.h:220
int nV_lines
Definition: measure2d.h:117
ImagePro imgpro
Definition: measure2d.h:263
double measure_elevation
Definition: measure2d.h:167
double object_distance
Definition: measure2d.h:210
double object_distance
Definition: measure2d.h:101
QStringList fk_station
Definition: measure2d.h:128
double err_v_meter2pix
Definition: measure2d.h:217
QList< QVector3D > err_A_3d
Definition: measure2d.h:139
QList< QPoint > measure_base_point
Definition: measure2d.h:149
QPoint A_2d
Definition: measure2d.h:89
double camera_elevation
Definition: measure2d.h:97
Definition: imagepro.h:117
double measure_height
Definition: measure2d.h:166
QPoint measure_base_point
Definition: measure2d.h:180
bool verticalCorrection
Definition: measure2d.h:226
double h_meter2pix
Definition: measure2d.h:202
double meter2degrees
Definition: measure2d.h:104
QVector3D B_3d
Definition: measure2d.h:162
QList< double > measure_base
Definition: measure2d.h:134
int currentV_line
Definition: measure2d.h:118