2 - Imagen


2.4 - Transformation

    La transformada de una imagen en BICOTI es parte de la imagen misma.
Como lo muestra la figura 2.4.1 , existe una clase base bicotiTransformation de la cual derivan todas las transformadas. Lo que tienen en común todas las transformadas es que son una representación total de la imagen pero en un tipo diferente al de los pixeles. Por ejemplo la transformada de Fourier es una imagen de número complejos. De ahí que esta clase se parametrize en dos templates, el tipo de pixel de la imagen PixelSource y el tipo de "pixel" equivalente en la transformada PixelTarget.
Todas las transformadas tienen una función para llevar la imágen de PixelSource a PixelTarget ( transformada directa ) y otra para la inversa ( transformada inversa ).


Figura 2.4.1

Solo se ha implementado hasta el momento la transformada rápida de Fourier ( FFT ), donde el tipo de salida es el PixelComplejo asociado al Pixel de la imagen.

El algoritmo que calcula la transformada y la inversa tiene la limitante de que solo es eficiente cunado las dimensiones de la imagen son potencias de 2. Lo que se suele hacer cuando no es así es completar a la imagen con ceros hasta una potencia de 2.
Esta idea se ha flexibilizado un poco en el algoritmo implementado en BICOTI, permitiéndole al usuario llenar arbitrariamente la imagen ( no siempre con ceros ) a través de una estrategia de extrapolación que se le pasa al objeto que calcula la transformada.

Ver más detalles sobre las funciones en :

    bicotiTransformation
      bicotiTransformationFourier
          bicotiTransformationFourier2D
            bicotiTransformationFourier3D