bicotiDexelFacade

Clases:

bicotiDexelFacade
            bicotiDexelFacade2D
                        bicotiDexelFacade2DSingle
                        bicotiDexelFacade2DVectorial
            bicotiDexelFacade3D
                        bicotiDexelFacade3DSingle
                        bicotiDexelFacade3DVectorial


class bicotiDexelFacade< class CoordTypeInt,
                                                 class CoordTypeReal , class PixelType >


Comentarios Generales:

       Los argumentos template: CoordTypeInt y CoordTypeReal, cooresponden a los tipos de coordenada a utilizar, que serán para CoordTypeInt bicotiCoordinate2D< INTEGER > ó
bicotiCoordinate3D< INTEGER >; para CoordTypeReal bicotiCoordinate2D< REAL > ó bicotiCoordinate3D< REAL >. El argumento template PixelType cooresponde al tipo de pixel a utilizar.



Public Type

typedef  CoordTypeInt    IntegerCoordinate
typedef  CoordTypeReal    RealCoordinate

Protected Methods

void ResetPointers( )
void DeleteMe( )

virtual void SetPixelInterpolator( ) = 0

Public Methods

virtual ~bicotiDexelFacade( )

void BuildNewRegion( )
bicotiDexelRegion< CoordTypeInt, PixelType > * GetRegion( unsigned )
unsigned GetRegionsNumber( )
void DestroyRegions( )

void BuildRegionsProperties( )
bicotiRegionProperty< CoordTypeInt, PixelType > * GetRegionProperty( unsigned )
void DestroyRegionsProperties( )

void BuildLabeling( )
void LoadRegionLabelingResult( )
virtual void UsePixelLabelingCriterionRange( PixelType, PixelType ) = 0
bicotiDexelLabeling< CoordTypeInt, PixelType > * GetLabeling( )
void DestroyLabeling( )

vector< CoordTypeReal > & CurveVector( )
void BuildNewCurveOpenLinear( vector< CoordTypeReal > & )
void BuildNewCurveClosedLinear( vector< CoordTypeReal > & )
void BuildNewCurveOpenSimpson( vector< CoordTypeReal > & )
void BuildNewCurveClosedSimpson( vector< CoordTypeReal > & )
void BuildNewCurveOpenSpline( vector< CoordTypeReal > & )
void BuildNewCurveClosedSpline( vector< CoordTypeReal > & )
bicotiDexelCurveOpen< CoordTypeReal, PixelType > * GetCurveOpen( unsigned )
bicotiDexelCurveClosed< CoordTypeReal, PixelType > * GetCurveClosed( unsigned )
unsigned GetOpenCurvesNumber( )
unsigned GetClosedCurvesNumber( )
void DestroyCurves( )

void BuildCurvesProperties( )
void DestroyCurvesProperties( )



void ResetPointers( )

            Pone en NULL los punteros internos de la clase.



void DeleteMe( )

            Se encarga de limpiar la "memoria" pedida en los parámetros internos.



virtual void SetPixelInterpolator( ) = 0

          Inicializa un bicotiImagePixelInterpolator a usarse en curvas.

          Obs : Es una función de uso interno a la clase.



virtual ~bicotiDexelFacade( )

             Destructor virtual.



void BuildNewRegion( )

           Crea una bicotiDexelRegion, se puede acceder a esta mediante la función GetRegion( index ),
         con 0 <= index < GetRegionsNumber( ).



bicotiDexelRegion< CoordTypeInt, PixelType > * GetRegion( unsigned )

          Se Accede a las bicotiDexelRegion que hay creadas mediante un unsigned index,
         con 0 <= index < GetRegionsNumber( ).



unsigned GetRegionsNumber( )

            Nos da la información de la cantidad de regiones que hay creadas.



void DestroyRegions( )

          Destruye las regiones creadas( libera la memoria pedida ) y sus propiedades ( si las hay creadas ).



void BuildRegionsProperties( )

            Crea una bicotiRegionProperty para cada una de las bicotiDexelRegion que haya creadas, estas se
          pueden acceder mediante la función GetRegionProperty( index ),
          con 0 <= index < GetRegionsNumber( ).



bicotiRegionProperty< CoordTypeInt, PixelType > * GetRegionProperty( unsigned )

           Se Accede a las bicotiRegionProperty que hay creadas mediante un unsigned index,
         con 0 <= index < GetRegionsNumber( ). Observar que se accede a el objeto
         bicotiRegionProperty de la región index ( que se obtiene mediante GetRegion( index ) )



void DestroyRegionsProperties( )

            Destruye las propiedades de las regiones.



void BuildLabeling( )

         Construye un bicotiDexelLabeling, previamente hay que inicializar los parámetros
         bicotiPixelLabelingCriterionRange y bicotiConnectivityLabelingStrategy. Mediante la función
         UsePixelLabelingCriterionRange( pixel_inf, pixel_sup ), se buscarán pixels entre
         pixels_inf <= pixel <= pixel_sup, si son pixels vectorial se buscará en cada campo. Para definir el
          criterio de Connectividad ( bicotiConnectivityLabelingStrategy ) ver en los objetos
         bicotiDexelFacede2D ó bicotiDexelFacade3D, según la dimensión.



void LoadRegionLabelingResult( )

           Mediante esta función se "borran" las regiones antes creadas y se crean las regiones generadas con
         el labeling. Para acceder a estas regiones se utilizan las funciones ya antes mencionadas.



virtual void UsePixelLabelingCriterionRange( PixelType, PixelType ) = 0

            Usará los criterios de bicotiPixelLabelingCriterionRange, los parámetros a pasar son pixel_inf y
            pixel_sup. Si el pixel es del tipo single, se "etiquetarán" los pixels que cumplan
            pixel_inf <= pixel <= pixel_sup; si el pixel es del tipo vectorial se "etiquetarán" los pixel que cumplan
          lo mismo que para pixels single en cada uno de sus campos.



bicotiDexelLabeling< CoordTypeInt, PixelType > * GetLabeling( )

           Mediante esta función se accede al bicotiDexelLabeling una vez creado por BuildLabeling( ).



void DestroyLabeling( )

             Se libera la memoria pedida durante la construcción del Labeling.



vector< CoordTypeReal > & CurveVector( )

         Con esta función puedo acceder a un vector de coordenadas ( con la dimensión adecuada ) que es mantenido internamente por la fachada. Puedo setearle o leer sus coordenadas.
La idea de usar esta función es para no tener que crear el vector cuando se quiera crear una curva a partir de el.



void BuildNewCurveOpenLinear( vector< CoordTypeReal > &  vect )

    Crea una curva abierta interpolada linealmente y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveOpen( index )



void BuildNewCurveClosedLinear( vector< CoordTypeReal > & vect )

    Crea una curva cerrada interpolada linealmente y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveClosed( index )



void BuildNewCurveOpenSimpson( vector< CoordTypeReal > & vect )

    Crea una curva abierta interpolada con una función cuadrática ( Simpson ) y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveOpen( index )



void BuildNewCurveClosedSimpson( vector< CoordTypeReal > & vect )

    Crea una curva cerrada interpolada con una función cuadrática ( Simpson ) y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveClosed( index )



void BuildNewCurveOpenSpline( vector< CoordTypeReal > &  vect )

    Crea una curva abierta interpolada con un Spline y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveOpen( index )



void BuildNewCurveClosedSpline( vector< CoordTypeReal > & vect )

    Crea una curva cerrada interpolada con un Spline y la agrega a la lista de curvas cerradas que mantiene la fachada. Cada curva que se agrega recibe un índice que comienza en cero y luego aumenta.
Se puede acceder a la curva de índice index mediante la función GetCurveClosed( index )



bicotiDexelCurveOpen< CoordTypeReal, PixelType > * GetCurveOpen( unsigned index )

    Devuelve un puntero a la curva de índice index dentro de la lista de curvas cerradas interna a la fachada. Para que la curva exista debió ser creada con BuilNewCurveOpen.



bicotiDexelCurveClosed< CoordTypeReal, PixelType > * GetCurveClosed( unsigned index )

    Devuelve un puntero a la curva de índice index dentro de la lista de curvas abiertas interna a la fachada. Para que la curva exista debió ser creada con BuilNewCurveClosed.



unsigned GetOpenCurvesNumber( )

    Devuelve la cantidad de curvas abiertas que componen la lista de curvas abiertas de la fachada.



unsigned GetClosedCurvesNumber( )

    Devuelve la cantidad de curvas cerradas que componen la lista de curvas cerradas de la fachada.



void DestroyCurves( )

    Borra a todas las curvas de ambas listas.
    Vacía la lista de curvas abiertas y cerradas.



void BuildCurvesProperties( )

    Para cada una de las curvas en ambas listas, abietas y cerradas, crea un objeto para calcular sus propiedades.A cada propiedad de una curva abierta se la pone en una lista de propeiedades para curvas abiertas con el mismo índice que tiene la curva. Lo mismo para las propiedades de curvas cerradas.

Ver bicotiCurveProperties



void DestroyCurvesProperties( )

    Borra a todas las propeiedades de ambas listas.
    Vacía la lista de propiedades de curvas abiertas y cerradas.



Ejemplos :