bicotiGeometricalFacade2D


     Fachada de los objetos Geometrical, comenzaremos dando una descripción de las funciones y luego haremos ejemplos de su uso.

Clases:

bicotiGeometricalFacade
            bicotiGeometricalFacade2D
            bicotiGeometricalFacade3D
 




 


class bicotiGeometricalFacade2D< class PixelType, class PrecisionType >



Comentarios Generales:

       Los argumentos template: PixelType y PrecisionType, corresponden al tipo de pixel a utilizar y a el tipo de precisión deseada, intervienen en los algoritmos ya que hay que interpolar imagenes. Para conocer mas sobre PixelType y PrecisionType ir a Pixels.


Public Methods

bicotiGeometricalFacade2D( bicotiImageImplementation2D< PixelType > *)
~bicotiGeometricalFacade2D( )

void BuildAffimTransformation( )
void BuildRotation( double )

void Apply( )

void UsePixelInterpolatorLinear( )
void UsePixelInterpolatorLagrange( )



bicotiGeometricalFacade2D( bicotiImageImplementation2D< PixelType > *)

            Constructor del objeto, recibe como argumento una bicotiImageImplementation2D< PixelType > *



~bicotiGeometricalFacade( )

            Destructor del objeto.



void BuildAffimTransformation( )

            Crea una transformación afin.

                Con la función Matrix( ) se accede a T, y con Vector( ) se accede a b.



void BuildRotation( double )

             Crea una rotación( caso particular de transformacón affim ) generando la matriz T y el vector b
           adecuados.
           Para definir una rotación en 2D hay que fijar dos parámetros: el eje de rotación, ángulo de
           rotación. Al centro de rotación se accede mediante la función RotationCenter( ), al ángulo se pasa
           como parámetro de esta función.
           El ángulo se expresa en radianes y se mide en sentido antihorario, otra restricción mas es que este
           debe estar entre -pi y pi.



void ApplyAffimTransformation( bool automatic_resize )

        Realiza la transformación afin sobre una imagen, es importante destacar de que este proceso crea la
        imagen resultado no hay que pasarla como argumento. Existen transformaciones afines como por
        ejemplo una rotación, en donde por aplicarla se pierde "información" de la imagen, con
        automatic_resize la imagen se redimensiona para no perder "información", por defecto no se hace y
        la imagen resultado es igual en tamaño a la imagen original.
        Para acceder a los resultados se utilizan a GetResult( ) o LoadResult( ). Observar :



void UsePixelInterpolatorLinear( )

            La información que disponemos es una imagen digital, por lo cual la interpolación es algo con que
          debemos enfrentarnos, existen dos tipos de interpoladores( dos técnicas de interpolación ) al
          momento actual. Si se desea trabajar con la interpolación lineal se usa esta función.



void UsePixelInterpolatorLagrange( )

           La información que disponemos es una imagen digital, por lo cual la interpolación es algo con que
           debemos enfrentarnos, existen dos tipos de interpoladores( dos técnicas de interpolación ) al
           momento actual. Si se desea trabajar con la interpolación lagrange se usa esta función.



EJEMPLOS DE CODIGO :

        Asumimos que se dispone de funciones para levantar una imagen de disco( LeerImagen y LeerImagenColor ), para desplegarla en pantalla ( MostrarImagen y MostrarImagenColor ) y para guardar a disco( EscribirImagen y EscribirImagenColor ), estas funciones no son parte de Bicoti I, por lo cual se deja al usuario esta responzabilidad.