Classes | Functions

4D Separable Convolution (3D + time)
[Separable Convolution]

Fast implementation of convolution algorithms to be used only with 4D separable linear filters. More...

Classes

struct  Separable4DFilter< VOXEL >
 Structure for representing 4D separable filter of arbitrary size in each directions/axis. More...
struct  BorderPaddings4D< VOXEL >
 Structure containing data that is used for 4D input image expansion. More...

Functions

template<class VOXEL >
int SeparableFilterConvolution4D (Image4d< VOXEL > const &d, Image4d< VOXEL > &res, struct Separable4DFilter< VOXEL > const &f, struct BorderPaddings4D< VOXEL > const &b)
template<class VOXEL >
int SeparableFilterConvolution4D (Image4d< VOXEL > const &d, Image4d< VOXEL > &res, struct Separable4DFilter< VOXEL > const &f, const int x_bsize=0, const VOXEL x_bvalue=0, const int y_bsize=0, const VOXEL y_bvalue=0, const int z_bsize=0, const VOXEL z_bvalue=0, const int t_bsize=0, const VOXEL t_bvalue=0)

Detailed Description

Fast implementation of convolution algorithms to be used only with 4D separable linear filters.

It also contains structures for defining the convolution filter and the means to extend input image boundaries. It supports 1D, 2D, 3D or 4D filters. 4D filtering is based in Image4d representation.


Function Documentation

template<class VOXEL >
int SeparableFilterConvolution4D ( Image4d< VOXEL > const &  d,
Image4d< VOXEL > &  res,
struct Separable4DFilter< VOXEL > const &  f,
struct BorderPaddings4D< VOXEL > const &  b 
)

Convolution of 4D input image extended by given user data.

This function is, in fact, an extension of the function SeparableFilterConvolution(). Please, refer there for more detailed information.

Parameters:
[in] d const reference to the input image
[out] res reference to the output image, the result
[in] f the convolution filter
[in] b the input image extension receipt
Returns:
  • 0 on success
  • 1 or 2 on differing filter lengths
  • 3 on memory allocation error
Note:
Only float and double versions of this template are available, since GRAY8 suffers from voxel value overflows.
Author:
Vladimír Ulman (xulman@fi.muni.cz)
Date:
2007
template<class VOXEL >
int SeparableFilterConvolution4D ( Image4d< VOXEL > const &  d,
Image4d< VOXEL > &  res,
struct Separable4DFilter< VOXEL > const &  f,
const int  x_bsize = 0,
const VOXEL  x_bvalue = 0,
const int  y_bsize = 0,
const VOXEL  y_bvalue = 0,
const int  z_bsize = 0,
const VOXEL  z_bvalue = 0,
const int  t_bsize = 0,
const VOXEL  t_bvalue = 0 
)

Convolution of 4D input image extended by given constant values.

This is a wrapper function to the main workhorse SeparableFilterConvolution4D().

Parameters:
[in] d const reference to the input image
[out] res reference to the output image, the result
[in] f the convolution filter
[in] x_bsize the number of voxels to extend image in each direction along the x axis
[in] x_bvalue the input image is extended along the x axis with this voxel value
[in] y_bsize the number of voxels to extend image in each direction along the y axis
[in] y_bvalue the input image is extended along the y axis with this voxel value
[in] z_bsize the number of voxels to extend image in each direction along the z axis
[in] z_bvalue the input image is extended along the z axis with this voxel value
[in] t_bsize the number of voxels to extend image in each direction along the t axis
[in] t_bvalue the input image is extended along the t axis with this voxel value
Returns:
  • 0 on success
  • 1 or 2 on differing filter lengths
  • 3 on memory allocation error

The extension sizes must comply with the convolution filter sizes along respective axes.

Note:
Only float and double versions of this template are available, since GRAY8 suffers from voxel value overflows.
Author:
Vladimír Ulman (xulman@fi.muni.cz)
Date:
2007