Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Transformation.hpp File Reference

Contains all classes concerning Transformations. More...

#include <ImLib3D/Affine3DTransform.hpp>
#include <ImLib3D/Display.hpp>
#include <ImLib3D/ImageProgress.hpp>
#include <ImLib3D/Transformation.hxx>

Include dependency graph for Transformation.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  IP3D
namespace  IP3D::TransformAffineHelpers

Functions

template<class ImageType>
void TransformWithInverseField (const ImageType &imOrig, const Field3Df &field, ImageType &imRes)
template<class ImageType>
void TransformAffine (const ImageType &imOrig, const Affine3DTransform &transfo, ImageType &imDest, const Size3D *resSize=NULL)
void CreateInverseField (Field3Df &field, const Affine3DTransform &transfo)
template<class ImageType>
void Scale (const ImageType &src, const Size3D &newSize, ImageType &res)
template<class ImageType>
void WrapTranslate (const ImageType &src, const Vect3Di &t0, ImageType &res0)
template<class ImageType>
void Flip (const ImageType &src, const string &axes, ImageType &res0)
template<class ImageType>
void SwapAxes (const ImageType &src, const string &axes, ImageType &res0)


Detailed Description

Contains all classes concerning Transformations.

<long description=""> Contains all classes concerning Transformations like rotation, scaling and so on

See AUTHORS and COPYING files for more information

Date:
2001-01-17

Definition in file Transformation.hpp.


Function Documentation

template<class ImageType>
void IP3D::TransformWithInverseField const ImageType &  imOrig,
const Field3Df field,
ImageType &  imRes
 

#&TransformWithInverseField&# Use a vector field to apply a deformation on an image. If F is a vector field (3D image composed of 3D vectors), S the source image,R the result image, and P a point, we have: R(P)=S(P+F(P)). If no interpolator is present in source image, it will use a bspline 5th degree interpolator. If a mask is present, it will be transformed by creating seperate binary images for each different intensity value in the mask. Each binary (0 or 1) image is transformed using an interpolator (default bspline 5). The result mask is constructed by recombining the transformed floating point binary images. This gives MUCH better results than would be obtained by using nearest neighbor interpolation. This is however, very slow if mask contains many different intensity values.

Source image 1 type:ImageType Deformation field type:Image3Dlinear<Vect3Df> Result image type:ImageType ~

Referenced by IP3D::TransformAffine(), and IP3D::TransformWithInverseField().

template<class ImageType>
void IP3D::TransformAffine const ImageType &  imOrig,
const Affine3DTransform transfo,
ImageType &  imDest,
const Size3D resSize = NULL
 

#&TransformAffine&# Perform an affine transformation on an image Affine transforms are described by a 3x3 matrix and a translation vector. They can be stored in an ImLib3D format file (see Affine3DTransform). If no interpolator is present in source image, it will use a bspline 5th degree interpolator. If a mask is present, it will be transformed as described in TransformWithInverseField. If optional size is not ommited, result image will have same size as source image.

Source image 1 type:ImageType Affine transform type:Affine3DTransform Result image type:ImageType Result image size type:Size3D ~

Referenced by IP3D::Scale().

template<class ImageType>
void IP3D::Scale const ImageType &  src,
const Size3D newSize,
ImageType &  res
 

#&Scale&# Change image size using resampling If no interpolator is present in source image, it will use a bspline 5th degree interpolator. If a mask is present, it will be transformed as described in TransformWithInverseField.

Source image 1 type:ImageType New Size type:Size3D Result image type:ImageType ~

Definition at line 100 of file Transformation.hpp.

References Size3D::depth, Size3D::height, Affine3DTransform::SetScale(), IP3D::TransformAffine(), and Size3D::width.

template<class ImageType>
void IP3D::WrapTranslate const ImageType &  src,
const Vect3Di t0,
ImageType &  res0
 

#&WrapTranslate&# Translates an image by integer vector, and wraps around Transforms any masks as well.

Source image 1 type:ImageType dV type:Vect3Di Result image type:ImageType ~

Definition at line 121 of file Transformation.hpp.

References Vect3D< Value, Real >::x, Vect3D< Value, Real >::y, and Vect3D< Value, Real >::z.

Referenced by IP3D::GaussianApproxFilter().

template<class ImageType>
void IP3D::Flip const ImageType &  src,
const string &  axes,
ImageType &  res0
 

#&Flip&# Flips image in one or more directions This is usefull when using images from various sources. Second argument is a string containing directions in which to flip. example: "XY"

Source image type:ImageType direction type:string Result image type:ImageType ~

Definition at line 162 of file Transformation.hpp.

template<class ImageType>
void IP3D::SwapAxes const ImageType &  src,
const string &  axes,
ImageType &  res0
 

#&SwapAxes&# Swaps axes This is usefull when using images from various sources. Second argument is a string containing axes to swap. example: "XY" will invert x and y axes

Source image type:ImageType direction type:string Result image type:ImageType ~

Definition at line 204 of file Transformation.hpp.

References ImageProcessorArgs< ImageType >::GetDest(), and ImageProcessorArgs< ImageType >::SetDestSize().


Generated on Fri Jun 17 13:36:17 2005 for ImLib3D by  doxygen 1.4.2