SLIMMER
|
A class for slice stack bias field inconsistency correction. (Kim et al, TMI Sept, 2011.) More...
#include <StackSetBiasStabilizer.h>
Public Member Functions | |
StackSetBiasStabilizer (unsigned int deg) | |
Constructor. | |
~StackSetBiasStabilizer () | |
Destructor. | |
void | setBlur (float b) |
Sets the blurring kernel size for intersection profile smoothing. | |
template<typename Tk > | |
void | getFilter (float b, SimpleVTVec< Tk > &filter) const |
Computes 1D blurring kernel to smooth intersection. | |
template<typename Tss > | |
SimpleVTVec< double > | Correct (StackSet< Tss > &ss_in, StackSet< Tss > &ss_out) const |
Main function. | |
template<typename Tss , typename Td > | |
void | ComputeBiasCovarianceMatrix (StackSet< Tss > &ss, SimpleVTMat< Td > &M) const |
Bias Covariance matrix. | |
template<typename Tss , typename Td > | |
SimpleVTVec< double > | ComputeIntensityDistributionMatrix (StackSet< Tss > &ss, SimpleVTMat< Td > &A) const |
Computes the bias constraint matrix, and stores it into the referenced SimpleVTMat. | |
template<typename Tss > | |
SimpleVTVec< double > | GetInitialParam (StackSet< Tss > &ss_in) const |
Returns the initial bias parameter vector. | |
template<typename Tss , typename Td > | |
void | ApplyNewParam (const StackSet< Tss > &ss_in, const SimpleVTVec< Td > ¶ms, StackSet< Tss > &ss_out) const |
Applies the bias parameters to a StackSet. | |
int | EvaluateW (SliceIntersection &intx, SimpleVTVec< float > &w, const SimpleTField< float > &mask) const |
Calculate the weight for an intersection, and returns how many samples along the intersection are valid. | |
template<> | |
const char | _versionID [] |
Static Public Attributes | |
static const char | _versionID [] |
Protected Attributes | |
unsigned int | _deg |
unsigned int | _nparam |
float | _blur |
float | bmax |
A class for slice stack bias field inconsistency correction. (Kim et al, TMI Sept, 2011.)
It uses a polynomial bias field model, and assumes the true slice location is known. The bias field inconsistency is resolved by minimizing the intensithy difference between all intersecting slices, while resolving the mathematical moments of the bias field corrected images. Using a polynomial bias field model, this process is a constrained quadratic problem.
StackSetBiasStabilizer provides methods to compute (SimpleVTMat),
(SimpleVTMat),
(SimpleVTVec) and finally
(SimpleVTVec), and a method to apply the correction to a StackSet.
void StackSetBiasStabilizer< T >::ApplyNewParam | ( | const StackSet< Tss > & | ss_in, |
const SimpleVTVec< Td > & | params, | ||
StackSet< Tss > & | ss_out | ||
) | const [inline] |
SimpleVTVec<double> StackSetBiasStabilizer< T >::ComputeIntensityDistributionMatrix | ( | StackSet< Tss > & | ss, |
SimpleVTMat< Td > & | A | ||
) | const [inline] |
Computes the bias constraint matrix, and stores it into the referenced SimpleVTMat.
It also returns
void StackSetBiasStabilizer< T >::getFilter | ( | float | b, |
SimpleVTVec< Tk > & | filter | ||
) | const [inline] |
Computes 1D blurring kernel to smooth intersection.
[in] | b | ![]() |
[out] | filter | blurring kernel (SimpleVTVec) |