[5d12a0]: / tutorials / iMath_help.md

Download this file

348 lines (275 with data), 19.4 kB

Usage Information
ImageDimension: 2 or 3 (for 2 or 3 dimensional operations).
ImageDimension: 4 (for operations on 4D file, e.g. time-series data).
Operator: See list of valid operators below.
The last two arguments can be an image or float value
NB: Some options output text files

Mathematical Operations:
m : Multiply --- use vm for vector multiply
+ : Add --- use v+ for vector add
- : Subtract --- use v- for vector subtract
/ : Divide
^ : Power
max : voxelwise max
exp : Take exponent exp(imagevaluevalue)
addtozero : add image-b to image-a only over points where image-a has zero values
overadd : replace image-a pixel with image-b pixel if image-b pixel is non-zero
abs : absolute value
total : Sums up values in an image or in image1
image2 (img2 is the probability mask)
mean : Average of values in an image or in image1image2 (img2 is the probability mask)
vtotal : Sums up volumetrically weighted values in an image or in image1
image2 (img2 is the probability mask)
Decision : Computes result=1./(1.+exp(-1.0*( pix1-0.25)/pix2))
Neg : Produce image negative

Spatial Filtering:
Project Image1.ext axis-a which-projection : Project an image along axis a, which-projection=0(sum, 1=max, 2=min)
G Image1.ext s : Smooth with Gaussian of sigma = s
MD Image1.ext s : Morphological Dilation with radius s
ME Image1.ext s : Morphological Erosion with radius s
MO Image1.ext s : Morphological Opening with radius s
MC Image1.ext s : Morphological Closing with radius s
GD Image1.ext s : Grayscale Dilation with radius s
GE Image1.ext s : Grayscale Erosion with radius s
GO Image1.ext s : Grayscale Opening with radius s
GC Image1.ext s : Grayscale Closing with radius s
BlobDetector Image1.ext NumberOfBlobsToExtract Optional-Input-Image2 Blob-2-out.nii.gz N-Blobs-To-Match : blob detection by searching for local extrema of the Laplacian of the Gassian (LoG)
Example matching 6 best blobs from 2 images:
ImageMath 2 blob.nii.gz BlobDetector image1.nii.gz 1000 image2.nii.gz blob2.nii.gz 6
MatchBlobs Image1.ext Image1LM.ext Image2.ext

Transform Image:
Translate InImage.ext x [ y z ]

Time Series Operations:
CompCorrAuto : Outputs a csv file containing global signal vector and N comp-corr eigenvectors determined from PCA of the high-variance voxels. Also outputs a comp-corr + global signal corrected 4D image as well as a 3D image measuring the time series variance. Requires a label image with label 1 identifying voxels in the brain.
ImageMath 4 ${out}compcorr.nii.gz ThreeTissueConfounds ${out}.nii.gz ${out}seg.nii.gz 1 3 : Outputs average global, CSF and WM signals. Requires a label image with 3 labels , csf, gm , wm .
Usage : ThreeTissueConfounds 4D_TimeSeries.nii.gz LabeLimage.nii.gz csf-label wm-label
TimeSeriesSubset : Outputs n 3D image sub-volumes extracted uniformly from the input time-series 4D image.
Usage : TimeSeriesSubset 4D_TimeSeries.nii.gz n
TimeSeriesDisassemble : Outputs n 3D image volumes for each time-point in time-series 4D image.
Usage : TimeSeriesDisassemble 4D_TimeSeries.nii.gz

TimeSeriesAssemble : Outputs a 4D time-series image from a list of 3D volumes.
Usage : TimeSeriesAssemble time_spacing time_origin *images.nii.gz
TimeSeriesToMatrix : Converts a 4D image + mask to matrix (stored as csv file) where rows are time and columns are space .
Usage : TimeSeriesToMatrix 4D_TimeSeries.nii.gz mask
TimeSeriesSimpleSubtraction : Outputs a 3D mean pair-wise difference list of 3D volumes.
Usage : TimeSeriesSimpleSubtraction image.nii.gz
TimeSeriesSurroundSubtraction : Outputs a 3D mean pair-wise difference list of 3D volumes.
Usage : TimeSeriesSurroundSubtraction image.nii.gz
TimeSeriesSincSubtraction : Outputs a 3D mean pair-wise difference list of 3D volumes.
Usage : TimeSeriesSincSubtraction image.nii.gz
SplitAlternatingTimeSeries : Outputs 2 3D time series
Usage : SplitAlternatingTimeSeries image.nii.gz
ComputeTimeSeriesLeverage : Outputs a csv file that identifies the raw leverage and normalized leverage for each time point in the 4D image. leverage, here, is the difference of the time-point image from the average of the n images. the normalized leverage is = average( sum_k abs(Leverage(t)-Leverage(k)) )/Leverage(t).
Usage : ComputeTimeSeriesLeverage 4D_TimeSeries.nii.gz k_neighbors
SliceTimingCorrection : Outputs a slice-timing corrected 4D time series
Usage : SliceTimingCorrection image.nii.gz sliceTiming [sinc / bspline] [sincRadius=4 / bsplineOrder=3]
PASL : computes the PASL model of CBF
f =
rac{ lambda DeltaM }
{ 2 alpha M_0 TI_1 exp( - TI_2 / T_{1a} ) }
Usage : PASL 3D/4D_TimeSeries.nii.gz BoolFirstImageIsControl M0Image parameter_list.txt
pCASL : computes the pCASL model of CBF
f =
rac{ lambda DeltaM R_{1a} }
{ 2 alpha M_0 [ exp( - w R_{1a} ) - exp( -w ( au + w ) R_{1a}) ] }
Usage : pCASL 3D/4D_TimeSeries.nii.gz parameter_list.txt
PASLQuantifyCBF : Outputs a 3D CBF image in ml/100g/min from a magnetization ratio image
Usage : PASLQuantifyCBF mag_raants.nii.gz [TI1=700] [TI2=1900] [T1blood=1664] [Lambda=0.9] [Alpha=0.95] [SliceDelay-45]

Tensor Operations:
4DTensorTo3DTensor : Outputs a 3D_DT_Image with the same information.
Usage : 4DTensorTo3DTensor 4D_DTImage.ext
ComponentTo3DTensor : Outputs a 3D_DT_Image with the same information as component images.
Usage : ComponentTo3DTensor component_image_prefix[xx,xy,xz,yy,yz,zz] extension
ExtractComponentFrom3DTensor : Outputs a component images.
Usage : ExtractComponentFrom3DTensor dtImage.ext which={xx,xy,xz,yy,yz,zz}
ExtractVectorComponent: Produces the WhichVec component of the vector
Usage : ExtractVectorComponent VecImage WhichVec
TensorColor : Produces RGB values identifying principal directions
Usage : TensorColor DTImage.ext
TensorFA :
Usage : TensorFA DTImage.ext
TensorFADenominator :
Usage : TensorFADenominator DTImage.ext
TensorFANumerator :
Usage : TensorFANumerator DTImage.ext
TensorIOTest : Will write the DT image back out ... tests I/O processes for consistency.
Usage : TensorIOTest DTImage.ext
TensorMeanDiffusion : Mean of the eigenvalues
Usage : TensorMeanDiffusion DTImage.ext
TensorRadialDiffusion : Mean of the two smallest eigenvalues
Usage : TensorRadialDiffusion DTImage.ext
TensorAxialDiffusion : Largest eigenvalue, equivalent to TensorEigenvalue DTImage.ext 2
Usage : TensorAxialDiffusion DTImage.ext
TensorEigenvalue : Gets a single eigenvalue 0-2, where 0 = smallest, 2 = largest
Usage : TensorEigenvalue DTImage.ext WhichInd
TensorToVector : Produces vector field identifying one of the principal directions, 2 = largest eigenvalue
Usage : TensorToVector DTImage.ext WhichVec
TensorToVectorComponent: 0 => 2 produces component of the principal vector field (largest eigenvalue). 3 = 8 => gets values from the tensor
Usage : TensorToVectorComponent DTImage.ext WhichVec
TensorMask : Mask a tensor image, sets background tensors to zero or to isotropic tensors with specified mean diffusivity
Usage : TensorMask DTImage.ext mask.ext [ backgroundMD = 0 ]
FuseNImagesIntoNDVectorField : Create ND field from N input scalar images
Usage : FuseNImagesIntoNDVectorField imagex imagey imagez

Label Fusion:
MajorityVoting : Select label with most votes from candidates
Usage: MajorityVoting LabelImage1.nii.gz .. LabelImageN.nii.gz
CorrelationVoting : Select label with local correlation weights
Usage: CorrelationVoting Template.ext IntenistyImages LabelImages {Optional-Radius=5}
STAPLE : Select label using STAPLE method
Usage: STAPLE confidence-weighting LabelImages
Note: Gives probabilistic output (float)
MostLikely : Select label from from maximum probabilistic segmentations
Usage: MostLikely probabilityThreshold ProbabilityImages

AverageLabels : Select label using STAPLE method
Usage: AverageLabels LabelImages*
Note: Gives probabilistic output (float)

Image Metrics & Info:
PearsonCorrelation: r-value from intesities of two images
Usage: PearsonCorrelation image1.ext image2.ext {Optional-mask.ext}
NeighborhoodCorrelation: local correlations
Usage: NeighborhoodCorrelation image1.ext image2.ext {Optional-radius=5} {Optional-image-mask}
NormalizedCorrelation: r-value from intesities of two images
Usage: NormalizedCorrelation image1.ext image2.ext {Optional-image-mask}
Demons:
Usage: Demons image1.ext image2.ext
Mattes: mutual information
Usage: Mattes image1.ext image2.ext {Optional-number-bins=32} {Optional-image-mask}

Unclassified Operators:
ReflectionMatrix : Create a reflection matrix about an axis
out.mat ReflectionMatrix image_in axis

MakeAffineTransform : Create an itk affine transform matrix
ClosestSimplifiedHeaderMatrix : does what it says ... image-in, image-out
Byte : Convert to Byte image in [0,255]

CompareHeadersAndImages: Tries to find and fix header errors. Outputs a repaired image with new header.
Never use this if you trust your header information.
Usage : CompareHeadersAndImages Image1 Image2

ConvertImageSetToMatrix: Each row/column contains image content extracted from mask applied to images in img.nii
Usage : ConvertImageSetToMatrix rowcoloption Mask.nii
images.nii
ConvertImageSetToMatrix output can be an image type or csv file type.

RandomlySampleImageSetToCSV: N random samples are selected from each image in a list
Usage : RandomlySampleImageSetToCSV N_samples *images.nii
RandomlySampleImageSetToCSV outputs a csv file type.

FrobeniusNormOfMatrixDifference: take the difference between two itk-transform matrices and then compute the frobenius norm
Usage : FrobeniusNormOfMatrixDifference mat1 mat2

ConvertImageSetToEigenvectors: Each row/column contains image content extracted from mask applied to images in img.nii
Usage : ConvertImageSetToEigenvectors N_Evecs Mask.nii
images.nii
ConvertImageSetToEigenvectors output will be a csv file for each label value > 0 in the mask.

ConvertImageToFile : Writes voxel values to a file
Usage : ConvertImageToFile imagevalues.nii {Optional-ImageMask.nii}

ConvertLandmarkFile : Converts landmark file between formats. See ANTS.pdf for description of formats.
Usage : ConvertLandmarkFile InFile.txt
Example 1 : ImageMath 3 outfile.vtk ConvertLandmarkFile infile.txt

ConvertToGaussian :
Usage : ConvertToGaussian TValueImage sigma-float

ConvertVectorToImage : The vector contains image content extracted from a mask. Here the vector is returned to its spatial origins as image content
Usage : ConvertVectorToImage Mask.nii vector.nii

CorrelationUpdate : In voxels, compute update that makes Image2 more like Image1.
Usage : CorrelationUpdate Image1.ext Image2.ext RegionRadius

CountVoxelDifference : The where function from IDL
Usage : CountVoxelDifference Image1 Image2 Mask

CorruptImage :
Usage : CorruptImage Image NoiseLevel Smoothing

D : Danielson Distance Transform

MaurerDistance : Maurer distance transform (much faster than Danielson)
Usage : MaurerDistance inputImage {foreground=1}

DiceAndMinDistSum : Outputs DiceAndMinDistSum and Dice Overlap to text log file + optional distance image
Usage : DiceAndMinDistSum LabelImage1.ext LabelImage2.ext OptionalDistImage

EnumerateLabelInterfaces:
Usage : EnumerateLabelInterfaces ImageIn ColoredImageOutname NeighborFractionToIgnore

ClusterThresholdVariate : for sparse estimation
Usage : ClusterThresholdVariate image mask MinClusterSize

ExtractSlice : Extracts slice number from last dimension of volume (2,3,4) dimensions
Usage : ExtractSlice volume.nii.gz slicetoextract

FastMarchingSegmentation: final output is the propagated label image. Optional stopping value: higher values allow more distant propagation
Usage : FastMarchingSegmentation speed/binaryimagemask.ext initiallabelimage.ext Optional-Stopping-Value

FillHoles : Parameter = ratio of edge at object to edge at background; --
Parameter = 1 is a definite hole bounded by object only, 0.99 is close
Default of parameter > 1 will fill all holes
Usage : FillHoles Image.ext parameter

InPaint : very simple inpainting --- assumes zero values should be inpainted
Usage : InPaint #iterations

PeronaMalik : anisotropic diffusion w/varying conductance param (0.25 in example below)
Usage : PeronaMalik image #iterations conductance

Convolve : convolve input image with kernel image
Usage : Convolve inputImage kernelImage {normalize=1}
Finite : replace non-finite values with finite-value (default = 0)
Usage : Finite Image.exdt {replace-value=0}

LabelSurfaceArea :
Usage : LabelSurfaceArea ImageIn {MaxRad-Default=1}

FlattenImage : Replaces values greater than %ofMaxMax to the value %ofMaxMax
Usage : FlattenImage Image %ofMax

GetLargestComponent : Get the largest object in an image
Usage : GetLargestComponent InputImage {MinObjectSize}

Grad : Gradient magnitude with sigma s (if normalize, then output in range [0, 1])
Usage : Grad Image.ext s normalize?

HistogramMatch :
Usage : HistogramMatch SourceImage ReferenceImage {NumberBins-Default=255} {NumberPoints-Default=64} {useThresholdAtMeanIntensity=false}

RescaleImage :
Usage : RescaleImage InputImage min max

WindowImage :
Usage : WindowImage InputImage windowMinimum windowMaximum outputMinimum outputMaximum

NeighborhoodStats :
Usage : NeighborhoodStats inputImage whichStat radius whichStat: 1 = min, 2 = max, 3 = variance, 4 = sigma, 5 = skewness, 6 = kurtosis, 7 = entropy

InvId : computes the inverse-consistency of two deformations and write the inverse consistency error image
Usage : InvId VectorFieldName VectorFieldName

ReplicateDisplacement : replicate a ND displacement to a ND+1 image
Usage : ReplicateDisplacement VectorFieldName TimeDims TimeSpacing TimeOrigin

ReplicateImage : replicate a ND image to a ND+1 image
Usage : ReplicateImage ImageName TimeDims TimeSpacing TimeOrigin

ShiftImageSlicesInTime : shift image slices by one
Usage : ShiftImageSlicesInTime ImageName shift-amount-default-1 shift-dim-default-last-dim

LabelStats : Compute volumes / masses of objects in a label image. Writes to text file
Usage : LabelStats labelimage.ext valueimage.nii

Laplacian : Laplacian computed with sigma s (if normalize, then output in range [0, 1])
Usage : Laplacian Image.ext s normalize?

Canny : Canny edge detector
Usage : Canny Image.ext sigma lowerThresh upperThresh

Lipschitz : Computes the Lipschitz norm of a vector field
Usage : Lipschitz VectorFieldName

MakeImage :
Usage : MakeImage SizeX SizeY {SizeZ};

MTR : Computes the magnetization transfer ratio ( (M0-M1)/M0 ) and truncates values to [0,1]
Usage : MTR M0Image M1Image [MaskImage];

Normalize : Normalize to [0,1]. Option instead divides by average value. If opt is a mask image, then we normalize by mean intensity in the mask ROI.
Usage : Normalize Image.ext opt

PadImage : If Pad-Number is negative, de-Padding occurs
Usage : PadImage ImageIn PaddingSize [PaddingVoxelValue=0]

SigmoidImage :
Usage : SigmoidImage ImageIn [alpha=1.0] [beta=0.0]

Sharpen :
Usage : Sharpen ImageIn

CenterImage2inImage1 :
Usage : ReferenceImageSpace ImageToCenter

PH : Print Header

PoissonDiffusion : Solves Poisson's equation in a designated region using non-zero sources
Usage : PoissonDiffusion inputImage labelImage [sigma=1.0] [regionLabel=1] [numberOfIterations=500] [convergenceThreshold=1e-10]

PropagateLabelsThroughMask: Final output is the propagated label image. Optional stopping value: higher values allow more distant propagation
Usage : PropagateLabelsThroughMask speed/binaryimagemask.nii.gz initiallabelimage.nii.gz Optional-Stopping-Value 0/1/2
0/1/2 => 0, no topology constraint, 1 - strict topology constraint, 2 - no handles

PValueImage :
Usage : PValueImage TValueImage dof

RemoveLabelInterfaces:
Usage : RemoveLabelInterfaces ImageIn

ReplaceVoxelValue: replace voxels in the range [a,b] in the input image with c
Usage : ReplaceVoxelValue inputImage a b c

ROIStatistics : computes anatomical locations, cluster size and mass of a stat image which should be in the same physical space (but not nec same resolution) as the label image.
Usage : ROIStatistics LabelNames.txt labelimage.ext valueimage.nii

SetOrGetPixel :
Usage : SetOrGetPixel ImageIn Get/Set-Value IndexX IndexY {IndexZ}
Example 1 : ImageMath 2 outimage.nii SetOrGetPixel Image Get 24 34; Gets the value at 24, 34
Example 2 : ImageMath 2 outimage.nii SetOrGetPixel Image 1.e9 24 34; This sets 1.e9 as the value at 23 34
You can also pass a boolean at the end to force the physical space to be used

SetTimeSpacing : sets spacing for last dimension
Usage : SetTimeSpacing Image.ext tspacing

SetTimeSpacingWarp : sets spacing for last dimension
Usage : SetTimeSpacingWarp Warp.ext tspacing

stack : Will put 2 images in the same volume
Usage : Stack Image1.ext Image2.ext

ThresholdAtMean : See the code
Usage : ThresholdAtMean Image %ofMean

TileImages :
Usage : TileImages NumColumns ImageList*

TriPlanarView :
Usage : TriPlanarView ImageIn.nii.gz PercentageToClampLowIntensity PercentageToClampHiIntensity x-slice y-slice z-slice

TruncateImageIntensity:
Usage : TruncateImageIntensity InputImage.ext {lowerQuantile=0.05} {upperQuantile=0.95} {numberOfBins=65} {binary-maskImage}

Where : The where function from IDL
Usage : Where Image ValueToLookFor maskImage-option tolerance