Clases:
bicotiGeometricalFacade
bicotiGeometricalFacade2D
bicotiGeometricalFacade3D
class bicotiGeometricalFacade< class CoordType, class PixelType >
Los argumentos template:
CoordType y PixelType, corresponden al tipo de coordenada a utilizar y
al tipo pixel a utilizar. Uno pensaría que en CoordType se podría
poner cualquier Coordinate,
no es así el algoritmo esta pensado para que se trabaje con coordenadas
reales, o sea,
para bicotiCoordiante2D<
REAL
> o bicotiCoordinate3D<
REAL >, esto es porque las coordenadas hacen referencia a
ubicaciones en la implementación de la imagen, ya no como imagen
"discreta", sino como imagen "continua". Para conocer mas sobre PixelType
ir a Pixels.
bicotiImageDescriptor
* SizeImaDest( )
Public Methods
virtual
~bicotiGeometricalFacade(
)
virtual
void BuildAffimTransformation( ) = 0
virtual
void
BuildRotation(
double ) = 0
virtual
void
UsePixelInterpolatorLinear(
) = 0
virtual
void
UsePixelInterpolatorLagrange(
) = 0
bicotiMatrix2D<
double
>& Matrix( )
CoordType&
Vector(
)
CoordType&
RotationCenter(
)
bicotiImageImplementation<
PixelType
> * GetResult( )
bicotiImageImplementation<
PixelType
> * LoadResult( )
Retorna
un Descriptor para redimensionar una imagen según el tipo de transformación
afin a
realizar.
Destructor virtual de la clase.
Construye una transformación afin.
Crea una rotación( caso particular de transformacón affim
) generando la matriz T y el vector b
adecuados.
Para definir una rotación siempre hay que pasar un ángulo
y un punto( centro 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.
Ejecuta la transformación afin.
Realiza los algoritmos con el interpolador lineal, según la dimensión
será
bicotiImagePixelInterpolator2DLinear
o bicotiImagePixelInterpolator3DLinear.
Realiza los algoritmos con el interpolador lineal, según la dimensión
será
bicotiImagePixelInterpolator2DLagrange
o bicotiImagePixelInterpolator3DLagrange.
Para definir una transformación afin hay que definir una matriz(
invertible ) y un vector, ver
bicotiAffinTransformation.
Mediante esta función se puede pasar o leer la matriz
( bicotiMatrix2D< double
> ) a utilizar en el algoritmo.
Para
definir una transformación afin hay que definir una matrix( invertible
) y un vector, ver
bicotiAffinTransformation.Mediante
esta función se puede pasar o leer el vector que intervieneen
el algoritmo, este será un CoordType( argumento template que como
ya mencionamos será
bicotiCoordinate2D<
REAL
> o bicotiCoordinate3D<
REAL
> según la dimensión con la que se este
trabajando).
En el caso particular de que la transformación afin sea una rotación,
hay que pasar un punto como
centro de rotación, mediante esta función se puede pasar
este parámetro CoordType( argumento
template que como ya mencionamos será bicotiCoordinate2D<
REAL
> o
bicotiCoordinate3D<
REAL
> según la dimensión con la que se este trabajando).
Retorna
el resultado de los Algorimos, ver los casos particulares para saber si
l reultado es
un bicotiImageImplementation2D
o bicotiImageImplementation3D.
Esta
función hay que considerarla con cuidado, retorna el resultado como
la función anterior, pero
se pone este resultado como la próxima imagen fuente( imagen a aplicar
los algoritmos ). Recordar
que se pide memoria al realizar los algoritmos y si se pierde la referencia
a las imagenes no hay
forma de devolverla, en particular tener cuidado con el resultado
de cortes en 3D, el resultado es
una imagen 2D y las imagenes fuente son 3D.