
bicotiImageFrameIterator
bicotiImageFrameIterator2D
bicotiImageFrameIterator3D
 
Templates Clases
PixelType
class bicotiImageFrameIterator < class PixelType >
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
Destructor virtual.
        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.
        Pone
el puntero en el primer lugar . Es decir que centra el frame en el punto
de coordenadas
        ( 0, 0, ...
, 0 ).
        Pone
el puntero en el último lugar . Es decir que centra el frame en
el punto de coordenadas
        ( X0dim -
1, X1dim - 1, ... , Xndim - 1 ).
        Devuelve
true si estamos en el último punto, el de coordenadas ( X0dim -
1, ... , Xndim - 1 ),
        e intentamos
movernos un lugar más.
        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.
        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.
       Me muevo hacia
adelante tantos lugares como lo indique step.
       Hacer :
                    
( * ptr_iterator ) += 2;
       Es lo mismo que
hacer :
                    
( * ptr_iterator ) ++;
                    
( * ptr_iterator ) ++;
       Me muevo hacia
atrás tantos lugares como lo indique step.
       Hacer :
                    
( * ptr_iterator ) -= 2;
       Es lo mismo que
hacer :
                    
( * ptr_iterator ) --;
                    
( * ptr_iterator ) --;