Figura 2.3.1
Clases
bicotiProperty
bicotiPropertyStatistical
bicotiPropertyHistogram
bicotiPropertyHistogramUsual
bicotiPropertyHistogramExtended
Templates Clases
PixelType
class bicotiPropertyHistogramUsual
< class ColorType,
class PixelType = ColorType >
bicotiPropertyHistogramUsual
( bicotiImageImplementation< PixelType > *,
const vector< bicotiPixelAttributeSelector< ColorType,
PixelType > * >& )
~bicotiPropertyHistogramUsual(
)
virtual
void UpdateImageImplementation( )
void
First(
unsigned = 0 )
void
Next(
unsigned = 0 )
ColorType
GetCurrentColor(
unsigned = 0 )
unsigned
GetCurrentPointsNumber(
unsigned
= 0 )
bool
IsDone(
unsigned = 0 )
unsigned
GetHistogramsNumber(
)
Constructor al que paso como
parámetro :
ptr_ima --
puntero a la imagen a la que se refiere la propiedad.
color_sel_list
-- vector ( de la STL ) con punteros a selectores de atributos.
La propiedad tiene un conjunto de listas atributo - frecuencia , cada una de los cuales se construye con uno de los atributos del vector, por lo tanto tendrá tantas listas asociadas como selectores de atributo le pase en el vector.
Por ejemplo si queremos crear un histograma para una imagen
2D RGB de entereos.
Los templates son:
ColorType = int
PixelType = bicotiRGB< int >
Primero definimos unos tipos
typedef int ColT;
// atributo
typedef bicotiRGB< int > PixT;
// pixel
Creamos un selector de atributos para cada campo:
bicotiPixelAttributeSelector<
ColT, PixT > * ptr_att_sel_red;
ptr_att_sel_red = new bicotiPixelAttributeSelectorColorRed<
ColT, PixT >;
bicotiPixelAttributeSelector<
ColT, PixT > * ptr_att_sel_green;
ptr_att_sel_green = new bicotiPixelAttributeSelectorColorGreen<
ColT, PixT >;
bicotiPixelAttributeSelector<
ColT , PixT > * ptr_att_sel_blue;
ptr_att_sel_blue = new bicotiPixelAttributeSelectorColorBlue<
ColT, PixT >;
Los Pongo en un vector :
vector <bicotiPixelAttributeSelector<
ColT, PixT > * > vect( 3 );
vect[0]=ptr_att_sel_red; //
el rojo tiene índice 0
vect[1]=ptr_att_sel_green; //
el verde tiene índice 1
vect[2]=ptr_att_sel_blue; //
el azul tiene índice 2
Ahora puedo crear la propiedad
bicotiPropertyStatistical< ColT,
PixT > histo( ptr_ima, vect );
Destructor virtual.
Esta función sirve para
actualizar a la imagen una vez que se han hecho cambios en las propiedades.
Los cambios en las propiedades NO se reflejan
automáticamente en la imagen
Esta propiedad es un agregado de listas, indexados de acuerdo a como se ha creado.
Cada una de las listas tiene un iterador interno, que
tiene las funciones típicas.
Cuando hacemos por ejemplo :
prop_histo.First( i );
Ponemos al principio el iterador de índice i.
Mueve el iterador de la lista de índice index, un lugar.
Devuelve el valor del atributo asociado al nodo actualmente apuntado por el iterador sobre la lista de índice index.
Devuelve la cantidad de puntos que tienen el atributo del nodo actualmente apuntado por el iterador sobre la lista de ínidce index.
Devuelve true si el iterador sobre la lista de índice index ha llegado al final.
Devuelve la cantidad de listas que están asociados a la propiedad.