Class AlgorithmIHN3Correction
- All Implemented Interfaces:
ActionListener,WindowListener,Runnable,EventListener
N3 Inhomogeneity correction This is based on code by John G. Sled, McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University Information may be found at: http://www.bic.mni.mcgill.ca/software/N3/ Bibliography:
1. J.G. Sled, A.P. Zijdenbos, and A.C. Evans, "A non-parametric method for automatic correction of intensity non-uniformity in MRI data," IEEE Transactions on Medical Imaging, vol. 17, pp. 87-97, February, 1998.
2. J.G. Sled, A.P. Zijdenbos, and A.C. Evans, "A comparison of retrospective intensity non-uniformity correction methods for MRI," in Information Processing in Medical Imaging, pp. 459-464, 1997.
3. J.G. Sled, "A non-parametric method for automatic correction of intensity non-uniformity in MRI data," Master's thesis, McGill University, Montreal, QC, May, 1997.
The N3 method should work with any MR volume including raw (non-stereotaxic) data.
An artifact often seen in MRI is for the signal intensity to vary smoothly across an image. Variously referred to as RF inhomogeneity, shading artifact, or intensity non-uniformity, it is usually attributed to such factors as poor radio frequency(RF) field uniformity, eddy currents driven by switching of field gradients, and patient anatomy both inside and outside the field of view.
This code corrects intensity non-uniformity in MR data without requiring supervision. This method can be applied without a tissue intensity or geometric model. Described as Non-parametric Non_uniform intensity Normalization (N3), the method is independent of pulse sequence and insensitive to pathological data that might otherwise violate model assumptions. To eliminate the dependence of the field estimate on anatomy, an iterative approach is employed to estimate both the multiplicative bias field and the distribution of true tissue intensities. Preprocessing of MR data using N3 has been shown to substantially improve the accuracy of anatomical analysis techniques such as tissue classification and cortical surface extraction.
From John G. Sled's original N3 code:
Copyright 1996, John G. Sled McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The author and McGill University make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate float[][]DOCUMENT ME!private intDOCUMENT ME!private double[][]DOCUMENT ME!private intDOCUMENT ME!private booleanIf true determines the threshold by histogram analysis.private float[][][][]DOCUMENT ME!private final intDOCUMENT ME!private floatHistogram bin width.private intDOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private float[]Buffer for original source image.private final float[][]DOCUMENT ME!private float[]DOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private double[][]DOCUMENT ME!private float[]DOCUMENT ME!private intDOCUMENT ME!private float[][]DOCUMENT ME!private float[][]DOCUMENT ME!private floatDOCUMENT ME!private int[]DOCUMENT ME!private int[]DOCUMENT ME!private int[]DOCUMENT ME!private float[][]DOCUMENT ME!private intDOCUMENT ME!private floatThe measure used to terminate the iterations is the coefficient of variation of change in field estimates between successive iterations.private booleanIdeally the Weiner filter noise equals the white noise of the image.private float[]DOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private final floatLowest allowable field value.private float[]DOCUMENT ME!private floatCharacteristic distance over which the field varies.private ModelImageDOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private floatDOCUMENT ME!static final intforward FFTprivate intDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private int[]DOCUMENT ME!private floatDOCUMENT ME!private doubleDOCUMENT ME!private floatDOCUMENT ME!private doubleSum of contents of hisotogram bins.private intDOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private float[][]DOCUMENT ME!private intDOCUMENT ME!static final intinverse FFTprivate intDOCUMENT ME!private double[][]DOCUMENT ME!private floatWidth of deconvolution kernel used to sharpen the histogram.private float[][]DOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private int[]DOCUMENT ME!private float[]Log transformed data.private floatIf minimum value of shrunken buffer invalid input: '<' 1.0f, amount that must be added to make it 1.0f.private int[]DOCUMENT ME!private BitSetDOCUMENT ME!private intMaximum number of iterations.private floatDOCUMENT ME!private intDOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private int[]Number of basis functions in each dimension.private intNumber of histogram bins for shrunken buffer.private intDOCUMENT ME!private int[]DOCUMENT ME!private floatDOCUMENT ME!private float[]DOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private floatNoise used in Weiner filter.private intDOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private int[][]DOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private int[]DOCUMENT ME!private final float[]Distance per pixel in millimeters.private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private intDOCUMENT ME!private float[]DOCUMENT ME!private floatDOCUMENT ME!private float[]Buffer for sampled image.private floatDOCUMENT ME!private floatThe factor by which the data is subsampled to a lower resolution in estimating the slowly varying non-uniformity field.private intDOCUMENT ME!private intDOCUMENT ME!private doubleDOCUMENT ME!private int[]DOCUMENT ME!private BitSetMask for shrunken buffer.private floatMaximum value of shrunken buffer.private floatMinimum value of shrunken buffer.private floatDOCUMENT ME!private floatDOCUMENT ME!static final intDOCUMENT ME!private final floatDOCUMENT ME!private final floatDOCUMENT ME!private doubleDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private int[]DOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private floatValues at less than threshold are treated as part of the background.private intDOCUMENT ME!private int[]DOCUMENT ME!private int[]DOCUMENT ME!private intDOCUMENT ME!private int[]DOCUMENT ME!private int[]DOCUMENT ME!private BitSetMask that meets threshold and sMask requirements for shrunken volume.private intFORWARD or INVERSE for FFT.private intDOCUMENT ME!private int[]DOCUMENT ME!private booleanIf true, the program is run from a script.private floatDOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private floatDOCUMENT ME!private float[]DOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!private intDOCUMENT ME!private floatFactor by which to shrink volume.private float[]DOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private intDOCUMENT ME!private floatDOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private float[]DOCUMENT ME!private doubleDOCUMENT ME!private doubleDOCUMENT ME!Fields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStoppedFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
ConstructorsConstructorDescriptionAlgorithmIHN3Correction(ModelImage destImg, ModelImage fieldImg, ModelImage srcImg, float _threshold, int _maxIters, float _endTol, float _fieldDistance, float _shrink, float _kernelfwhm, float _noise, boolean _entireImage, boolean _autoThreshold, boolean useScript) Creates a new AlgorithmIHN3Correction object. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcleanUp()Prepares this class for destruction.private voidfft(float[] rData, float[] iData) This is the method that calculates the FFT.voidfinalize()Prepares this class for destruction.private voidDOCUMENT ME!private voidDOCUMENT ME!private voidIHN3Correction2().private voidIHN3Correction3.voidStart algorithm.private voidDOCUMENT ME!private voidDOCUMENT ME!private voidDOCUMENT ME!private voidtransformBilinear(float[] imgBuf, TransMatrix xfrm) Transforms and resamples volume using bilinear interpolation.private voidtransformNearestNeighbor2D(float[] imgBuf, TransMatrix xfrm) Transforms and resamples volume using nearest neighbor interpolation.private voidtransformNearestNeighbor3D(float[] imgBuf, TransMatrix xfrm) Transforms and resamples volume using nearest neighbor interpolation.private voidtransformTrilinear(float[] imgBuffer, TransMatrix matrix) Transforms and resamples volume using trilinear interpolation.private voidAllocates and initializes important buffers.Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, generateProgressValues, getDestImage, getElapsedTime, getMask, getMaxProgressValue, getMinProgressValue, getNumberOfThreads, getProgress, getProgressChangeListener, getProgressChangeListeners, getProgressModulus, getProgressStep, getProgressValues, getSrcImage, isCompleted, isImage25D, isMultiThreadingEnabled, isRunningInSeparateThread, isThreadStopped, linkProgressToAlgorithm, linkProgressToAlgorithm, makeProgress, notifyListeners, removeListener, removeProgressChangeListener, run, setCompleted, setImage25D, setMask, setMaxProgressValue, setMinProgressValue, setMultiThreadingEnabled, setNumberOfThreads, setProgress, setProgressModulus, setProgressStep, setProgressValues, setProgressValues, setRunningInSeparateThread, setSrcImage, setStartTime, setThreadStopped, startMethod, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpenedMethods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
INVERSE
public static final int INVERSEinverse FFT- See Also:
-
FORWARD
public static final int FORWARDforward FFT- See Also:
-
spline
public static final int splineDOCUMENT ME!- See Also:
-
AtA
private float[][] AtADOCUMENT ME! -
AtAP
private int AtAPDOCUMENT ME! -
AtFP
private int AtFPDOCUMENT ME! -
UP
private int UPDOCUMENT ME! -
DP
private int DPDOCUMENT ME! -
FP
private int FPDOCUMENT ME! -
AtF
private double[][] AtFDOCUMENT ME! -
autoThreshold
private boolean autoThresholdIf true determines the threshold by histogram analysis. If true a VOI cannot be used and the input threshold is ignored. -
bendingMatrix
private float[][][][] bendingMatrixDOCUMENT ME! -
binNumber
private final int binNumberDOCUMENT ME!- See Also:
-
binWidth
private float binWidthHistogram bin width. -
blockInt
private int blockIntDOCUMENT ME! -
currentOffset
private int currentOffsetDOCUMENT ME! -
blurI
private float[] blurIDOCUMENT ME! -
blurR
private float[] blurRDOCUMENT ME! -
buffer
private float[] bufferBuffer for original source image. -
bW
private final float[][] bWDOCUMENT ME! -
CArray
private float[] CArrayDOCUMENT ME! -
class_max
private float class_maxDOCUMENT ME! -
class_min
private float class_minDOCUMENT ME! -
coef
private double[][] coefDOCUMENT ME! -
correctedBuffer
private float[] correctedBufferDOCUMENT ME! -
d1Spline
private float[][] d1SplineDOCUMENT ME! -
DArray
private float[][] DArrayDOCUMENT ME! -
denom
private float denomDOCUMENT ME! -
derivative
private int[] derivativeDOCUMENT ME! -
dloc_i
private int[] dloc_iDOCUMENT ME! -
dloc_j
private int[] dloc_jDOCUMENT ME! -
domain
private float[][] domainDOCUMENT ME! -
endTol
private float endTolThe measure used to terminate the iterations is the coefficient of variation of change in field estimates between successive iterations. -
entireImage
private boolean entireImageIdeally the Weiner filter noise equals the white noise of the image. The performance of the N3 method is enhanced by supplying a mask for the region of interest. If true, the N3 method is applied to the entire image. -
estimateBuffer
private float[] estimateBufferDOCUMENT ME! -
estimateOffset
private float estimateOffsetDOCUMENT ME! -
estimateScale
private float estimateScaleDOCUMENT ME! -
estimateSlope
private float estimateSlopeDOCUMENT ME! -
fHist
private float[] fHistDOCUMENT ME! -
fHistPaddedI
private float[] fHistPaddedIDOCUMENT ME! -
fHistPaddedR
private float[] fHistPaddedRDOCUMENT ME! -
field_floor
private final float field_floorLowest allowable field value.- See Also:
-
fieldBuffer
private float[] fieldBufferDOCUMENT ME! -
fieldDistance
private float fieldDistanceCharacteristic distance over which the field varies. The distance between adjacent knots in bspline fitting with at least 4 knots going in every dimension. The default in the dialog is one third the distance (resolution * extents) of the smallest dimension. -
fieldImage
DOCUMENT ME! -
filterI
private float[] filterIDOCUMENT ME! -
filterR
private float[] filterRDOCUMENT ME! -
fIndex
private float fIndexDOCUMENT ME! -
firstMoment0
private double firstMoment0DOCUMENT ME! -
firstMoment1
private double firstMoment1DOCUMENT ME! -
fOffset
private float fOffsetDOCUMENT ME! -
fwhm
private double fwhmDOCUMENT ME! -
fwhmFactor
private double fwhmFactorDOCUMENT ME! -
fwhmScale
private double fwhmScaleDOCUMENT ME! -
halfBin
private double halfBinDOCUMENT ME! -
hist
private int[] histDOCUMENT ME! -
histFactor
private float histFactorDOCUMENT ME! -
histMean
private double histMeanDOCUMENT ME! -
histOffset
private float histOffsetDOCUMENT ME! -
histSum
private double histSumSum of contents of hisotogram bins. -
iLoc
private int iLocDOCUMENT ME! -
incr
private float incrDOCUMENT ME! -
value_k
private float value_kDOCUMENT ME! -
index
private int indexDOCUMENT ME! -
index1
private int index1DOCUMENT ME! -
integral
private float[][] integralDOCUMENT ME! -
interval
private int intervalDOCUMENT ME! -
iters
private int itersDOCUMENT ME! -
JArray
private double[][] JArrayDOCUMENT ME! -
kernelfwhm
private float kernelfwhmWidth of deconvolution kernel used to sharpen the histogram. Larger values give faster convergence while smaller values give greater accuracy. -
knots
private float[][] knotsDOCUMENT ME! -
lambda
private float lambdaDOCUMENT ME! -
loc
private float locDOCUMENT ME! -
locations
private int[] locationsDOCUMENT ME! -
logBuffer
private float[] logBufferLog transformed data. -
logOffset
private float logOffsetIf minimum value of shrunken buffer invalid input: '<' 1.0f, amount that must be added to make it 1.0f. Otherwise == 0.0f. -
lower
private int[] lowerDOCUMENT ME! -
mask
DOCUMENT ME! -
maxIters
private int maxItersMaximum number of iterations. -
momentI
private float[] momentIDOCUMENT ME! -
momentR
private float[] momentRDOCUMENT ME! -
nArray
private int[] nArrayNumber of basis functions in each dimension. -
nBins
private int nBinsNumber of histogram bins for shrunken buffer. -
nDimensions
private int nDimensionsDOCUMENT ME! -
newDim
private int[] newDimDOCUMENT ME! -
newRes
private float newResDOCUMENT ME! -
newResol
private float[] newResolDOCUMENT ME! -
newSliceSize
private int newSliceSizeDOCUMENT ME! -
newVolSize
private int newVolSizeDOCUMENT ME! -
nMax
private int nMaxDOCUMENT ME! -
noise
private float noiseNoise used in Weiner filter. -
nProduct
private int nProductDOCUMENT ME! -
four
private int fourDOCUMENT ME! -
offset
private int offsetDOCUMENT ME! -
offset1
private int offset1DOCUMENT ME! -
offset2
private int offset2DOCUMENT ME! -
offsetSp
private int[][] offsetSpDOCUMENT ME! -
offsetStep
private int offsetStepDOCUMENT ME! -
first
private int firstDOCUMENT ME! -
last
private int lastDOCUMENT ME! -
order
private int orderDOCUMENT ME! -
orgDim
private int[] orgDimDOCUMENT ME! -
orgResol
private final float[] orgResolDistance per pixel in millimeters. -
padded_size
private int padded_sizeDOCUMENT ME! -
pLocation
private int pLocationDOCUMENT ME! -
pLocation2
private int pLocation2DOCUMENT ME! -
pValue
private int pValueDOCUMENT ME! -
pDloc_i
private int pDloc_iDOCUMENT ME! -
pDloc_j
private int pDloc_jDOCUMENT ME! -
product
private float productDOCUMENT ME! -
pSpline
private int pSplineDOCUMENT ME! -
pOffset
private int pOffsetDOCUMENT ME! -
region
private int regionDOCUMENT ME! -
residueBuffer
private float[] residueBufferDOCUMENT ME! -
sBuffer
private float[] sBufferBuffer for sampled image. -
scale
private float scaleDOCUMENT ME! -
shrink
private float shrinkThe factor by which the data is subsampled to a lower resolution in estimating the slowly varying non-uniformity field. Reduce sampling in the finest sampling direction by the shrink factor. Reduce other sampling directions only if resolution is less than shrink times original minimum resolution. Uses nearest neighbor resampling. -
sizeC
private int sizeCDOCUMENT ME! -
sliceSize
private int sliceSizeDOCUMENT ME! -
slope
private double slopeDOCUMENT ME! -
smallN
private int[] smallNDOCUMENT ME! -
sMask
Mask for shrunken buffer. -
sMax
private float sMaxMaximum value of shrunken buffer. -
sMin
private float sMinMinimum value of shrunken buffer. -
sourceMin
private float sourceMinDOCUMENT ME! -
sourceMax
private float sourceMaxDOCUMENT ME! -
spline_lambda
private final float spline_lambdaDOCUMENT ME!- See Also:
-
spline_subsample
private final float spline_subsampleDOCUMENT ME!- See Also:
-
sqrtNum
private double sqrtNumDOCUMENT ME! -
start
private int startDOCUMENT ME! -
length
private int lengthDOCUMENT ME! -
mid
private int midDOCUMENT ME! -
startK
private float startKDOCUMENT ME! -
stddev
private float stddevDOCUMENT ME! -
mean
private float meanDOCUMENT ME! -
numVoxels
private float numVoxelsDOCUMENT ME! -
sumValue
private float sumValueDOCUMENT ME! -
sum2Value
private float sum2ValueDOCUMENT ME! -
step
private int[] stepDOCUMENT ME! -
Sx
private double SxDOCUMENT ME! -
Sy
private double SyDOCUMENT ME! -
Sz
private double SzDOCUMENT ME! -
temp
private float tempDOCUMENT ME! -
temp2
private float temp2DOCUMENT ME! -
threshold
private float thresholdValues at less than threshold are treated as part of the background. -
tiflat
private int tiflatDOCUMENT ME! -
tiindex
private int[] tiindexDOCUMENT ME! -
tistep
private int[] tistepDOCUMENT ME! -
tjflat
private int tjflatDOCUMENT ME! -
tjindex
private int[] tjindexDOCUMENT ME! -
tjstep
private int[] tjstepDOCUMENT ME! -
tMask
Mask that meets threshold and sMask requirements for shrunken volume. -
transformDir
private int transformDirFORWARD or INVERSE for FFT. -
upper
private int[] upperDOCUMENT ME! -
useScript
private boolean useScriptIf true, the program is run from a script. -
value
private float valueDOCUMENT ME! -
value1
private float value1DOCUMENT ME! -
value2
private float value2DOCUMENT ME! -
frac
private float fracDOCUMENT ME! -
rfrac
private float rfracDOCUMENT ME! -
values
private float[] valuesDOCUMENT ME! -
vari
private double variDOCUMENT ME! -
varMax
private double varMaxDOCUMENT ME! -
volSize
private int volSizeDOCUMENT ME! -
volumeFactor
private float volumeFactorFactor by which to shrink volume. -
workingBuffer
private float[] workingBufferDOCUMENT ME! -
xf
private float xfDOCUMENT ME! -
xo
private int xoDOCUMENT ME! -
xyo
private int xyoDOCUMENT ME! -
xv
private float xvDOCUMENT ME! -
xyv
private float xyvDOCUMENT ME! -
yMat
private float[] yMatDOCUMENT ME! -
ys
private float[] ysDOCUMENT ME! -
zero
private float[] zeroDOCUMENT ME! -
zeroMoment0
private double zeroMoment0DOCUMENT ME! -
zeroMoment1
private double zeroMoment1DOCUMENT ME!
-
-
Constructor Details
-
AlgorithmIHN3Correction
public AlgorithmIHN3Correction(ModelImage destImg, ModelImage fieldImg, ModelImage srcImg, float _threshold, int _maxIters, float _endTol, float _fieldDistance, float _shrink, float _kernelfwhm, float _noise, boolean _entireImage, boolean _autoThreshold, boolean useScript) Creates a new AlgorithmIHN3Correction object.- Parameters:
destImg- image model where result image is to storedfieldImg- image model where used field is storedsrcImg- source image model_threshold- Values at less than _threshold are treated as part of the background_maxIters- Maximum number of iterations_endTol- The measure used to terminate the iterations is the coefficient of variation of change in field estimates between successive iterations._fieldDistance- Characteristic distance over which the field varies. The distance between adjacent knots in bspline fitting with at least 4 knots going in every dimension. The default in the dialog is one third the distance (resolution * extents) of the smallest dimension._shrink- The factor by which the data is subsampled to a lower resolution in estimating the slowly varying non-uniformity field. Reduce sampling in the finest sampling direction by the shrink factor._kernelfwhm- Width of deconvolution kernel used to sharpen the histogram. Larger values give faster convergence while smaller values give greater accuracy._noise- Noise used in Weiner filter_entireImage- If true, the N3 method is applied to the entire image. If false, the N3 method is applied only to the region of interest._autoThreshold- If true determines the threshold by histogram analysis. If true a VOI cannot be used and the input threshold is ignored.useScript- If true, the program is run from a script
-
-
Method Details
-
finalize
public void finalize()Prepares this class for destruction.- Overrides:
finalizein classAlgorithmBase
-
runAlgorithm
public void runAlgorithm()Start algorithm.- Specified by:
runAlgorithmin classAlgorithmBase
-
cleanUp
private void cleanUp()Prepares this class for destruction. -
fft
private void fft(float[] rData, float[] iData) This is the method that calculates the FFT.- Parameters:
rData- real dataiData- imaginary data
-
fitSplinesToVolumeLookup2D
private void fitSplinesToVolumeLookup2D()DOCUMENT ME! -
fitSplinesToVolumeLookup3D
private void fitSplinesToVolumeLookup3D()DOCUMENT ME! -
IHN3Correction2
private void IHN3Correction2()IHN3Correction2(). Derived from PERL file nu_estimate_np_and_em.in Iteratively estimates intensity non-uniformity artifacts in MRI areas. -
IHN3Correction3
private void IHN3Correction3()IHN3Correction3. Derived from PERL file nu_estimate_np_and_em.in Iteratively estimates intensity non-uniformity artifacts in MRI volumes. -
smoothVolumeLookup2D
private void smoothVolumeLookup2D()DOCUMENT ME! -
smoothVolumeLookup3D
private void smoothVolumeLookup3D()DOCUMENT ME! -
TBSplineVolume
private void TBSplineVolume()DOCUMENT ME! -
transformBilinear
Transforms and resamples volume using bilinear interpolation.- Parameters:
imgBuf- - image arrayxfrm- - TransMatrix to be applied
-
transformNearestNeighbor2D
Transforms and resamples volume using nearest neighbor interpolation.- Parameters:
imgBuf- image arrayxfrm- transformation matrix to be applied
-
transformNearestNeighbor3D
Transforms and resamples volume using nearest neighbor interpolation.- Parameters:
imgBuf- image arrayxfrm- transformation matrix to be applied
-
transformTrilinear
Transforms and resamples volume using trilinear interpolation.- Parameters:
imgBuffer- image arrayxfrm- transformation matrix to be applied
-
volumeDomain
private void volumeDomain()Allocates and initializes important buffers.
-