SLIMMER
|
A class for stackSet motion correction. More...
#include <StackSetMotionCorrector.h>
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 |
A class for stackSet motion correction.
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.
[in] | factor | Slice quality threshold. If mean slice intersection energy of a slice against other slices is >factor*median, it is considered low quality. |
[in] | mask | pointer 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] | ref | Stack index of the reference |
[in] | flo | Stack index of the floating |
[in] | mask | pointer to the mask file. |
[in] | stepsize | Stepsize for Powell optimization |
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.
[in] | sss | Input StackSet. |
[in] | thres | Quality determination threshold (default =0.15) |
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.
[in] | ss | Input Stack object |
[in] | sigma | sigma of the blurring Gaussian kernel size |
[out] | stf | SimpleTField for the output |
[in] | mask | Mask file is needed to specify the target region of blurring operation |