SLIMMER
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Attributes
StackSetMotionCorrector< T, T2, DistType > Class Template Reference

A class for stackSet motion correction. More...

#include <StackSetMotionCorrector.h>

List of all members.

Public Member Functions

 ~StackSetMotionCorrector ()
 destructor
 StackSetMotionCorrector (StackSet< Stack< T, LinTransStack< float > > > &sss)
 constructor with sss, using initialization list
void setMinStepSize (float m)
 Set _MSME_C_minStepSize.
void setMinEdecrease (float m)
 Set _MSME_C_minEdecrement.
void SIMC_BulkHead2Head_PW (unsigned int ref, unsigned int flo, SimpleTField< float > *mask=NULL, Tcomp stepsize=3.0)
 Bulk head-to-head alignment, using powell optimization.
void SIMC_VB_MSME_C_CG (const SimpleTField< Tmask > *mask=NULL, const unsigned int init_n_basis=1, const unsigned int msiStep=2)
 Muti-scale motion, centered SIMC with volume blurred images, using conjugate gradient descent.
void SIMC_C_ConjugateGradientDescent (SimpleTField< float > *mask=NULL)
 Centered conjugate gradient descent.
void SetBlur (float sigma)
 Along-intersection blurring kernel.
template<>
const char _versionID []
template<>
const char _versionID []
template<>
const char _versionID []

Static Public Member Functions

template<typename TStack , typename Tstf >
static void VolumeBlurring (const TStack &ss, const float sigma, SimpleTField< Tstf > &stf, const SimpleTField< float > *mask=NULL)
 3D volume blurring function from a motion scattered stack
template<typename Tst1 , typename Tst2 , typename Tstf >
static void Resample (const Stack< Tst1, Tst2 > &ssin, const SimpleTField< Tstf > &target, Stack< Tstf, Tst2 > &ssout)
 Resample a SimpleTField as a Stack. Currently Tstf=Tst1=Tst2 is needed.
static SimpleVTVec< float > UpdateSliceQuality (StackSet< Stack< T, LinTransStack< float > > > &sss, const float thres=0.15f)
 Update slice quality by comparing the mean intensity with neighbors.
static SimpleVTVec< float > UpdateSliceQualityIntx (StackSet< Stack< T, LinTransStack< float > > > &sss, const float thres=1.25f)
 Update slice quality by matching the slice intersection intensity profiles.

Static Public Attributes

static const char _versionID []

Protected Types

typedef double Tcomp
typedef float Tmask

Protected Attributes

StackSet< Stack< T,
LinTransStack< float > > > & 
_sss
float _sigmaBlur
float _MSME_C_minStepSize
float _MSME_C_minEdecrease

Detailed Description

template<typename T = short, typename T2 = float, typename DistType = L2<T2>>
class StackSetMotionCorrector< T, T2, DistType >

A class for stackSet motion correction.

Author:
Kio Kim 2007-2011
Id:
SIMCBulkHeadEnergyFunction.h,v 1.3 2011/11/22 19:34:03 bicg Exp
Author:
Kio Kim 2007-2011
Id:
StackSetMotionCorrector.h,v 1.13 2012/02/21 01:57:47 kio Exp

Member Function Documentation

template<typename T = short, typename T2 = float, typename DistType = L2<T2>>
void StackSetMotionCorrector< T, T2, DistType >::SIMC_BulkHead2Head_PW ( unsigned int  ref,
unsigned int  flo,
SimpleTField< float > *  mask = NULL,
Tcomp  stepsize = 3.0 
) [inline]

Bulk head-to-head alignment, using powell optimization.

Parameters:
[in]factorSlice quality threshold. If mean slice intersection energy of a slice against other slices is >factor*median, it is considered low quality.
[in]maskpointer to mask Given a reference stack, estimate the relative motion of the floating stack using the Powell's optimization in the head coordinate system.
[in]refStack index of the reference
[in]floStack index of the floating
[in]maskpointer to the mask file.
[in]stepsizeStepsize for Powell optimization
template<typename T = short, typename T2 = float, typename DistType = L2<T2>>
static SimpleVTVec<float> StackSetMotionCorrector< T, T2, DistType >::UpdateSliceQuality ( StackSet< Stack< T, LinTransStack< float > > > &  sss,
const float  thres = 0.15f 
) [inline, static]

Update slice quality by comparing the mean intensity with neighbors.

Parameters:
[in]sssInput StackSet.
[in]thresQuality determination threshold (default =0.15)
Returns:
Quality Vector
template<typename T = short, typename T2 = float, typename DistType = L2<T2>>
template<typename TStack , typename Tstf >
static void StackSetMotionCorrector< T, T2, DistType >::VolumeBlurring ( const TStack &  ss,
const float  sigma,
SimpleTField< Tstf > &  stf,
const SimpleTField< float > *  mask = NULL 
) [inline, static]

3D volume blurring function from a motion scattered stack

This function blurs a Stack of slices in 3D, accounting the location of individual slices.

Parameters:
[in]ssInput Stack object
[in]sigmasigma of the blurring Gaussian kernel size
[out]stfSimpleTField for the output
[in]maskMask file is needed to specify the target region of blurring operation
 All Classes Functions Variables Typedefs