ILK(1)

πŸ“¦ version 1.11.0, in fedora 43, fedora 44

✨ ILK(1) ✨

okay so bestie, welcome to the ilk manual page πŸ’– this is the User Commands section of the manual, and we're about to learn all about image linear transforms. grab a snack, it's giving math girlie energy and honestly? slay.


🌸 NAME 🌸

ilk β€” (I)mage (L)inear Trans(X-->K)forms


πŸ¦‹ SYNOPSIS πŸ¦‹

ilk [@file ...]  [-i <image>] [-0 <origin>] -t <xform0 ...> [-k
<kernel>] [-min <xMin yMin>] [-max <xMax yMax>] [-b <boundary>] [-bg
<bg0 bg1 ...>] [-s <xSize ySize>] [-a <avg #>] [-o <filename>]

πŸ’… DESCRIPTION πŸ’…

(I)mage (L)inear Trans(X-->K)forms. it literally takes a given image and applies linear (homogenous coordinate) transforms to it, and for the resampling part it uses the given kernel. that's the whole vibe. 🫢


πŸŽ€ OPTIONS πŸŽ€

  • @file ... β€” response file(s) that hold command-line arguments for you. no cap, you can stash your args in a file. πŸ“„
  • -i <image> β€” the input image. default: "-"
  • -0 <origin> β€” where to put (0,0) before any transforms get applied. choose your own origin adventure:
    • "u:<float>,<float>" β€” put the origin somewhere in a unit box [0,1]x[0,1] that covers the original image
    • "p:<float>,<float>" β€” put the origin at a particular pixel location, in the index space of the image

default: "p:0,0"

  • -t <xform0 ...> β€” the transform(s) to apply to the image. heads up bestie, they get applied in the order in which they appear, so order is the moment. πŸ‘‘
    • "identity" β€” no geometric transform at all, just resampling. it's giving minimal effort but make it valid.
    • "translate:x,y" β€” shift the image by the vector (x,y), measured in pixels
    • "rotate:ang" β€” rotate CCW by ang degrees
    • "scale:xs,ys" β€” scale by xs in X, and ys in Y
    • "shear:fix,amnt" β€” shear by amnt, keeping fixed the pixels along a direction <fix> degrees from the X axis
    • "flip:ang" β€” flip along an axis that's an angle <ang> degrees from the X axis
    • "a,b,tx,c,d,ty" β€” spell the transform out explicitly in row-major order (which is the opposite of PostScript, fyi) (1 or more 2D transforms)
  • -k <kernel> β€” the reconstruction kernel. default: "cubic:0,0.5"
  • -min <xMin yMin> β€” lower bounding corner of the output image. if you just don't use this option, the default is the lower corner of the input image. (2 doubles)
  • -max <xMax yMax> β€” upper bounding corner of the output image. same deal: skip the option and the default is the upper corner of the input image. (2 doubles)
  • -b <boundary> β€” what to do when we're sampling outside the original image. the boundary behavior vibe check:
    • "bleed" β€” copy the values at the image border outward
    • "wrap" β€” do wrap-around on image locations
    • "pad" β€” use a given background value (you supply it via -bg)

default: "bleed"

  • -bg <bg0 bg1 ...> β€” the background color to use with boundary behavior "pad". defaults to all zeroes. (1 or more floats)
  • -s <xSize ySize> β€” for each axis, the info about how many samples go in the output. two flavors:
    • "x<float>" β€” the number of output samples is some scaling of the number of input samples; multiplied by <float>
    • "<int>" β€” specify the exact number of samples (2 sampling specifications)

default: "x1 x1"

  • -a <avg #> β€” number of averages (this one only kicks in if there there is only one rotation) (unsigned int); default: "0"
  • -o <filename> β€” the file to write the output nrrd to (string); default: "-"

🌈 SEE ALSO 🌈

gprobe(1), miter(1), mrender(1), nrrdSanity(1), overrgb(1), puller(1), tend(1), unu(1), vprobe(1)


and that's the whole page, bestie πŸ’œ this one's from the User Commands corner of the manual, dated April 2021, and yeah β€” it's ILK(1), iconic, no notes. go transform something pretty. πŸ¦‹βœ¨πŸ’–

πŸ“¦ where this page comes from