bicotiConnectivityLabelingStrategy

    La tarea de estos objetos es la de recibir un Pixel y en función de sus "vecinos" y de las "etiquetas" de estos, elijo la "etiqueta" adecuada. Es razonable que haya una especialización primero en la dimensión y luego en el tipo de "conectividad" deseada
    Todos estos objetos heredan de una clase base abstracta. A continuación haremos una descripción de la clase base.


class bicotiConnectivityLabelingStrategy



Protected Methods

void SetEquivalence( unsigned& , unsigned& )
void InsertInTable( unsigned& )

Public Methods

virtual void Initiate( bicotiImageDescriptor *, vector< vector < unsigned > > * ) = 0

virtual void operator( ) ( bicotiCoordinate< INTEGER > ) = 0

virtual bicotiMatrix< unsigned > * CreateResult( ) = 0



void SetEquivalence( unsigned& , unsigned& )

        Esta función debería preocupar solamente a quien desea hacer un criterio nuevo de conectividad, recomendamos que de no ser así, no invertir tiempo en su entendimiento.

    Normalmente durante la toma de decisión de que "etiqueta" poner a un pixel, nos encontramos con que hay dos( o más ) "etiquetas" que en algun momento se hacen equivalentes( la misma desde el punto de vista de conectividad ). Por facilidad en las futuras especializaciones, al no tener que entrar en los objetos temporales de paseje de información, se creo esta función y se sugiere usarla.



   void InsertInTable( unsigned& )

     Esta función debería preocupar solamente a quien desea hacer un criterio nuevo de conectividad, recomendamos que de no ser así, no invertir tiempo en su entendimiento.

    Normalmente durante la toma de decisión de que "etiqueta" poner a un pixel, nos podemos encontrar con que los vecinos( según el criterio de conectividad ) no posean "etiqueta", en estos casos hay que avisarle "a alguien", de la existencia de una nueva "etiqueta". Por facilidad en las futuras especializaciones, al no tener que entrar en los objetos temporales de paseje de información, se creo esta función y se sugiere usarla.



virtualvoid Initiate( bicotiImageDescriptor *, vector< vector < unsigned > > * ) = 0

        Esta función se encarga de inicializar las variables internas de los objetos que dependen de la dimensión. Se especializa en la dimensión, salvo que aperescan nuevas dimensiones no habría razón alguna para preocuparse por esta función.



virtualvoid operator( ) ( bicotiCoordinate< INTEGER > ) = 0

          Función a invocar cuando se desea "etiquetar" un pixel, observar que solamente importa su posición en la implementación. Se especializa en cada criterio de "conectividad".



virtual bicotiMatrix< unsigned > * CreateResult( ) = 0

        Retorna el resultado de la "conectividad" hasta el momento, tener cuidado porque es destructiva se pierden los resultados, habría que hacerlo solamente al final. Esta función, en pincipio, no se devería ser invocada, aún para quienes realicen nuevos criterios de conectividad.



  Véase la especificación detallada de cada clase en: