bicotiImageIterator2D

     Clases

bicotiImageIterator
            bicotiImageIterator2D
                        bicotiImageIterator2DArray
                        bicotiImageIterator2DSparse
        bicotiImageIterator3D
                        bicotiImageIterator3DArray
                        bicotiImageIterator3DLinear

     Templates Clases

PixelType


class bicotiImageIterator2D < class PixelType >



 Public Methods

virtual ~bicotiImageIterator2D ( )

PixelType &operator * ( )
void operator ++ ( int )
void operator -- ( int )
void operator += ( unsigned )
void operator -= ( unsigned )

void First ( )
void Last ( )
void Locate ( int , int )
boolIsDone ( )

void X0Increment ( unsigned =1 )
void X0Decrement ( unsigned =1 )
void X1Increment ( unsigned =1 )
void X1Decrement ( unsigned =1 )

int GetCurrentX0 ( )
int GetCurrentX1 ( )
PixelType * GetCurrentPixel ( )
virtual void SetCurrentPixel ( PixelType ) = 0

bicotiCoordinate< INTEGER > GetCurrentCoordinateInteger ( )
bicotiCoordinate< REAL > GetCurrentCoordinateReal ( )

virtual void SetExtremeCoordinates ( int , int , int , int ) = 0
void UseBorderStrategyX0 ( bicotiImageBorderStrategy2DX0< PixelType > )
void UseBorderStrategyX1( bicotiImageBorderStrategy2DX1< PixelType > )



  virtual ~bicotiImageIterator2D ( )

       Destrutor. A pesar de ser virtual necesita tener definido un destructor virtual.



  PixelType & operator * ( )

        Esta función se declara e implementa en la clase base.
      Ver operator *( ) de bicotiImageIterator



void operator ++ ( int )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver operator ++ de bicotiImageIterator



void operator -- ( int )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver operator -- de bicotiImageIterator



void operator += ( unsigned )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver operator += de bicotiImageIterator



void operator -= ( unsigned )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver operator -= de bicotiImageIterator



void First ( )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver First() de bicotiImageIterator



void Last ( )

        Esta función se declara en la clase base y se implementa en esta clase.
      Ver Last() de bicotiImageIterator



void Locate ( int x_0 , int x_1 )

        Esta función permite ubicar al iterador en el punto de coordenadas ( x_0 , x_1 )
        Por ejemplo si quiero pararme en la fila 2, columna 3 hago :

                       iterator.Locate( 3 , 2 );



boolIsDone ( )

        Esta función se declara e implementa en la clase base.
      Ver IsDone( ) de bicotiImageIterator



void X0Increment ( unsigned step )

        Incrementa la coordenada x_0 tantos lugares como lo indique step ( por defecto es 1 ).


Figura 3.1.15

           En el ejemplo de la figura 3.1.15 hacemos :

                pix = * iterator ;  // pix = 2  ( x_0 = 3 , x_1 = 1 )

                iterator.X0Increment() ;  // aumento x_0 en 1
                pix = * iterator ;  // pix = 1  ( x_0 = 4 , x_1 = 1 )

                iterator.X0Increment(3) ;  // aumento x_0 en 3
                pix = * iterator ;  // pix = 4  ( x_0 = 2 , x_1 = 2 )



void X0Decrement ( unsigned step )

       Decrementa la coordenada x_0 tantos lugares como lo indique step ( por defecto es 1 ).


Figura 1.3.16

           En el ejemplo de la figura 3.1.16 hacemos :

                pix = * iterator ;  // pix = 2  ( x_0 = 3 , x_1 = 1 )

                iterator.X0Decrement() ;  // bajo x_0 en 1
                pix = * iterator ;  // pix = 2  ( x_0 = 2 , x_1 = 1 )

                iterator.X0Decrement(2) ;  // bajo x_0 en 2
                pix = * iterator ;  // pix = 1  ( x_0 = 0 , x_1 = 1 )
 



void X1Increment ( unsigned step )

       Incrementa la coordenada x_1 tantos lugares como lo indique step ( por defecto es 1 ).


Figura 3.1.17

                En el ejemplo de la figura 3.1.17 hacemos :

                pix = * iterator ;  // pix = 3  ( x_0 = 3 , x_1 = 0 )

                iterator.X1Increment() ;  // aumento x_1 en 1
                pix = * iterator ;  // pix = 2  ( x_0 = 3 , x_1 = 1 )

                iterator.X1Increment(2) ;  // aumento x_1 en 2
                pix = * iterator ;  // pix = 1  ( x_0 = 3 , x_1 = 3 )
 
 
 



void X1Decrement ( unsigned step )

       Decrementa la coordenada x_1 tantos lugares como lo indique step ( por defecto es 1 ).


Figura 3.1.18

                En el ejemplo de la figura 3.1.18 hacemos :

                pix = * iterator ;  // pix = 2  ( x_0 = 4 , x_1 = 3 )

                iterator.X1Decrement() ;  // aumento x_1 en 1
                pix = * iterator ;  // pix = 0  ( x_0 = 4 , x_1 = 2 )

                iterator.X1Decrement(2) ;  // aumento x_1 en 2
                pix = * iterator ;  // pix = 4  ( x_0 = 4 , x_1 = 0 )



int GetCurrentX0 ( )

        Retorna la componente x_0 de la coordenada de la posición actual, es decir la columna actual.
        En el ejemplo de la figura 3.1.10.


Figura 3.1.10

        Si hago :

                columna = iterator.GetCurrentX0();  // obtengo columna = 4



int GetCurrentX1 ( )

        Retorna la componente x_1 de la coordenada de la posición actual, es decir la fila actual.
        En el ejemplo de la figura 3.1.10.
         Si hago :

                fila = iterator.GetCurrentX1();  // obtengo fila = 1



PixelType * GetCurrentPixel ( )

        Esta función se declara e implementa en la clase base.
      Ver GetCurrentPixel( ) de bicotiImageIterator



void SetCurrentPixel ( PixelType )

        Esta función se declara e implementa en la clase base.
      Ver SetCurrentPixel( ) de bicotiImageIterator



bicotiCoordinate< INTEGER > GetCurrentCoordinateInteger ( )

        Esta función se declara e implementa en la clase base.
      Ver GetCurrentCoordinateInteger( ) de bicotiImageIterator



bicotiCoordinate< REAL > GetCurrentCoordinateReal ( )

        Esta función se declara e implementa en la clase base.
      Ver GetCurrentCoordinateReal( ) de bicotiImageIterator



void SetExtremeCoordinates ( int first_x_0, int first_x_1, int last_x_0, int last_x_1 )

        Esta función permite redefinir los valores extremos del iterador.
        En un caso más general, el iterador recorrerá una sub-imagen cuyos extremos son los puntos de
        coordenadas ( first_x_0 , first_x_1 ) y ( last_x_0 , last_x_1 ).


Figura 3.1.10

        En la imagen de la figura 3.1.10. Cuando se crea el iterador, se toma por defecto
                               first_x_0 = 0
                               first_x_1 = 0
                               last_x_0 = 5   ( dim_x_0 - 1 )
                               last_x_1 = 3   ( dim_x_1 - 1 )

       Pero por ejemplo si redefinimos estos valores haciendo :

                        iterator.SetExtremeCoordinates( 1 , 1 , 4 , 2 );

                               first_x_0 = 1
                               first_x_1 = 1
                               last_x_0 = 4
                               last_x_1 = 2

      La imagen efectiva que se recorrerá será lo que se marca en verde en la figura 3.1.19


Figura 3.1.19



void UseBorderStrategyX0 ( bicotiImageBorderStrategy2DX0< PixelType > )

        Esta función asigna la estrategia de borde horizontal.
        Ver Estrategias de Borde para más detalles.



void UseBorderStrategyX1( bicotiImageBorderStrategy2DX1< PixelType > )

        Esta función asigna la estrategia de borde vertical.
        Ver Estrategias de Borde para más detalles.