bicotiImageImplementation2D

     Clases

bicotiImageImplementation
bicotiImageImplementation2D
bicotiImageImplementation2DSimple
bicotiImageImplementation2DByLayers
bicotiImageImplementation2DArray
bicotiImageImplementation2DSparse
bicotiImageImplementation3D
bicotiImageImplementation3DArray
bicotiImageImplementation3DLinear
 

     Templates Clases

PixelType


class bicotiImageImplementation2D < class PixelType >



 Public Methods

virtual ~bicotiImageImplementation2D ( )

double GetScale ( )
PixelType GetDefaultPixel ( )
PixelCases PixelCase ( )
int GetX0Size ( )
int GetX1Size ( )

void Resize ( int , int )
void Resize ( bicotiImageDescriptor * )

virtual PixelType GetPixel ( int , int ) = 0
virtual PixelType GetPixel ( bicotiCoordinate< INTEGER >& ) = 0
virtual voidSetPixel ( bicotiCoordinate< INTEGER >& , const PixelType & ) = 0

bicotiImageDescriptor * CreateImageDescriptor ( )

virtual bicotiImageImplementation< PixelType > * CreateImageImplementation ( ) = 0
virtual bicotiImageImplementation< PixelType > * CreateImageImplementation ( bicotiImageDescriptor * ) = 0

virtual bicotiImageIterator< PixelType > * CreateIterator ( ) = 0
bicotiImageFrameIterator< PixelType > * CreateFrameIterator
                                                                                        ( int , bicotiImageExtrapolationStrategy<PixelType > * )

void CopyMeFrom ( bicotiImageImplementation2D< PixelType > *  )



~bicotiImageImplementation2D ( )

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



double GetScale ( )

        Esta función se declara e implementa en la clase base bicotiImageImplementation.
        Ver GetScale( ) en bicotiImageImplementation.



PixelType GetDefaultPixel ( )

        Esta función se declara e implementa en la clase base bicotiImageImplementation.
        Ver GetDefaultPixel( ) en bicotiImageImplementation.



PixelCases PixelCase ( )

        Esta función se declara e implementa en la clase base bicotiImageImplementation.
        Ver PixelCase( ) en bicotiImageImplementation.



int GetX0Size ( )

            Retorna el número de columnas de la imagen.



int GetX1Size ( )

            Retorna el número de filas de la imagen.



void Resize ( int x_0_size , int x_1_size )

            Esta función permite modificar el tamaño de un imagen, pasando el nuevo número de columnas
          ( x_0_size ) y de filas ( x_1_size ).
          Si por ejemplo creo una imagen 2DArray 10 x 10 de enteros :

                bicotiImage2DArray<int> image( 0 , 10 , 10 , 1 , single );

           Puedo cambiar el tamaño a 3 x 5  ( 3 columnas , 5 filas ) haciendo :

                image.Resize( 3 , 5 );

         Obs: Es importante aclarar que no cambian los valores del pixel por defecto , la escala y el
                   pixel case, pero se pierde todo el contenido de la imagen.

            Luego del "Resize" paso a tener una imagen 3 x 5 llena de ceros.



void Resize ( bicotiImageDescriptor * )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en esta clase.
        Ver Resize( ) en bicotiImageImplementation.



PixelType GetPixel ( int x_0 , int x_1 )

        Retorna el valor del pixel ubicado en la fila x_1 y columna x_0.
        Por ejemplo , si tengo la imagen 2D de la figura 2.1.2


Figura 2.1.2

           Si Hago :

        pix = imagen.GetPixel( 2 , 1 );
       Obtengo pix = 3.

        pix = imagen.GetPixel( 4 , 3 );
       Obtengo pix = 2.

         Esta función es virtual pura en esta clase, se implementa en las especializaciones.



PixelType GetPixel ( bicotiCoordinate< INTEGER >& )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en las clases derivadas.
        Ver GetPixel( ) en bicotiImageImplementation.



voidSetPixel ( bicotiCoordinate< INTEGER >&, const PixelType & )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en las clases derivadas..
        Ver SetPixel( ) en bicotiImageImplementation.



bicotiImageDescriptor * CreateImageDescriptor ( )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en esta clase.
        Ver CreateImageDescriptor( ) en bicotiImageImplementation.



bicotiImageImplementation< PixelType > * CreateImageImplementation ( )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en las clases derivadas.
        Ver CreateImageImplementation( ) en bicotiImageImplementation.



bicotiImageImplementation< PixelType > * CreateImageImplementation
                                                                                                              ( bicotiImageDescriptor * )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en las clases derivadas.
        Ver CreateImageImplementation( ) en bicotiImageImplementation.



bicotiImageIterator< PixelType > * CreateIterator ( )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en las clases derivadas.
        Ver CreateIterator( ) en bicotiImageImplementation.



bicotiImageFrameIterator< PixelType > *CreateFrameIterator
                                                                 ( int ,bicotiImageExtrapolationStrategy<PixelType > * )

        Esta función se declara en la clase base bicotiImageImplementation y se implementa
        en esta clase.
        Ver CreateFrameIterator( ) en bicotiImageImplementation.



void CopyMeFrom ( bicotiImageImplementation2D< PixelType > *  ptr_ima_src )

         Esta función sirve para copiar los datos de otra implementación de igual dimensión ( 2D en este
         caso ). Si los tamaños no coinciden , se ajustan a los de la imagen fuente ( la apuntada por
         ptr_ima_src ).

         Por ejemplo, si defino una imagen de tipo 2D Sparse 10 x 10

              bicotiImageImplementation2DSparse< int > *    ptr_ima_src;
               ptr_ima_src = new bicotiImageImplementation2DSparse< int >( 0 , 10 , 10 );

         Hago algo con esta imagen, y luego defino una imagen 2D Array  5 x 6

              bicotiImageImplementation2DArray< int > *    ptr_ima_dest;
               ptr_ima_dest = new bicotiImageImplementation2DArray< int >( 0 , 5 , 6 );

         Puedo copiar el contenido de ima_src haciendo :

              ptr_ima_dest->CopyMeFrom( ptr_ima_src );

         De esta forma, la imagen apuntada por ptr_ima_dest es 2D Array 10 x 10 con el mismo
         default pixel, scale, pixel_case y contenido que la apuntada por ptr_ima_src.

         Obs : Esta función copia todo menos el tipo de la imagen. Requiere que ambas sean de igual
                  dimensión y tipo de pixel ( el mismo template )