blob: 1ca7a0460fb88fe3a213378f48686c9ac607d132 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
* Estructuras.h
*
* Created on: 26/11/2010
* @author Sebastián Marichal
* sebastian_marichal@hotmail.com
* sebarocker@gmail.com
*
* Universidad de la República, Montevideo , Uruguay
*/
#ifndef ESTRUCTURAS_H_
#define ESTRUCTURAS_H_
#include "EstructurasPublicas.h"
typedef struct{
CvHistogram *histograma_h; //Histograma acumulativo de la distribucion de color del apuntador en las diferentes muestras tomadas
CvHistogram *histograma_s; //Histograma acumulativo de la distribucion de saturacion del apuntador en las diferentes muestras tomadas
CvHistogram *histograma_v; //Histograma acumulativo de la distribucion de brillo del apuntador en las diferentes muestras tomadas
int h_bins; //Cantidad de los intervalos en los que se divide le histograma h
int s_bins; //Cantidad de los intervalos en los que se divide le histograma s
int v_bins; //Cantidad de los intervalos en los que se divide le histograma v
RangosColorApuntador rangos; //Rangos propios de la escala que se utiliza. [H:0-180,S:0-255,V:0-255] o [H:0-360,S:0-100,V:0-100]
}HistogramasData;
typedef struct {
/*Calibracion del apuntador*/
int forma; //Forma del apuntador
HistogramasData data_histogramas;
RangosColorApuntador resultado_rangos_color; //Resultados de la calibracion por color
int debug_imagenes; //Cuando se quiera ver las imagenes de uso interno del calibrador (imagen enmascarada y mascara) debe ponerse en 1
int restarAlRadio; //Este valor se usa para restar al radio del circulo de las mascaras circulares y achicarlas para poder calibrar objetos mas pequenos que los marcadores. Por defecto es 0
/*Calibracion de la relacion marcador-apuntador*/
int veces_por_marcador; //Cantidad de veces que se toma el area del apuntador sobre un marcador
int metodo; //Por el momento siempre vale 1 y quiere decir que la estimacion se hace usando un promedio de las medidas tomadas
double ** medidas_apuntador; //Matriz con las areas del apuntador. La matriz tiene las dimensiones (veces_por_marcador x cant_marcadores)
// medidas_apuntador[i] --> Vector con las medidas del area del apuntador posando sobre el marcador i
double ** medidas_marcador; //Matriz con las areas de los marcadores. La matriz tiene las dimensiones (veces_por_marcador x cant_marcadores).
//medidas_marcador[i]--> Vector con las medidas del area del marcador i. Existen veces_por_marcador medidas tomadas.
double ** relaciones; //relaciones[i] = medidas_apuntador[i]/medidas_marcador[i].
double * promedios; //En la posicion i contiene el promedio (o el valor que arroje otro metodo indicado) del vector relaciones[i].
}PropiedadesCalibracion;
typedef struct {
int min_area;
float factorProporcionApuntadorMarcador;
int erode;
int dilate;
int smooth;
int enclosing_circle;
}PropiedadesDeteccionApuntador;
typedef struct {
CvPoint2D32f centro;
float radio;
} Circle;
#endif /* ESTRUCTURAS_H_ */
|