Para ver una descripción de cada clase ir a:
class bicotiDexelLabeling< CoordType, PixelType >
Uno pensaría que en CoordType se podría poner cualquier Coordinate, no es así el algoritmo esta pensado para que se trabaje con coordenadas enteras, o sea, para bicotiCoordiante2D< INTEGER > o bicotiCoordinate3D< INTEGER >, esto es porque las coordenadas hacen referencia a ubicaciones en la implementación de la imagen.
bicotiDexelLabeling(
bicotiImageImplementation< PixelType > *,
bicotiPixelLabelingCriterion< PixelType > * = NULL,
bicotiConnectivityLabelingStrategy * = NULL )
void
UpdateImageImplementation( )
void
ModifyPixels( vector< bicotiPixelOperatorUnary<
PixelType > * > )
void
UpdateDexel( )
void
SetConnectivityStrategy( bicotiConnectivityLabelingStrategy
* )
void
SetPixelCriterion( bicotiPixelLabelingCriterion<
PixelType > * )
unsigned
GetRegionsNumber( )
bicotiDexelRegion<
CoordType, PixelType >& GetRegion( unsigned
)
Constructor del dexel, como parámetros recibe:
1. CoordType = bicotiCoordinate2D<
INTEGER >
2. bicotiImageImplementation< PixelType
> * = bicotiImageImplementation2D< PixelType >*
3. bicotiPixelLabelingCriterion<
PixelType >* = bicotiPixelLabelingCriterionSingleRange< PixelType >*
4. bicotiConnectivityLabelingStrategy*
= bicotiConnectivityLabelingStrategy2D4N*
Esto quiere decir que hay que saber
combinar bien los objetos, y con estas combinaciones se logran diferentes
comportamientos, por ejmplo si la imagen fuera de RGB y no de grises, alcanza
con cambiar el objeto bicotiPixelLabelingCriterionSingleRange< PixelType
>* por
bicotiPixelLabeligCriterionVectorialRange< PixelType>*
.
Con la función ModifyPixels, se puede modificar los valores de pixel de los pixels etiquetados, con esta función se actualiza los cambios en la implementación.
Mediante un vector de bicotiPixelOperatorUnary< PixelType >*, modifico cada una de las "regiones" con diferentes etiquetas, hay que tener en cuenta que la dimensión del vector debe ser igual a cantidad de etiquetas. Luego se actualiza la implemetación llamando a UpdateImageImplementation( ).
Supongamos que queremos etiquetar los pixel con nivel de gris entre [ 0, 35], [ 100, 150] y [ 212, 245]. Bastaría con cambiar el criterio de pixel y recalcular el dexel, esta función es la que recalcula el dexel.
Cargo una nueva estrategia de
conectividad( bicotiConnectivityLabelingStrategy
), por ejemplo cambio
de 4N a 8N.
Cargo un nuevo criterio de etiquetado de pixel( bicotiPixelLabelingCriterion ).
Retorna el numero de etiquetas distintas encontradas.
Acceso a las regiones encontradas,
se retorna como bicotiDexelRegion,
el indice tiene sentido
entre 0 ... GetRegionsNumber( ).