NAME¶
imagemath - Image operations
DESCRIPTION¶
Perform operations on images using stack-based postfix notation.
Images can be read from files and pushed onto the stack. Images on the stack can
be processed and combined via different operators. Results of all operations
are put back onto the stack, where they can be further processed or written
back to image files.
OPTIONS¶
- --help
- Write list of basic command line options to standard
output.
- --help-all
- Write complete list of basic and advanced command line
options to standard output.
- --wiki
- Write list of command line options to standard output in
MediaWiki markup.
- --man
- Write man page source in 'nroff' markup to standard
output.
- --version
- Write toolkit version to standard output.
- --echo
- Write the current command line to standard output.
- --verbose-level <integer>
- Set verbosity level.
- --verbose, -v
- Increment verbosity level by 1 (deprecated; supported for
backward compatibility).
- --threads <integer>
- Set maximum number of parallel threads (for POSIX threads
and OpenMP).
- --in <string-vector>
- Read input image(s) to top of stack
- --out <string>
- Write output image from top of stack (but leave it on the
stack)
- --set-padding-value <double>
- Set the value that is interpreted as padding value in
subsequently read images.
- --unset-padding
- Disable padding. All values in subsequently read images
will be interpreted as actual data.
Internal settings¶
- --float
- Use single precision for computations and results [This
is the default]
- --double
- Use double precision for computations and results
Stack operations¶
- --pop
- Pop (discard) top image from stack.
- --dup
- Duplicate image on top of the stack.
- --all
- Apply next single-image operation to all images on the
stack.
Single-image operators¶
- --fill <double>
- Fill top image with constant value (i.e., assign value to
all pixels)
- --abs
- Apply abs() function to top image
- --log
- Apply log() function to top image
- --logit
- Apply log(x/(1-x)) function to top image
- --logistic
- Apply 1/(1+exp(-x)) function to top image
- --exp
- Apply exp() function to top image
- --sqr
- Apply square operator to top image
- --sqrt
- Apply square root operator to top image
- --trunc
- Truncate all values in top image to integer
- --one-over
- For each pixel, replace its value x with 1.0/x
- --scalar-mul <double>
- Multiply top image with a scalar value
- --scalar-add <double>
- Add a scalar to each pixel of the top image
- --scalar-xor <integer>
- Bitwise exclusive-or between top level and given scalar
value
- --scalar-and <integer>
- Bitwise and operation between top level and given scalar
value
- --thresh-below <double>
- Set values below given threshold to threshold.
- --thresh-above <double>
- Set values above given threshold to threshold.
Image pair operators¶
- --add
- Add top and second image, place result on stack
- --mul
- Multiply top and second image, place result on stack
- --div
- Divide top image by second image, place result on
stack
- --atan2
- Compute atan2() function from tup two image pixel pairs,
place result on stack
- --match-histograms
- Scale intensities in one image to match intensities of
another. The last image pushed onto the stack provides the reference
intensity distribution, the preceding image will be modified. Both input
images are removed from the stack and the modified image is pushed onto
the stack.
- --match-mean-sdev
- Scale intensities of one image to match mean and standard
deviation of another. The last image pushed onto the stack provides the
reference intensity distribution, the preceding image will be modified.
Both input images are removed from the stack and the modified image is
pushed onto the stack.
- --match-mean-sdev3
- Scale intensities of an image by a factor and offset
computed from two other images to match their mean and standard
deviations. The last image pushed onto the stack provides the reference
intensity distribution, the preceding image provides the intensity
distribution to match to the reference image's, and the third image on the
stack will be modified. All three input images are removed from the stack
and the modified image is pushed onto the stack.
- --mask-average
- Mask averaging: the top image is taken as a multi-label
mask. The pixels in the second image are averaged by mask labels, and then
replaced with the average value for each mask label.
Operators that contract the entire stack into a single image¶
- --sum
- Sum all images on stack, place result on stack
- --product
- Compute product of all images on stack, place result on
stack
- --average
- Average all images on stack, place result on stack
- --variance
- For each pixel, compute variance over all images on stack,
place result on stack
- --combine-pca
- Combine images using PCA by projecting onto direction of
largest correlation
- --max-value
- For each pixel, compute maximum VALUE over all images,
place result on stack
- --min-value
- For each pixel, compute minimum VALUE over all images,
place result on stack
- --max-index
- For each pixel, compute INDEX of image with maximum value,
place result on stack
Operators that contract a stack of label images into a single
label image¶
- --vote
- Merge all images on stack with voting, place result on
stack
- --staple <integer>
- Combine binary maps on the stack using [arg] iterations of
the STAPLE algorithm. The result of this operation is the spatial map of
'weights' W, which are the probabilities of image foreground at each
pixel. In 'verbose' mode, estimated expert parameters p (sensitivity) and
q (specificity) are also written to standard output.
- --contract-labels
- Contract multiple label maps into one by selecting the
first (over all images on the stack) non-zero label at each pixel
- --mstaple <integer>
- Combine multi-label maps on the stack using [arg]
iterations of the multi-class STAPLE algorithm.The result of this
operation is the combined maximum-likeliood multi-label map.
- --mstaple-disputed <integer>
- Like previous operation, apply multi-class STAPLE
algorithm, but restrict computation to 'disputed'voxels, i.e., those where
the input label maps disagree. This often improves results by reducing,
e.g., background effects.
- --stack-entropy-labels
- Compute stack entropy at each pixel from integer (label)
input images
AUTHORS¶
Torsten Rohlfing, with contributions from Michael P. Hasak, Greg Jefferis,
Calvin R. Maurer, and Daniel B. Russakoff
LICENSE¶
http://www.fsf.org/licensing/licenses/gpl.html
BUGS¶
Report bugs at
http://nitrc.org/projects/cmtk/
ACKNOWLEDGMENTS¶
From April 2009 through September 2011, CMTK Development and Maintenance was
supported by the National Institute of Biomedical Imaging and Bioengineering
under Grant No.R01 EB008381 (PI: Torsten Rohlfing).