mia-2dcost(1)

✨ mia-2dcost(1) ✨

General Commands Manual β€” okay bestie, this is a manual page, and it's about to be your new fave lil tool, no cap. πŸ’–


🌸 NAME 🌸

mia-2dcost β€” Evaluate the similarity between two 2D images.


πŸ¦‹ SYNOPSIS πŸ¦‹

mia-2dcost [options] <PLUGINS:2dimage/fullcost>

✨ DESCRIPTION ✨

So like, mia-2dcost is the program you use to evaluate the cost between two images, using a cost function you pick. That's the whole vibe. πŸ’…


πŸŽ€ OPTIONS πŸŽ€

Help & Info

  • -V --verbose=warning β€” this one sets the verbosity of output. It prints messages of the given level and higher priorities. The 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 β€” prints the copyright information 🫢
  • -h --help β€” prints this help
  • -? --usage β€” prints a short help
  • --version β€” prints the version number and dips ✌️

Processing

  • --threads=-1 β€” the 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/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: 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
    • 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.
    • 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.
    • 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:
    • 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.

πŸ’œ PLUGINS: 2dimage/io πŸ’œ

  • bmp β€” BMP 2D-image input/output support. The plug-in supports reading and writing of binary images and 8-bit gray scale images. read-only support is provided for 4-bit gray scale images. The color table is ignored and the pixel values are taken as literal gray scale values. 🎨
    • 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
    • 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

bestie there's literally more of this page coming, so don't go anywhere β€” part 2 is loading and it's giving main character energy πŸ¦‹

🫢 PLUGINS: 2dimage/maskedcost 🫢

Okay bestie, this is the mask-friendly branch of the cost-function family β€” same vibes as the unmasked ones but they get that some pixels are just not invited to the party. πŸ’…

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 like, how far out from each pixel we peek while doing the localized cross correlation. bigger window = more pixels invited, keep it in [1, 256]. ✨

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. so it yeets the extreme bright and extreme dark pixels out of the histogram so your outliers don't wreck the whole vibe. float in [0, 40], default 0 (aka cutting nothing). πŸ“
  • mbins = 64; uint in [1, 256] β€” Number of histogram bins used for the moving image. uint in [1, 256]. πŸ“Š
  • mkernel = [bspline:d=3]; factory β€” Spline kernel for moving image parzen histogram. For supported plug-ins see PLUGINS:1d/splinekernel. πŸ‘‘
  • rbins = 64; uint in [1, 256] β€” Number of histogram bins used for the reference image. uint in [1, 256]. πŸ“Š
  • rkernel = [bspline:d=0]; factory β€” Spline kernel for reference image parzen histogram. For supported plug-ins see PLUGINS:1d/splinekernel. 🧚
notice how the moving image gets [bspline:d=3] and the reference gets [bspline:d=0] β€” not a typo, that's literally the defaults, don't @ me. 😭

ncc

normalized cross correlation with masking support.

  • (no parameters)

literally nothing to configure, it just works. main character energy fr fr. πŸ’–

ssd

Sum of squared differences with masking.

  • (no parameters)

again, zero knobs. slay. πŸŽ€


✨ EXAMPLE ✨

Evaluate the SSD cost function between image1.png and image2.png

mia-2dcost image:src=image1.png,ref=image2.png,cost=ssd

that's it. that's the whole thing. copy, paste, run, feel iconic. πŸ’…


🌈 AUTHOR(s) 🌈

Gert Wollny

(one person carried this entire thing, we love to see it 🫢)


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 all-caps ABSOLUTELY NO WARRANTY is not me being dramatic, that is verbatim what it says. read it and internalize it. 😭

okay that's the whole page, you made it to the end, I'm so proud of you πŸ₯ΉπŸ’– this was mia-2dcost(1) from the USER COMMANDS corner of the manual, version v2.4.7 β€” go forth and compute your cost functions, you absolute icon. periodt. βœ¨πŸ‘‘πŸ¦‹