mia-2dmyos...ne-nonrigid(1)

πŸ“¦
version 2.4.7 Β· 3 versions
, in ubuntu jammy, ubuntu noble

πŸ’… mia-2dmyoset-all2one-nonrigid πŸ’…

okay so first things first, bestie: this is from section 1 of the manual, the General Commands Manual, and the page you're reading lives under the name mia-2dmyos...ne-nonrigid. Yes the name is squished with dots. It's giving "abbreviated for the sidebar." We move.


πŸ’– NAME πŸ’–

mia-2dmyoset-all2one-nonrigid β€” Non-linear registration of a series of 2D images.

🌸 SYNOPSIS 🌸

mia-2dmyoset-all2one-nonrigid -i <in-file> -o <out-file> [options]
<PLUGINS:2dimage/fullcost>

πŸ¦‹ DESCRIPTION πŸ¦‹

mia-2dmyoset-all2one-nonrigid This program runs non-rigid registration of a series of images given in an image set. And the whole point? Every single image gets registered to one user defined reference image. One reference to rule them all, no cap. πŸ‘‘


✨ OPTIONS ✨

πŸ“ File-IO

  • -i, --in-file =(input, required); string β€” the input perfusion data set. Required, so don't ghost it. πŸ™ˆ
  • -o, --out-file =(required, output); string β€” the output perfusion data set. Also required, also not optional, the girlies are both mandatory.
  • --out-filebase=reg β€” file name basae for registered files, file type is deducted from the image file type in the input data set. (they wrote "basae", I'm just the messenger πŸ’€) β€” default is reg.

πŸ”₯ Registration

  • -k, --skip=0 β€” Skip images at the beginning of the series. Default 0, so nothing gets skipped unless you say so.
  • -O, --optimizer=gsl:opt=gd,step=0.1 β€” the optimizer used for minimization. Default vibe: gsl:opt=gd,step=0.1.
  • -l, --mg-levels=3 β€” multi-resolution levels. Default 3.
  • -f, --transForm=spline β€” transformation type. Default spline. For supported plugins see PLUGINS:2dimage/transform.
  • -r, --ref=-1 β€” reference frame (-1 == use image in the middle). Default -1, so she picks the middle child. 🫢

πŸ’¬ Help & Info

  • -V, --verbose=warning β€” verbosity of output, print messages of given level and higher priorities. Default is warning. Supported priorities, starting at the lowest level, are:
    • trace - Function call trace
    • debug - Debug output
    • info - Low level messages
    • message - Normal messages
    • warning - Warnings
    • fail - Report test failures
    • error - Report errors
    • fatal - Report only fatal errors
  • --copyright β€” print copyright information.
  • -h, --help β€” print this help.
  • -?, --usage β€” print a short help.
  • --version β€” print the version number and exit.

βš™οΈ Processing

  • --threads=-1 β€” 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). Default is -1, i.e. she estimates for you, main character energy. ✨

πŸŽ€ PLUGINS: 1d/splinebc πŸŽ€

  • mirror β€” Spline interpolation boundary conditions that mirror on the boundary.
    • (no parameters)
  • repeat β€” Spline interpolation boundary conditions that repeats the value at the boundary.
    • (no parameters)
  • zero β€” Spline interpolation boundary conditions that assumes zero for values outside.
    • (no parameters)

🧚 PLUGINS: 1d/splinekernel 🧚

  • bspline β€” B-spline kernel creation, supported parameters are:
    • d = 3; int in [0, 5] β€” Spline degree.
  • omoms β€” OMoms-spline kernel creation, supported parameters are:
    • d = 3; int in [3, 3] β€” Spline degree. (yes, [3, 3]. it's a very exclusive range, she's picky πŸ’…)

🌈 PLUGINS: 2dimage/cost 🌈

  • lncc β€” local normalized cross correlation with masking support., supported parameters are:
    • w = 5; uint in [1, 256] β€” half width of the window used for evaluating the localized cross correlation.
  • lsd β€” Least-Squares Distance measure.
    • (no parameters)
  • mi β€” Spline parzen based mutual information., supported parameters are:
    • cut = 0; float in [0, 40] β€” Percentage of pixels to cut at high and low intensities to remove outliers.
    • mbins = 64; uint in [1, 256] β€” Number of histogram bins used for the moving image.
    • mkernel = [bspline:d=3]; factory β€” Spline kernel for moving image parzen hinstogram. For supported plug-ins see PLUGINS:1d/splinekernel. ("hinstogram" β€” they said it, not me 😭)
    • rbins = 64; uint in [1, 256] β€” Number of histogram bins used for the reference image.
    • rkernel = [bspline:d=0]; factory β€” Spline kernel for reference image parzen hinstogram. For supported plug-ins see PLUGINS:1d/splinekernel.
  • ncc β€” normalized cross correlation.
    • (no parameters)
  • ngf β€” This function evaluates the image similarity based on normalized gradient fields. Various evaluation kernels are available., supported parameters are:
    • eval = ds; dict β€” plugin subtype. Supported values are:
      • sq - square of difference
      • ds - square of scaled difference
      • dot - scalar product kernel
      • cross - cross product kernel
  • ssd β€” 2D imaga cost: sum of squared differences, supported parameters are:
    • autothresh = 0; float in [0, 1000] β€” Use automatic masking of the moving image by only takeing intensity values into accound that are larger than the given threshold. (three typos in one sentence, we stan a legend ✍️)
    • norm = 0; bool β€” Set whether the metric should be normalized by the number of image pixels.
  • ssd-automask β€” 2D image cost: sum of squared differences, with automasking based on given thresholds, supported parameters are:
    • rthresh = 0; double β€” Threshold intensity value for reference image.
    • sthresh = 0; double β€” Threshold intensity value for source image.

πŸ‘‘ PLUGINS: 2dimage/fullcost πŸ‘‘

  • image β€” Generalized image similarity cost function that also handles multi-resolution processing. The actual similarity measure is given es extra parameter., supported parameters are:
    • cost = ssd; factory β€” Cost function kernel. For supported plug-ins see PLUGINS:2dimage/cost.
    • debug = 0; bool β€” Save intermediate resuts for debugging. ("resuts" 🫠)
    • ref =(input, io) β€” Reference image. For supported file types see PLUGINS:2dimage/io.
    • src =(input, io) β€” Study image. For supported file types see PLUGINS:2dimage/io.
    • weight = 1; float β€” weight of cost function.
  • labelimage β€” Similarity cost function that maps labels of two images and handles label-preserving multi-resolution processing., supported parameters are:
    • debug = 0; int in [0, 1] β€” write the distance transforms to a 3D image.
    • maxlabel = 256; int in [2, 32000] β€” maximum number of labels to consider.
    • ref =(input, io) β€” Reference image. For supported file types see PLUGINS:2dimage/io.
    • src =(input, io) β€” Study image. For supported file types see PLUGINS:2dimage/io.
    • weight = 1; float β€” weight of cost function.
  • maskedimage β€” Generalized masked image similarity cost function that also handles multi-resolution processing. The provided masks should be densly filled regions in multi-resolution procesing because otherwise the mask information may get lost when downscaling the image. The reference mask and the transformed mask of the study image are combined by binary AND. The actual similarity measure is given es extra parameter., supported parameters are:
⚠️ real talk: those masks need to be densly filled regions in multi-resolution procesing, because otherwise the mask info can get lost when the image gets downscaled. Don't skip that part, bestie.
  • cost = ssd; factory β€” Cost function kernel. For supported plug-ins see PLUGINS:2dimage/maskedcost.
  • ref =(input, io) β€” Reference image. For supported file types see PLUGINS:2dimage/io.
  • ref-mask =(input, io) β€” Reference image mask (binary). For supported file types see PLUGINS:2dimage/io.
  • src =(input, io) β€” Study image. For supported file types see PLUGINS:2dimage/io.
  • src-mask =(input, io) β€” Study image mask (binary). For supported file types see PLUGINS:2dimage/io.
  • weight = 1; float β€” weight of cost function.

πŸ¦‹ ok that's the whole plugin pile for now β€” part 2 is right behind me, don't go anywhere πŸ’–

✨ PLUGINS: 2dimage/io ✨

okay so this is the whole ✨reader/writer✨ squad β€” every one of these is a plug-in that lets the program slurp images in and spit images out 🫢

bmp

BMP 2D-image input/output support πŸ’…. This plug-in handles reading and writing of binary images and 8-bit gray scale images. For 4-bit gray scale images you get read-only support, bestie β€” no writing those. The color table gets straight up ignored, and the pixel values are just taken as literal gray scale values. no cap.

  • Recognized file extensions: .BMP, .bmp
  • Supported element types:
    • binary data, unsigned 8 bit

datapool

Virtual IO to and from the internal data pool 🌸

  • Recognized file extensions: .@

dicom

2D image io for DICOM 🩻

  • Recognized file extensions: .DCM, .dcm
  • Supported element types:
    • signed 16 bit, unsigned 16 bit

exr

a 2dimage io plugin for OpenEXR images ✨

  • Recognized file extensions: .EXR, .exr
  • Supported element types:
    • unsigned 32 bit, floating point 32 bit

jpg

a 2dimage io plugin for jpeg gray scale images πŸŽ€

  • Recognized file extensions: .JPEG, .JPG, .jpeg, .jpg
  • Supported element types:
    • unsigned 8 bit

png

a 2dimage io plugin for png images πŸ¦‹

  • Recognized file extensions: .PNG, .png
  • Supported element types:
    • binary data, unsigned 8 bit, unsigned 16 bit

raw

RAW 2D-image output support πŸ’€ (output, bestie β€” read that again)

  • Recognized file extensions: .RAW, .raw
  • Supported element types:
    • binary data, signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

tif

TIFF 2D-image input/output support 🌈

  • Recognized file extensions: .TIF, .TIFF, .tif, .tiff
  • Supported element types:
    • binary data, unsigned 8 bit, unsigned 16 bit, unsigned 32 bit

vista

a 2dimage io plugin for vista images πŸ‘‘

  • Recognized file extensions: .-, .V, .VISTA, .v, .vista
  • Supported element types:
    • binary data, signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

✨ PLUGINS: 2dimage/maskedcost ✨

these are the cost functions that know how to deal with a mask β€” the way that they only judge the pixels you actually told them to care about 😌

lncc

local normalized cross correlation with masking support 🫢, and the parameters it supports are:

  • w = 5; uint in [1, 256] β€” half width of the window used for evaluating the localized cross correlation. so like, half. not full. don't come for me.

mi

Spline parzen based mutual information with masking 🌸, supported parameters are:

  • cut = 0; float in [0, 40] β€” Percentage of pixels to cut at high and low intensities to remove outliers. bye outliers πŸ’…
  • mbins = 64; uint in [1, 256] β€” Number of histogram bins used for the moving image.
  • mkernel = [bspline:d=3]; factory β€” Spline kernel for moving image parzen hinstogram. For supported plug-ins see PLUGINS:1d/splinekernel
  • rbins = 64; uint in [1, 256] β€” Number of histogram bins used for the reference image.
  • rkernel = [bspline:d=0]; factory β€” Spline kernel for reference image parzen hinstogram. For supported plug-ins see PLUGINS:1d/splinekernel

ncc

normalized cross correlation with masking support ✨

  • (no parameters)

ssd

Sum of squared differences with masking πŸ’―

  • (no parameters)

✨ PLUGINS: 2dimage/transform ✨

the glow-up squad β€” every transformation model this thing can run 🧚

affine

Affine transformation (six degrees of freedom) πŸ”₯, supported parameters are:

  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel

rigid

Rigid transformations (i.e. rotation and translation, three degrees of freedom) πŸ¦‹, supported parameters are:

  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel
  • rot-center = [[0,0]]; 2dfvector β€” Relative rotation center, i.e. <0.5,0.5> corresponds to the center of the support rectangle. that's the actual middle bestie, [[0,0]] is not.

rotation

Rotation transformations (i.e. rotation about a given center, one degree of freedom) πŸŒ€, supported parameters are:

  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel
  • rot-center = [[0,0]]; 2dfvector β€” Relative rotation center, i.e. <0.5,0.5> corresponds to the center of the support rectangle.

spline

Free-form transformation that can be described by a set of B-spline coefficients and an underlying B-spline kernel 🌈, supported parameters are:

  • anisorate = [[0,0]]; 2dfvector β€” anisotropic coefficient rate in pixels, nonpositive values will be overwritten by the rate value.. (yes, the double dot is in the original, i'm not fixing it, i'm respecting the lore)
  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel
  • kernel = [bspline:d=3]; factory β€” transformation spline kernel.. For supported plug-ins see PLUGINS:1d/splinekernel
  • penalty = ; factory β€” Transformation penalty term. For supported plug-ins see PLUGINS:2dtransform/splinepenalty
  • rate = 10; float in [1, inf) β€” isotropic coefficient rate in pixels. so like, ten, unless you say otherwise.

translate

Translation only (two degrees of freedom) πŸ‘‘, supported parameters are:

  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel

vf

This plug-in implements a transformation that defines a translation for each point of the grid defining the domain of the transformation 🌐, supported parameters are:

  • imgboundary = mirror; factory β€” image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory β€” image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel

✨ PLUGINS: 2dtransform/splinepenalty ✨

divcurl

divcurl penalty on the transformation πŸ’œ, supported parameters are:

  • curl = 1; float in [0, inf) β€” penalty weight on curl.
  • div = 1; float in [0, inf) β€” penalty weight on divergence.
  • norm = 0; bool β€” Set to 1 if the penalty should be normalized with respect to the image size.
  • weight = 1; float in (0, inf) β€” weight of penalty energy.

✨ EXAMPLE ✨

okay here's the moment you've been waiting for 😭 Register the perfusion series given in segment.set by optimizing a spline based transformation with a coefficient rate of 16 pixel using Mutual Information and penalize the transformation by using divcurl with aweight of 2.0. (yes, "aweight". iconic. we keep it.)

mia-2dmyoset-all2one-nonrigid -i segment.set -o registered.set
           -f spline:rate=16,penalty=[divcurl:weight=2.0]
       image:cost=mi,weight=2.0

✨ AUTHOR(s) ✨

Gert Wollny 🌟 (the goat, fr fr)


This software is Copyright (c) 1999‐2015 Leipzig, Germany and Madrid, Spain. It comes with ABSOLUTELY NO WARRANTY and you may redistribute it under the terms of the GNU GENERAL PUBLIC LICENSE Version 3 (or later). For more information run the program with the option --copyright.

bestie the NO WARRANTY part is not a vibe, it's a legal vibe. read it, respect it, move on πŸ’…

and that's a wrap on this absolute unit of a manpage πŸŽ€ this was v2.4.7 of the USER COMMANDS page mia-2dmyos...ne-nonrigid(1) β€” go register some perfusion series, you got this, i believe in you πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from