mia-2dmyoicapgt {-i string} {-o string} [ options ...]


This program implements a two passs motion compensation algorithm. First a linear registration is run based on a variation of Gupta et~al. "Fully automatic registration and segmentation of first-pass myocardial perfusion MR image sequences", Academic Radiology 17, 1375-1385 as described in in Wollny G, Kellman P, Santos A, Ledesma-Carbayo M-J, "Automatic Motion Compensation of Free Breathing acquired Myocardial Perfusion Data by using Independent Component Analysis", Medical Image Analysis, 2012, DOI:10.1016/j.media.2012.02.004, followed by a non-linear registration based Chao Li and Ying Sun, 'Nonrigid Registration of Myocardial Perfusion MRI Using Pseudo Ground Truth' , In Proc. Medical Image Computing and Computer-Assisted Intervention MICCAI 2009, 165-172, 2009. Note that for this nonlinear motion correction a preceding linear registration step is usually required. This version of the program may run all registrations in parallel.


Pseudo Ground Thruth estimation

-A, --alpha=0.1; double

spacial neighborhood penalty weight

-B, --beta=4; double

temporal second derivative penalty weight

-T, --rho-thresh=0.85; double

crorrelation threshhold for neighborhood analysis


-i, --in-file=(input, required); string

input perfusion data set

-o, --out-file=(output, required); string

output perfusion data set

-r, --registered=STRING

File name base for the registered images. Image type and numbering scheme are taken from the input images as given in the input data set.

--save-cropped=(output); string

save cropped set to this file, the image files will use the stem of the name as file name base

--save-feature=(output); string

save segmentation feature images and initial ICA mixing matrix

--save-refs=(output); string

for each registration pass save the reference images to files with the given name base

--save-regs=(output); string

for each registration pass save intermediate registered images

Help & Info

-V, --verbose=warning; dict

verbosity of output, print messages of given level and higher priorities. Supported priorities starting at lowest level are:

info:Low level messages
trace:Function call trace
fail:Report test failures
error:Report errors
debug:Debug output
message:Normal messages
fatal:Report only fatal errors
--copyright=(); bool

print copyright information

-h, --help=(); bool

print this help

-?, --usage=(); bool

print a short help

--version=(); bool

print the version number and exit


-C, --components=0; ulong

ICA components 0 = automatic estimation


normalized ICs


don't strip the mean from the mixing curves

-s, --segscale=0; float

segment and scale the crop box around the LV (0=no segmentation)

-k, --skip=0; ulong

skip images at the beginning of the series e.g. because as they are of other modalities

-m, --max-ica-iter=400; ulong

maximum number of iterations in ICA

-E, --segmethod=features; dict

Segmentation method

delta-peak:difference of the peak enhancement images
features:feature images
delta-feature:difference of the feature images
-b, --min-breathing-frequency=-1; float

minimal mean frequency a mixing curve can have to be considered to stem from brething. A healthy rest breating rate is 12 per minute. A negative value disables the test. A value 0.0 forces the series to be indentified as acquired with initial breath hold.


--threads=-1; int

Maxiumum number of threads to use for processing,This number should be lower or equal to the number of logical processor cores in the machine. (-1: automatic estimation).


-L, --linear-optimizer=gsl:opt=simplex,step=1.0; factory

Optimizer used for minimization of the linear registration The string value will be used to construct a plug-in.. For supported plug-ins see Plugin type: minimizer/singlecost

--linear-transform=affine; factory

linear transform to be used The string value will be used to construct a plug-in.. For supported plug-ins see Plugin type: 2dimage/transform

-O, --non-linear-optimizer=gsl:opt=gd,step=0.1; factory

Optimizer used for minimization in the non-linear registration. The string value will be used to construct a plug-in.. For supported plug-ins see Plugin type: minimizer/singlecost

-a, --start-c-rate=16; double

start coefficinet rate in spines, gets divided by --c-rate-divider with every pass.

--c-rate-divider=2; double

Cofficient rate divider for each pass.

-d, --start-divcurl=10000; double

Start divcurl weight, gets divided by --divcurl-divider with every pass.

--divcurl-divider=2; double

Divcurl weight scaling with each new pass.

-R, --reference=-1; int

Global reference all image should be aligned to. If set to a non-negative value, the images will be aligned to this references, and the cropped output image date will be injected into the original images. Leave at -1 if you don't care. In this case all images with be registered to a mean position of the movement

-w, --imagecost=image:weight=1,cost=ssd; factory

image cost, do not specify the src and ref parameters, these will be set by the program. The string value will be used to construct a plug-in.. For supported plug-ins see Plugin type: 2dimage/fullcost

-l, --mg-levels=3; ulong

multi-resolution levels

-p, --linear-passes=3; ulong

linear registration passes (0 to disable)

-P, --nonlinear-passes=3; ulong

non-linear registration passes (0 to disable)


Register the perfusion series given in 'segment.set' by first using automatic ICA estimation to run the linear registration and then the PGT registration. Skip two images at the beginning and otherwiese use the default parameters. Store the result in 'registered.set'.

mia-2dmyoicapgt   -i segment.set -o registered.set -k 2


Gert Wollny