mia-3dprealign-nonrigid(1)

๐Ÿ“ฆ
version 2.4.7 ยท 4 versions
, in ubuntu resolute, ubuntu stonking

mia-3dprealign-nonrigid(1) ๐Ÿ’… โ€” the 3D image registration manual, but make it cute โœจ

๐Ÿ“› NAME ๐Ÿ“›

okay so like, mia-3dprealign-nonrigid is literally Registration of a series of 3D images. that's it. that's the whole name. ๐ŸงŠ๐Ÿฆ‹

๐ŸŒ€ SYNOPSIS ๐ŸŒ€

bestie, the way you run it is:

mia-3dprealign-nonrigid -i <in-file> -o <out-file> [options]

๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

so basically, mia-3dprealign-nonrigid runs the non-rigid registration of an image series. how? first it registers an already aligned subset of the images to one reference, and then it registers the remaining images by using synthetic references. lowkey iconic. โœจ

this is a 3D version of:

G. Wollny, M-J Ledesma-Cabryo, P.Kellman, and A.Santos, "Exploiting Quasiperiodicity in Motion Correction of Free-Breathing," IEEE Transactions on Medical Imaging, 29(8), 2010.

periodt. ๐Ÿ’…

โš™๏ธ OPTIONS โš™๏ธ

๐Ÿ“ File-IO

  • -i --in-file=(input, required); io โ€” bestie, this is your input images, and they follow the naming pattern nameXXXX.ext. For supported file types see PLUGINS:3dimage/io. you literally need this. ๐Ÿ–ผ๏ธ
  • -o --out-file=(output, required); io โ€” file name base for the registered files, given as a C-format string. For supported file types see PLUGINS:3dimage/io. also required, no skipping. ๐Ÿ“
  • --save-references โ€” saves synthetic references to files named refXXXX.v. ๐Ÿ’พ

๐Ÿงน Preconditions & Preprocessing

  • -k --skip=0 โ€” skips images at the begin of the series. (yes, "begin". we don't make the rules.) default is 0. โœ‚๏ธ
  • --preskip=20 โ€” when searching for a high contrats image, skip images at the beginning+skip of the series. default 20. ๐Ÿ‘€
  • --postskip=2 โ€” when searching for a high contrats image, skip images at the end of the series. default 2. ๐Ÿ‘
  • --max-candidates=20 โ€” maximum number of candidates for the global reference image. default 20. ๐ŸŽฏ
  • -S --cost-series=image:cost=[ngf:eval=ds] โ€” Const function to use for the analysis of the series. For supported plugins see PLUGINS:3dimage/fullcost. ๐Ÿ“Š
  • --ref-idx= โ€” save reference index number to this file. ๐Ÿ“
  • -R --global-reference=-1 โ€” save reference index number to this file. (yes, same description. it's giving copy-paste but we don't judge.) ๐Ÿ’พ
  • -D --max-subset-delta=0 โ€” maximum delta between two elements of the prealigned subset. default 0. ๐Ÿ“

๐ŸŽฏ Registration

  • -O --optimizer=gsl:opt=gd,step=0.01 โ€” optimizer used for minimization. For supported plugins see PLUGINS:minimizer/singlecost. ๐Ÿƒโ€โ™€๏ธ
  • -l --mr-levels=3 โ€” multi-resolution levels. default 3. ๐Ÿชœ
  • -f --transForm=spline โ€” transformation type. For supported plugins see PLUGINS:3dimage/transform. ๐Ÿ”„
  • -1 --cost-subset=image:cost=[ngf:eval=ds] โ€” cost function for registration during the subset registration. For supported plugins see PLUGINS:3dimage/fullcost. ๐Ÿงฎ
  • -2 --cost-final=image:cost=ssd โ€” cost function for registration during the final registration. For supported plugins see PLUGINS:3dimage/fullcost. ๐Ÿ

๐Ÿ’ฌ Help & Info

  • -V --verbose=warning โ€” verbosity of output, print messages of given level and higher priorities. Supported priorities starting at 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). ๐Ÿงต

๐Ÿงฉ PLUGINS: 1d/spacialkernel

  • cdiff โ€” Central difference filter kernel, mirror boundary conditions are used.
    • (no parameters)
  • gauss โ€” spacial Gauss filter kernel, supported parameters are:
    • w = 1; uint in [0, inf) โ€” half filter width.
  • scharr โ€” This plugin provides the 1D folding kernel for the Scharr gradient filter.
    • (no parameters)

๐Ÿงฉ 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.

๐Ÿงฉ PLUGINS: 3dimage/combiner

  • absdiff โ€” Image combiner 'absdiff'
    • (no parameters)
  • add โ€” Image combiner 'add'
    • (no parameters)
  • div โ€” Image combiner 'div'
    • (no parameters)
  • mul โ€” Image combiner 'mul'
    • (no parameters)
  • sub โ€” Image combiner 'sub'
    • (no parameters)

๐Ÿงฉ PLUGINS: 3dimage/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.
  • 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
    • 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. Given normalized gradient fields $ _S$ of the src image and $ _R$ of the ref image various evaluators are implemented., supported parameters are:
    • eval = ds; dict โ€” plugin subtype (sq, ds,dot,cross). Supported values are:
      • ds โ€” square of scaled difference
      • dot โ€” scalar product kernel
      • cross โ€” cross product kernel
  • ssd โ€” 3D image 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.
    • norm = 0; bool โ€” Set whether the metric should be normalized by the number of image pixels.
  • ssd-automask โ€” 3D 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: 3dimage/filter

  • bandpass โ€” intensity bandpass filter, supported parameters are:
    • max = 3.40282e+38; float โ€” maximum of the band.
    • min = 0; float โ€” minimum of the band.
  • binarize โ€” image binarize filter, supported parameters are:
    • max = 3.40282e+38; float โ€” maximum of accepted range.
    • min = 0; float โ€” minimum of accepted range.
  • close โ€” morphological close, supported parameters are:
    • hint = black; string โ€” a hint at the main image content (black|white).
    • shape = [sphere:r=2]; factory โ€” structuring element. For supported plug-ins see PLUGINS:3dimage/shape
  • combiner โ€” Combine two images with the given combiner operator. if 'reverse' is set to false, the first operator is the image passed through the filter pipeline, and the second image is loaded from the file given with the 'image' parameter the moment the filter is run., supported parameters are:
    • image =(input, required, io) โ€” second image that is needed in the combiner. For supported file types see PLUGINS:3dimage/io
    • op =(required, factory) โ€” Image combiner to be applied to the images. For supported plug-ins see PLUGINS:3dimage/combiner
    • reverse = 0; bool โ€” reverse the order in which the images passed to the combiner.
  • convert โ€” image pixel format conversion filter, supported parameters are:
    • a = 1; float โ€” linear conversion parameter a.
    • b = 0; float โ€” linear conversion parameter b.
    • map = opt; dict โ€” conversion mapping. Supported values are:
      • copy โ€” copy data when converting
      • linear โ€” apply linear transformation x -> a*x+b
      • range โ€” apply linear transformation that maps the input data type range to the output data type range
      • opt โ€” apply a linear transformation that maps the real input range to the full output range
      • optstat โ€” apply a linear transform that maps based on input mean and variation to the full output range

Okay so picking right back up with the parameter list ๐Ÿ’…

  • repn = ubyte; dict โ€” output pixel type โœจ the supported values are literally:
    • bit โ€” binary data ๐Ÿ™ˆ
    • sbyte โ€” signed 8 bit
    • ubyte โ€” unsigned 8 bit
    • sshort โ€” signed 16 bit
    • ushort โ€” unsigned 16 bit
    • sint โ€” signed 32 bit
    • uint โ€” unsigned 32 bit
    • slong โ€” signed 64 bit
    • ulong โ€” unsigned 64 bit
    • float โ€” floating point 32 bit
    • double โ€” floating point 64 bit
    • none โ€” no pixel type defined

๐ŸŽ€ crop

Crops out a region of an image, bestie โœ‚๏ธ and the region is always clamped to the original image size, in the sense that the given range is kept. Params:

  • end = [[4294967295,4294967295,4294967295]]; streamable โ€” end of the cropping range, maximum = (-1,-1,-1) ๐ŸŒˆ
  • start = [[0,0,0]]; streamable โ€” begin of the cropping range. Slay, we love a clean start ๐Ÿซถ

๐Ÿ’œ dilate

3d image stack dilate filter, it's giving expansion energy. Params:

  • hint = black; string โ€” a hint at the main image content (black|white).
  • shape = [sphere:r=2]; factory โ€” structuring element. For supported plug-ins see PLUGINS:3dimage/shape.

๐Ÿฆ‹ distance

Evaluate the 3D distance transform of an image ๐Ÿ‘‘ If the image is a binary mask, then the result of the distance transform in each point corresponds to the Euclidian distance to the mask. If the input image is of a scalar pixel value, then the this scalar is interpreted as heighfield and the per pixel value adds to the distance. Lowkey iconic math tbh.

  • (no parameters) โ€” nothing to configure, it just goes ๐ŸŒŸ

๐Ÿ“ downscale

Downscales the input image by using a given block size to define the downscale factor. Prior to scaling, the image is filtered by a smoothing filter to eliminate high frequency data and avoid aliasing artifacts (the glow-up is on purpose โœจ). Params:

  • b = [[1,1,1]]; 3dbounds โ€” blocksize.
  • bx = 1; uint in [1, inf) โ€” blocksize in x direction.
  • by = 1; uint in [1, inf) โ€” blocksize in y direction.
  • bz = 1; uint in [1, inf) โ€” blocksize in z direction.
  • kernel = gauss; factory โ€” smoothing filter kernel to be applied, and the size of the filter is estimated based on the blocksize. For supported plug-ins see PLUGINS:1d/spacialkernel.

๐Ÿงš erode

3d image stack erode filter, the inverse vibe of dilate ๐Ÿ’€ Params:

  • hint = black; string โ€” a hint at the main image content (black|white).
  • shape = [sphere:r=2]; factory โ€” structuring element. For supported plug-ins see PLUGINS:3dimage/shape.

๐ŸŒธ gauss

Isotropic 3D gauss filter, smooth and soft, main character energy. Params:

  • w = 1; int in [0, inf) โ€” filter width parameter.

โญ gradnorm

3D image to gradient norm filter ๐Ÿ”ฅ

  • (no parameters) โ€” it eats and leaves no crumbs.

๐ŸŒˆ growmask

Use an input binary mask and a reference gray scale image to do region growing โ€” it adds the neighborhood pixels of an already added pixel if they have a lower intensity that is above the given threshold. Params:

  • min = 1; float โ€” lower threshold for mask growing.
  • ref =(input, required, io) โ€” reference image for mask region growing. For supported file types see PLUGINS:3dimage/io.
  • shape = 6n; factory โ€” neighborhood mask. For supported plug-ins see PLUGINS:3dimage/shape.

๐Ÿ’… invert

Intensity invert filter ๐Ÿ™ƒ the flip is real.

  • (no parameters) โ€” no knobs, just vibes.

๐ŸŽ€ isovoxel

This filter scales an image to make the voxel size isometric and its size to correspond to the given value. Params:

  • interp = [bspline:d=3]; factory โ€” interpolation kernel to be used . For supported plug-ins see PLUGINS:1d/splinekernel.
  • size = 1; float in (0, inf) โ€” isometric target voxel size.

๐Ÿ‘‘ kmeans

3D image k-means filter ๐Ÿง  In the output image the pixel value represents the class membership and the class centers are stored as attribute in the image. Params:

  • c = 3; int in [2, inf) โ€” number of classes.

๐Ÿซถ label

A filter to label the connected components of a binary image. Params:

  • n = 6n; factory โ€” neighborhood mask. For supported plug-ins see PLUGINS:3dimage/shape.

๐Ÿ’œ labelmap

Image filter to remap label id's. Only applicable to images with integer valued intensities/labels, so don't try this on your float data bestie ๐Ÿ˜ญ Params:

  • map =(input, required, string) โ€” Label mapping file.

๐Ÿฆ‹ labelscale

A filter that only creates output voxels that are already created in the input image. Scaling is done by using a voting algorithms that selects the target pixel value based on the highest pixel count of a certain label in the corresponding source region. If the region comprises two labels with the same count, the one with the lower number wins ๐Ÿ† (tie-break rules, but make it demure). Params:

  • out-size =(required, 3dbounds) โ€” target size given as two coma separated values.

๐Ÿ“ load

Loads the input image from a file and uses it to replace the current image in the pipeline ๐Ÿ”„ Params:

  • file =(input, required, io) โ€” name of the input file to load from. For supported file types see PLUGINS:3dimage/io.

โœจ lvdownscale

This is a label voting downscale filter. It adownscales a 3D image by blocks. For each block, the (non-zero) label that appears most times in the block is issued as output pixel in the target image. If two labels appear the same number of times, the one with the lower absolute value wins ๐Ÿฅ‡ Params:

  • b = [[1,1,1]]; 3dbounds โ€” blocksize for the downscaling. Each block will be represented by one pixel in the target image.

๐ŸŒธ mask

Mask an image โ€” one image is taken from the parameters list and the other from the normal filter input. Both images must be of the same dimensions and one must be binary. The attributes of the image coming through the filter pipeline are preserved. The output pixel type corresponds to the input image that is not binary ๐Ÿ’… Params:

  • input =(input, required, io) โ€” second input image file name. For supported file types see PLUGINS:3dimage/io.

โญ mean

3D image mean filter, average queen behavior. Params:

  • w = 1; int in [1, inf) โ€” half filter width.

๐Ÿ’€ median

Median 3d filter, the classic. Params:

  • w = 1; int in [1, inf) โ€” filter width parameter.

๐ŸŒˆ mlv

Mean of Least Variance 3D image filter, say that three times fast. Params:

  • w = 1; int in [1, inf) โ€” filter width parameter.

๐Ÿงš msnormalizer

3D image mean-sigma normalizing filter ๐Ÿ“Š Params:

  • w = 1; int in [1, inf) โ€” half filter width.

๐Ÿ‘‘ open

Morphological open, the third member of the morph trio. Params:

  • hint = black; string โ€” a hint at the main image content (black|white).
  • shape = [sphere:r=2]; factory โ€” structuring element. For supported plug-ins see PLUGINS:3dimage/shape.

๐ŸŽ€ reorient

3D image reorientation filter, spin that image around ๐Ÿ”„ Params:

  • map = xyz; dict โ€” orientation mapping to be applied. The supported values are:
    • xyz โ€” keep orientation
    • p-yzx โ€” permutate x->z->y->x
    • p-zxy โ€” permutate x->y->z->x
    • f-yz โ€” flip y-z
    • f-xy โ€” flip x-y
    • f-xz โ€” flip x-z
    • r-x90 โ€” rotate around x-axis clockwise 90 degree
    • r-x180 โ€” rotate around x-axis clockwise 180 degree
    • r-x270 โ€” rotate around x-axis clockwise 270 degree
    • r-y90 โ€” rotate around y-axis clockwise 90 degree
    • r-y180 โ€” rotate around y-axis clockwise 180 degree
    • r-y270 โ€” rotate around y-axis clockwise 270 degree
    • r-z90 โ€” rotate around z-axis clockwise 90 degree
    • r-z180 โ€” rotate around z-axis clockwise 180 degree
    • r-z270 โ€” rotate around z-axis clockwise 270 degree

๐Ÿ’œ resize

Resize an image. The original data is centered within the new sized image ๐Ÿ–ผ๏ธ Params:

  • size = [[0,0,0]]; streamable โ€” new size of the image, a size 0 indicates to keep the size for the corresponding dimension.

๐Ÿ“ sandp

Salt and pepper 3d filter ๐Ÿง‚๐ŸŒถ๏ธ yes that's really the name. Params:

  • thresh = 100; float in [0, inf) โ€” thresh value.
  • w = 1; int in [1, inf) โ€” filter width parameter.

๐Ÿฆ‹ scale

3D image filter that scales to a given target size ๐Ÿ“ Params:

  • interp = [bspline:d=3]; factory โ€” interpolation kernel to be used . For supported plug-ins see PLUGINS:1d/splinekernel.
  • s = [[0,0,0]]; 3dbounds โ€” target size to set all components at once (component 0: use input image size).
  • sx = 0; uint in [0, inf) โ€” target size in x direction (0: use input image size).
  • sy = 0; uint in [0, inf) โ€” target size in y direction (0: use input image size).
  • sz = 0; uint in [0, inf) โ€” target size in y direction (0: use input image size).
  • scharr โ€” the 3D Scharr filter, for gradient evaluation. Heads up bestie: the output pixel type of the filtered image is the same as the input pixel type, so converting the input beforehand to a floating point valued image is recommendable ๐Ÿ’…. Supported parameters are:
    • dir = x; dict โ€” Gradient direction. Supported values are:
      • x โ€” gradient in x-direction
      • y โ€” gradient in y-direction
      • z โ€” gradient in z-direction
  • selectbig โ€” a filter that creats a binary mask representing the intensity with the highest pixel count. โš ๏ธ the pixel value 0 will be ignored, and if two intensities have the same pixel count, then the result is undefined. The input pixel must have an integral pixel type.
    • (no parameters)
  • sepconv โ€” 3D image intensity separaple convolution filter ๐Ÿซถ. Supported parameters are:
    • kx = [gauss:w=1]; factory โ€” filter kernel in x-direction. For supported plug-ins see PLUGINS:1d/spacialkernel
    • ky = [gauss:w=1]; factory โ€” filter kernel in y-direction. For supported plug-ins see PLUGINS:1d/spacialkernel
    • kz = [gauss:w=1]; factory โ€” filter kernel in z-direction. For supported plug-ins see PLUGINS:1d/spacialkernel
  • sobel โ€” the 2D Sobel filter, also for gradient evaluation. Same lil reminder as scharr, no cap: the output pixel type of the filtered image is the same as the input pixel type, so converting the input beforehand to a floating point valued image is recommendable. Supported parameters are:
    • dir = x; dict โ€” Gradient direction. Supported values are:
      • x โ€” gradient in x-direction
      • y โ€” gradient in y-direction
      • z โ€” gradient in z-direction
  • sws โ€” seeded watershead (yes bestie, that's the spelling, live with it ๐ŸŒŠ). The algorithm extracts exactly so many reagions as initial labels are given in the seed image. Supported parameters are:
    • grad = 0; bool โ€” Interpret the input image as gradient.
    • mark = 0; bool โ€” Mark the segmented watersheds with a special gray scale value.
    • n = [sphere:r=1]; factory โ€” Neighborhood for watershead region growing. For supported plug-ins see PLUGINS:3dimage/shape
    • seed =(input, required, string) โ€” seed input image containing the labels for the initial regions.
  • tee โ€” Save the input image to a file and also pass it through to the next filter. Two things at once, main character energy fr fr ๐Ÿ‘‘. Supported parameters are:
    • file =(output, required, io) โ€” name of the output file to save the image too.. For supported file types see PLUGINS:3dimage/io
  • thinning โ€” 3D morphological thinning, based on: Lee and Kashyap, 'Building Skeleton Models via 3-D Medial Surface/Axis Thinning Algorithms', Graphical Models and Image Processing, 56(6):462-478, 1994. This implementation only supports the 26 neighbourhood.
    • (no parameters)
  • transform โ€” Transform the input image with the given transformation. Supported parameters are:
    • file =(input, required, io) โ€” Name of the file containing the transformation.. For supported file types see PLUGINS:3dtransform/io
    • imgboundary = ; factory โ€” override image interpolation boundary conditions. For supported plug-ins see PLUGINS:1d/splinebc
    • imgkernel = ; factory โ€” override image interpolator kernel. For supported plug-ins see PLUGINS:1d/splinekernel
  • variance โ€” 3D image variance filter ๐ŸŽ€. Supported parameters are:
    • w = 1; int in [1, inf) โ€” half filter width.
  • ws โ€” basic watershead segmentation. Supported parameters are:
    • evalgrad = 0; bool โ€” Set to 1 if the input image does not represent a gradient norm image.
    • mark = 0; bool โ€” Mark the segmented watersheds with a special gray scale value.
    • n = [sphere:r=1]; factory โ€” Neighborhood for watershead region growing. For supported plug-ins see PLUGINS:3dimage/shape
    • thresh = 0; float in [0, 1) โ€” Relative gradient norm threshold. The actual value threshold value is thresh * (max_grad - min_grad) + min_grad. Bassins separated by gradients with a lower norm will be joined.

๐ŸŒˆ PLUGINS: 3dimage/fullcost ๐ŸŒˆ

image

Generalized image similarity cost function that also handles multi-resolution processing ๐Ÿฆ‹. The actual similarity measure is handed over as an extra parameter. Supported parameters are:

  • cost = ssd; factory โ€” Cost function kernel. For supported plug-ins see PLUGINS:3dimage/cost
  • debug = 0; bool โ€” Save intermediate resuts for debugging.
  • ref =(input, io) โ€” Reference image. For supported file types see PLUGINS:3dimage/io
  • src =(input, io) โ€” Study image. For supported file types see PLUGINS:3dimage/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:

  • maxlabel = 256; int in [2, 32000] โ€” maximum number of labels to consider.
  • ref =(input, io) โ€” Reference image. For supported file types see PLUGINS:3dimage/io
  • src =(input, io) โ€” Study image. For supported file types see PLUGINS:3dimage/io
  • weight = 1; float โ€” weight of cost function.

maskedimage

Generalized masked image similarity cost function that also handles multi-resolution processing ๐Ÿ˜ค. Ok listen, important deets:

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 mask may be pre-filtered โ€” after pre-filtering the masks must be of bit-type. The reference mask and the transformed mask of the study image are combined by binary AND.

The actual similarity measure is handed over as an extra parameter. Supported parameters are:

  • cost = ssd; factory โ€” Cost function kernel. For supported plug-ins see PLUGINS:3dimage/maskedcost
  • ref =(input, io) โ€” Reference image. For supported file types see PLUGINS:3dimage/io
  • ref-mask =(input, io) โ€” Reference image mask (binary). For supported file types see PLUGINS:3dimage/io
  • ref-mask-filter = ; factory โ€” Filter to prepare the reference mask image, the output must be a binary image.. For supported plug-ins see PLUGINS:3dimage/filter
  • src =(input, io) โ€” Study image. For supported file types see PLUGINS:3dimage/io
  • src-mask =(input, io) โ€” Study image mask (binary). For supported file types see PLUGINS:3dimage/io
  • src-mask-filter = ; factory โ€” Filter to prepare the study mask image, the output must be a binary image.. For supported plug-ins see PLUGINS:3dimage/filter
  • weight = 1; float โ€” weight of cost function.

taggedssd

Evaluates the Sum of Squared Differences similarity measure by using three tagged image pairs ๐Ÿ”ฅ. The cost function value is evaluated based on all image pairs, but the gradient is composed by composing its component based on the tag direction. Supported parameters are:

  • refx =(input, io) โ€” Reference image X-tag. For supported file types see PLUGINS:3dimage/io
  • refy =(input, io) โ€” Reference image Y-tag. For supported file types see PLUGINS:3dimage/io
  • refz =(input, io) โ€” Reference image Z-tag. For supported file types see PLUGINS:3dimage/io
  • srcx =(input, io) โ€” Study image X-tag. For supported file types see PLUGINS:3dimage/io
  • srcy =(input, io) โ€” Study image Y-tag. For supported file types see PLUGINS:3dimage/io
  • srcz =(input, io) โ€” Study image Z-tag. For supported file types see PLUGINS:3dimage/io
  • weight = 1; float โ€” weight of cost function.

๐Ÿ’พ PLUGINS: 3dimage/io ๐Ÿ’พ

okay bestie, this one's the whole file-reading squad ๐Ÿ’… every plugin here is a reader/writer for a different image format, and each one tells you which file extensions it recognizes and which element types it can handle. so if your pipeline is screaming "unknown format", this is the list to check. noted. โœจ


๐Ÿ“ผ analyze โ€” Analyze 7.5 image

  • Recognized file extensions: .HDR, .hdr
  • Supported element types:
    • unsigned 8 bit
    • signed 16 bit
    • signed 32 bit
    • floating point 32 bit
    • floating point 64 bit

๐Ÿช„ datapool โ€” Virtual IO to and from the internal data pool

  • Recognized file extensions: .@

(yes that's the whole extension, it's giving minimalism ๐ŸŽ€)


๐Ÿฉป dicom โ€” Dicom image series as 3D

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

๐ŸงŠ hdf5 โ€” HDF5 3D image IO

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

lowkey the full roster of element types, we love a plugin that does everything ๐Ÿ’–


๐Ÿ‡ซ๐Ÿ‡ท inria โ€” INRIA image

  • Recognized file extensions: .INR, .inr
  • Supported element types:
    • 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

๐Ÿงช mhd โ€” MetaIO 3D image IO using the VTK implementation (experimental).

  • Recognized file extensions: .MHA, .MHD, .mha, .mhd
  • Supported element types:
    • 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
โš ๏ธ heads up bestie, this one is experimental. it said so itself, i'm just the messenger ๐Ÿ˜ญ

๐Ÿง  nifti โ€” NIFTI-1 3D image IO

The orientation is transformed in the same way like it is done with dicomtonifti --no-reorder from the vtk-dicom package. (yes, exact flags, no edits, iykyk ๐Ÿ‘‘)

  • Recognized file extensions: .NII, .nii
  • Supported element types:
    • signed 8 bit
    • unsigned 8 bit
    • signed 16 bit
    • unsigned 16 bit
    • signed 32 bit
    • unsigned 32 bit
    • signed 64 bit
    • unsigned 64 bit
    • floating point 32 bit
    • floating point 64 bit

๐ŸŒž vff โ€” VFF Sun raster format

  • Recognized file extensions: .VFF, .vff
  • Supported element types:
    • unsigned 8 bit
    • signed 16 bit

๐Ÿ‘€ vista โ€” Vista 3D

  • 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

(that .- extension is so real, unhinged but iconic ๐Ÿฆ‹)


๐Ÿงฉ vti โ€” 3D image VTK-XML in- and output (experimental).

  • Recognized file extensions: .VTI, .vti
  • Supported element types:
    • 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
โš ๏ธ also experimental, no cap. handle with care ๐Ÿซถ

๐Ÿ—ฟ vtk โ€” 3D VTK image legacy in- and output (experimental).

  • Recognized file extensions: .VTK, .VTKIMAGE, .vtk, .vtkimage
  • Supported element types:
    • 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
โš ๏ธ yep, experimental too. it's the legacy one so, yk, respect your elders ๐Ÿ’€

๐ŸŽญ PLUGINS: 3dimage/maskedcost ๐ŸŽญ

the cost-function girlies but with masking support โœจ these are the ones you reach for when some pixels just don't deserve an opinion. ๐Ÿ™ˆ

๐Ÿ’ž 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.

(so the actual window is 2*w wide-ish in spirit, but the manpage says half width, and we report, we don't editorialize ๐Ÿ’…)

๐Ÿ”ฎ 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.
  • 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
๐Ÿซถ psst: mkernel defaults to a degree-3 bspline and rkernel to a degree-0 one. the two "hinstogram" typos are hers, i am simply relaying the message ๐Ÿ˜ญ

๐Ÿงฎ ncc

normalized cross correlation with masking support.

(no parameters)

๐Ÿ“‰ ssd

Sum of squared differences with masking.

(no parameters)


๐Ÿ”ท PLUGINS: 3dimage/shape ๐Ÿ”ท

shape neighborhoods!! these build the little neighborhood blobs that the algorithm vibes with ๐ŸŒธ

๐ŸŽฒ 18n

18n neighborhood 3D shape creator

(no parameters)

๐ŸŽฒ 26n

26n neighborhood 3D shape creator

(no parameters)

๐ŸŽฒ 6n

6n neighborhood 3D shape creator

(no parameters)

๐Ÿ”ฎ sphere

Closed spherical shape neighborhood including the pixels within a given radius r., supported parameters are:

  • r = 2; float in (0, inf) โ€” sphere radius.
bestie note: that interval is open at zero โ€” (0, inf) โ€” so r = 0 is not invited to the party. ๐Ÿšซ

and that's the shape section, main character energy for real ๐Ÿ‘‘

๐ŸŒˆ PLUGINS: 3dimage/transform ๐ŸŒˆ

okay so this is the glow-up factory, bestie โœจ every plug-in in here takes your image and moves it โ€” rotates it, squishes it, bends it, whatever the optimizer tells it to do. The <italic>degrees of freedom</italic> number = how many knobs the optimizer gets to fiddle with. More knobs = more power = more chaos ๐Ÿ”ฅ

Every single one of these bad boys shares the two same interpolation parameters, so imma say the vibe once and then just list them each time so nobody's scrolling up like a lost little ghost ๐Ÿ‘ป

  • imgboundary = mirror; factory โ€” the interpolation boundary conditions for your image. Wanna know which plug-ins you can slot in here? Run don't walk to PLUGINS:1d/splinebc ๐Ÿฆ‹
  • imgkernel = [bspline:d=3]; factory โ€” the image interpolator kernel. Same deal, supported plug-ins are chilling in PLUGINS:1d/splinekernel ๐ŸŒธ

๐ŸŽ€ affine

Affine transformation with 12 degrees of freedom โ€” she's doing the absolute most, periodt. Supported parameters are:

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

๐ŸŽ€ axisrot

Restricted rotation transformation โ€” only 1 degree of freedom, so she's on a leash but she's still serving ๐Ÿ’… The transformation is locked to a rotation around the given axis, about the given rotation center. Supported parameters are:

  • axis = (required, 3dfvector) โ€” the rotation axis.
  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • origin = (required, 3dfvector) โ€” the center of the transformation.

๐ŸŽ€ raffine

Restricted affine transformation, working with just 3 degrees of freedom. The way this one works: the rotation is restricted to spinning around the given axis, and the shearing happens along the two axes perpendicular to that given one. Supported parameters are:

  • axis = (required, 3dfvector) โ€” the rotation axis.
  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • origin = (required, 3dfvector) โ€” the center of the transformation.

๐ŸŽ€ rigid

Rigid transformation โ€” that's rotation plus translation, aka six degrees of freedom in one cute little package ๐Ÿซถ Supported parameters are:

  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • origin = [[0,0,0]]; 3dfvector โ€” the relative rotation center, meaning <0.5,0.5,0.5> lands you right in the center of the volume. Lowkey the most important default here, don't sleep on it.

๐ŸŽ€ rotation

Rotation transformation, three degrees of freedom of pure spinning energy ๐ŸŒ€ Supported parameters are:

  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • origin = [[0,0,0]]; 3dfvector โ€” the relative rotation center, where <0.5,0.5,0.5> is the center of the volume. Same energy as rigid, no cap.

๐ŸŽ€ rotbend

Restricted transformation with 4 degrees of freedom. This one gets bendy: the rotation is restricted to spinning around the x and y axis, plus a bending along the x axis, independent in each direction, and that bending increases with the squared distance from the rotation axis ๐Ÿคธ Supported parameters are:

  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • norot = 0; bool โ€” don't optimize the rotation. Set it and the rotation stays exactly where it is, bestie, she's clocked out ๐Ÿ˜ด
  • origin = (required, 3dfvector) โ€” the center of the transformation.

๐ŸŽ€ spline

Free-form transformation, aka the chaos gremlin ๐Ÿงš She can be described by a set of B-spline coefficients plus an underlying B-spline kernel. Supported parameters are:

  • anisorate = [[0,0,0]]; 3dfvector โ€” the anisotropic coefficient rate in pixels. Heads up: any nonpositive values get overwritten by the rate value ๐Ÿ’€ so don't get cute with zeros.
  • debug = 0; bool โ€” enable additional debugging output. Turn her on when you're in your detective era ๐Ÿ”
  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • kernel = [bspline:d=3]; factory โ€” the transformation spline kernel. Supported plug-ins: see PLUGINS:1d/splinekernel
  • penalty = ; factory โ€” the transformation penalty energy term. Supported plug-ins: see PLUGINS:3dtransform/splinepenalty ๐ŸŒŸ
  • rate = 10; float in [1, inf) โ€” the isotropic coefficient rate in pixels.

๐ŸŽ€ translate

Translation, three degrees of freedom โ€” she just slides, no spinning, no drama ๐Ÿ› Supported parameters are:

  • imgboundary = mirror; factory โ€” image interpolation boundary conditions. Supported plug-ins: see PLUGINS:1d/splinebc
  • imgkernel = [bspline:d=3]; factory โ€” image interpolator kernel. 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. Yes bestie, a whole translation per point, she's thorough like that ๐Ÿ’– Supported parameters are:

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

๐Ÿฆ‹ PLUGINS: 3dtransform/io ๐Ÿฆ‹

This is where your 3D transformations get saved and loaded โ€” the โœจmemoryโœจ department. Here's the roster of file-format plug-ins, and what extensions they claim:

  • bbs โ€” Binary (non-portable) serialized IO of 3D transformations.
    • Recognized file extensions: .bbs
  • datapool โ€” Virtual IO to and from the internal data pool.
    • Recognized file extensions: .@
  • vista โ€” Vista storage of 3D transformations.
    • Recognized file extensions: .v, .v3dt
  • xml โ€” XML serialized IO of 3D transformations.
    • Recognized file extensions: .x3dt
ngl <pink>bbs</pink> says non-portable right there in the description โ€” that's not me being shady, that's the manpage being honest. Take her to another machine at your own risk ๐Ÿ˜ญ

๐Ÿ’œ PLUGINS: 3dtransform/splinepenalty ๐Ÿ’œ

The discipline section ๐ŸŽ€ These are the energy terms that keep your spline transformation from doing whatever unhinged nonsense it wants. Right now there's exactly one plug-in here:

๐Ÿ“ divcurl

divcurl penalty on the transformation. Supported parameters are:

  • curl = 1; float in [0, inf) โ€” the penalty weight on curl.
  • div = 1; float in [0, inf) โ€” the 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) โ€” the weight of the penalty energy.
psst โ€” see the difference? curl, div and weight are all allowed to be bigger than zero, but weight starts its range above zero ((0, inf)) while the other two can legitimately hit 0 ([0, inf)). Little bracket, big difference, iykyk ๐Ÿ‘‘

๐ŸŽ€ PLUGINS: minimizer/singlecost ๐ŸŽ€

Okay bestie, this is the minimizer shelf โ€” the little optimizer plugins that live under minimizer/singlecost. These are the girls who actually do the walking downhill, and you gotta pick your fighter. ๐Ÿ’…


โœจ gdas โœจ

Gradient descent with automatic step size correction. She's simple, she's reliable, she fixes her own step size like a queen. Params:

  • ftolr = 0 (double in [0, inf)) โ€” stop if the relative change of the criterion is below.
  • max-step = 2 (double in (0, inf)) โ€” the maximal absolute step size.
  • maxiter = 200 (uint in [1, inf)) โ€” stopping criterion: the maximum number of iterations.
  • min-step = 0.1 (double in (0, inf)) โ€” the minimal absolute step size.
  • xtola = 0.01 (double in [0, inf)) โ€” stop if the inf-norm of the change applied to x is below this value.

๐ŸŒธ gdsq ๐ŸŒธ

Gradient descent but with quadratic step estimation โ€” she guessed the step size and honestly? she ate. Params:

  • ftolr = 0 (double in [0, inf)) โ€” stop if the relative change of the criterion is below.
  • gtola = 0 (double in [0, inf)) โ€” stop if the inf-norm of the gradient is below this value.
  • maxiter = 100 (uint in [1, inf)) โ€” stopping criterion: the maximum number of iterations.
  • scale = 2 (double in (1, inf)) โ€” fallback fixed step size scaling.
  • step = 0.1 (double in (0, inf)) โ€” initial step size.
  • xtola = 0 (double in [0, inf)) โ€” stop if the inf-norm of x-update is below this value.

๐Ÿฆ‹ gsl ๐Ÿฆ‹

Optimizer plugin based on the multimin optimizers of the GNU Scientific Library (GSL), https://www.gnu.org/software/gsl/ โ€” yes she's the library girl, no cap. Params:

  • eps = 0.01 (double in (0, inf)) โ€” gradient based optimizers: stop when |grad| < eps, simplex: stop when simplex size < eps.
  • iter = 100 (uint in [1, inf)) โ€” maximum number of iterations.
  • opt = gd (dict) โ€” specific optimizer to be used. Supported values are:
    • simplex โ€” Simplex algorithm of Nelder and Mead
    • cg-fr โ€” Flecher-Reeves conjugate gradient algorithm
    • cg-pr โ€” Polak-Ribiere conjugate gradient algorithm
    • bfgs โ€” Broyden-Fletcher-Goldfarb-Shann
    • bfgs2 โ€” Broyden-Fletcher-Goldfarb-Shann (most efficient version)
    • gd โ€” Gradient descent.
  • step = 0.001 (double in (0, inf)) โ€” initial step size.
  • tol = 0.1 (double in (0, inf)) โ€” some tolerance parameter.

๐Ÿ‘‘ nlopt ๐Ÿ‘‘

Minimizer algorithms using the NLOPT library. For a description of the optimizers please see http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms. This one has a whole menu of glowy options, so buckle up buttercup. Params:

  • ftola = 0 (double in [0, inf)) โ€” stopping criterion: the absolute change of the objective value is below this value.
  • ftolr = 0 (double in [0, inf)) โ€” stopping criterion: the relative change of the objective value is below this value.
  • higher = inf (double) โ€” higher boundary (equal for all parameters).
  • local-opt = none (dict) โ€” local minimization algorithm that may be required for the main minimization algorithm. Supported values are:
    • gn-direct โ€” Dividing Rectangles
    • gn-direct-l โ€” Dividing Rectangles (locally biased)
    • gn-direct-l-rand โ€” Dividing Rectangles (locally biased, randomized)
    • gn-direct-noscal โ€” Dividing Rectangles (unscaled)
    • gn-direct-l-noscal โ€” Dividing Rectangles (unscaled, locally biased)
    • gn-direct-l-rand-noscale โ€” Dividing Rectangles (unscaled, locally biased, randomized)
    • gn-orig-direct โ€” Dividing Rectangles (original implementation)
    • gn-orig-direct-l โ€” Dividing Rectangles (original implementation, locally biased)
    • ld-lbfgs-nocedal โ€” None
    • ld-lbfgs โ€” Low-storage BFGS
    • ln-praxis โ€” Gradient-free Local Optimization via the Principal-Axis Method
    • ld-var1 โ€” Shifted Limited-Memory Variable-Metric, Rank 1
    • ld-var2 โ€” Shifted Limited-Memory Variable-Metric, Rank 2
    • ld-tnewton โ€” Truncated Newton
    • ld-tnewton-restart โ€” Truncated Newton with steepest-descent restarting
    • ld-tnewton-precond โ€” Preconditioned Truncated Newton
    • ld-tnewton-precond-restart โ€” Preconditioned Truncated Newton with steepest-descent restarting
    • gn-crs2-lm โ€” Controlled Random Search with Local Mutation
    • ld-mma โ€” Method of Moving Asymptotes
    • ln-cobyla โ€” Constrained Optimization BY Linear Approximation
    • ln-newuoa โ€” Derivative-free Unconstrained Optimization by Iteratively Constructed Quadratic Approximation
    • ln-newuoa-bound โ€” Derivative-free Bound-constrained Optimization by Iteratively Constructed Quadratic Approximation
    • ln-neldermead โ€” Nelder-Mead simplex algorithm
    • ln-sbplx โ€” Subplex variant of Nelder-Mead
    • ln-bobyqa โ€” Derivative-free Bound-constrained Optimization
    • gn-isres โ€” Improved Stochastic Ranking Evolution Strategy
    • none โ€” don't specify algorithm
  • lower = -inf (double) โ€” lower boundary (equal for all parameters).
  • maxiter = 100 (int in [1, inf)) โ€” stopping criterion: the maximum number of iterations.
  • opt = ld-lbfgs (dict) โ€” main minimization algorithm. Supported values are:
    • gn-direct โ€” Dividing Rectangles
    • gn-direct-l โ€” Dividing Rectangles (locally biased)
    • gn-direct-l-rand โ€” Dividing Rectangles (locally biased, randomized)
    • gn-direct-noscal โ€” Dividing Rectangles (unscaled)
    • gn-direct-l-noscal โ€” Dividing Rectangles (unscaled, locally biased)
    • gn-direct-l-rand-noscale โ€” Dividing Rectangles (unscaled, locally biased, randomized)
    • gn-orig-direct โ€” Dividing Rectangles (original implementation)
    • gn-orig-direct-l โ€” Dividing Rectangles (original implementation, locally biased)
    • ld-lbfgs-nocedal โ€” None
    • ld-lbfgs โ€” Low-storage BFGS
    • ln-praxis โ€” Gradient-free Local Optimization via the Principal-Axis Method
    • ld-var1 โ€” Shifted Limited-Memory Variable-Metric, Rank 1
    • ld-var2 โ€” Shifted Limited-Memory Variable-Metric, Rank 2
    • ld-tnewton โ€” Truncated Newton
    • ld-tnewton-restart โ€” Truncated Newton with steepest-descent restarting
    • ld-tnewton-precond โ€” Preconditioned Truncated Newton
    • ld-tnewton-precond-restart โ€” Preconditioned Truncated Newton with steepest-descent restarting
    • gn-crs2-lm โ€” Controlled Random Search with Local Mutation
    • ld-mma โ€” Method of Moving Asymptotes
    • ln-cobyla โ€” Constrained Optimization BY Linear Approximation
    • ln-newuoa โ€” Derivative-free Unconstrained Optimization by Iteratively Constructed Quadratic Approximation
    • ln-newuoa-bound โ€” Derivative-free Bound-constrained Optimization by Iteratively Constructed Quadratic Approximation
    • ln-neldermead โ€” Nelder-Mead simplex algorithm
    • ln-sbplx โ€” Subplex variant of Nelder-Mead
    • ln-bobyqa โ€” Derivative-free Bound-constrained Optimization
    • gn-isres โ€” Improved Stochastic Ranking Evolution Strategy
    • auglag โ€” Augmented Lagrangian algorithm
    • auglag-eq โ€” Augmented Lagrangian algorithm with equality constraints only
    • g-mlsl โ€” Multi-Level Single-Linkage (require local optimization and bounds)
    • g-mlsl-lds โ€” Multi-Level Single-Linkage (low-discrepancy-sequence, require local gradient based optimization and bounds)
    • ld-slsqp โ€” Sequential Least-Squares Quadratic Programming
  • step = 0 (double in [0, inf)) โ€” initial step size for gradient free methods.
  • stop = -inf (double) โ€” stopping criterion: function value falls below this value.
  • xtola = 0 (double in [0, inf)) โ€” stopping criterion: the absolute change of all x-values is below this value.
  • xtolr = 0 (double in [0, inf)) โ€” stopping criterion: the relative change of all x-values is below this value.

โœจ EXAMPLE โœจ

Bestie here's the whole recipe in one go: register the image series given by images imageXXXX.v by optimizing a spline based transformation with a coefficient rate of 16 pixel, skipping two images at the beginning and using normalized gradient fields as initial cost measure and SSD as final measure. Penalize the transformation by using divcurl with a weight of 2.0. As optimizer an nlopt based newton method is used. Slay. ๐Ÿ’–


mia-3dprealign-nonrigid mia-3dprealign-nonrigid  -i imageXXXX.v -o
       registered -t vista -k 2-F
       spline:rate=16,penalty=[divcurl:weight=2] -1
       image:cost=[ngf:eval=ds] -2 image:cost=ssd -O
       nlopt:opt=ld-var1,xtola=0.001,ftolr=0.001,maxiter=300

๐Ÿ‘‘ AUTHOR(s) ๐Ÿ‘‘

Gert Wollny


okay bestie, legal o'clock ๐Ÿ’… and no we're not skipping it, it literally takes ten seconds.

This software is Copyright (c) 1999โ€2015 Leipzig, Germany and Madrid, Spain ๐Ÿ’– Like, the whole thing, both cities, that era. Iconic run tbh.

It comes with ABSOLUTELY NO WARRANTY ๐Ÿ˜ญ bestie not even a little one, not a vibe, not a hypothetical. Cap that in your head fr fr.

You may redistribute it under the terms of the GNU GENERAL PUBLIC LICENSE Version 3 (or later) ๐ŸŒˆ so like, version 3 is the floor, you can go up from there, we're not gatekeeping.

Want the whole receipts? For more information run the program with the option --copyright ๐Ÿ‘‘


aaaand that's a wrap on the whole page, bestie ๐Ÿซถ you made it to the very end, main character energy fr ๐ŸŒŸ this one lives in the USER COMMANDS section, it's v2.4.7 of ya girl, and it's the mia-3dprealign-nonrigid(1) manual page ๐Ÿ’œ go forth and prealign some nonrigid stuff, slay, periodt ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from