bicotiImageFrameIterator

     Clases

bicotiImageFrameIterator
bicotiImageFrameIterator2D
bicotiImageFrameIterator3D
 

     Templates Clases

PixelType


class bicotiImageFrameIterator < class PixelType >



 Public Methods

virtual~bicotiImageFrameIterator ( )

virtual bicotiFrame< PixelType > * GetCurrentFrame ( ) = 0
virtual void First ( ) = 0
virtual void Last ( ) = 0
bool IsDone ( )

virtual void operator ++ ( int ) = 0
virtual void operator -- ( int ) = 0
virtual void operator += ( unsigned ) = 0
virtual void operator -= ( unsigned ) = 0



virtual ~bicotiImageFrameIterator ( )

        Destructor virtual.



bicotiFrame< PixelType > * GetCurrentFrame ( )

        Devuelve un puntero al frame centrado en el pixel actual.
        En el jemplo de la figura 3.1.3.4.


Figura 3.1.3.4

        Si tenemos un puntero a un frame de enteros.
                bicotiFrame<int> * ptr_frame;
        y un iterador :
                bicotiImageFrameIterator<int>* ptr_iterator;
               ptr_iterator = ptr_image->CreateFrameIterator( 3 , ptr_strategy );
        creo un iterador con frame de tamaño 3 y una estrategia de extrapolación dada.
        Si hago :
                ptr_frame = ptr_iterator->GetCurrentFrame();
        obtengo una referencia al frame.
        La dimensión del frame depende de la de la imagen, por lo que solo puedo acceder a los pixeles
        a través de la interfáz estandard del frame. Si se la dimensión puedo hacerle un casting al tipo
        adecuado.



void First ( )

        Pone el puntero en el primer lugar . Es decir que centra el frame en el punto de coordenadas
        ( 0, 0, ... , 0 ).



void Last ( )

        Pone el puntero en el último lugar . Es decir que centra el frame en el punto de coordenadas
        ( X0dim - 1, X1dim - 1, ... , Xndim - 1 ).



bool IsDone ( )

        Devuelve true si estamos en el último punto, el de coordenadas ( X0dim - 1, ... , Xndim - 1 ),
        e intentamos movernos un lugar más.



void operator ++ ( int )

        Mueve el iterador un lugar, en el ejemplo de la figura 3.3.1.4, tenemos una imagen 2D 7 x 5.
        Si estamos en el punto de coordenadas ( 3 , 2 ) y hacemos:

                 ( * ptr_iterator ) ++;

        pasamos al punto de coordenadas ( 4 , 2 ).
        En el caso 2D nos movemos por filas , aumentando X0 y luego X1.



void operator -- ( int )

        Mueve el iterador un lugar pero hacia atrás , en el ejemplo de la figura 3.3.1.4,
        Si estamos en el punto de coordenadas ( 3 , 2 ) y hacemos:

                 ( * ptr_iterator ) -- ;

        pasamos al punto de coordenadas ( 2 , 2 ).
        En el caso 2D nos movemos por filas , decrementando X0 y luego X1.



void operator += ( unsigned step )

       Me muevo hacia adelante tantos lugares como lo indique step.
       Hacer :
                     ( * ptr_iterator ) += 2;
       Es lo mismo que hacer :
                     ( * ptr_iterator ) ++;
                     ( * ptr_iterator ) ++;



void operator -= ( unsigned step )

       Me muevo hacia atrás tantos lugares como lo indique step.
       Hacer :
                     ( * ptr_iterator ) -= 2;
       Es lo mismo que hacer :
                     ( * ptr_iterator ) --;
                     ( * ptr_iterator ) --;