detect...phantom(1)

πŸ’– NAME πŸ’–

detect_adni_phantom β€” bestie, this one sniffs out ADNI phantom landmarks inside a phantom image. That's the whole job. Iconic, honestly.


✨ SYNOPSIS ✨

detect_adni_phantom InputImage OutputXML

Like. Two things. Image goes in, XML comes out. No notes. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So this tool goes and finds the locations of all the spherical landmarks in a 3D image of the Magphan EMR051 structural imaging phantom β€” which, yeah, is also known as the ADNI Phantom. Every single sphere. It's giving overachiever and we love that for it. 🌸


πŸŽ€ OPTIONS πŸŽ€

🌈 Global Toolkit Options (these are shared by all CMTK tools)

These ones are the communal wardrobe, okay? Every CMTK tool wears them.

  • --help β€” dumps the list of basic command line options to standard output. Baby's first help. 🍼
  • --help-all β€” dumps the complete list, basic and advanced, to standard output. The full lore drop. πŸ“š
  • --wiki β€” writes the list of command line options to standard output in MediaWiki markup. For when you need it to look cute on a wiki. ✨
  • --man β€” writes the man page source in nroff markup to standard output. Ngl, retro. πŸ•°οΈ
  • --version β€” writes the toolkit version to standard output. Vibe check on which build you're running.
  • --echo β€” writes the current command line to standard output. It's literally repeating you back. πŸ™ˆ
  • --verbose-level <integer> β€” sets the verbosity level. How much do you wanna hear about it.
  • --verbose, -v β€” bumps the verbosity level up by 1. Heads up tho: this one is deprecated, it's only still here for backward compatibility. Still works, still slays, just old. πŸ’€
  • --threads <integer> β€” sets the max number of parallel threads (for POSIX threads and OpenMP). Let it cook on multiple cores. πŸ”₯

πŸ‘‘ Phantom Detection Options

This is the main character section. Everything here is about finding the spheres.

  • --tolerant β€” be tolerant of issues like partially truncated marker spheres. > ⚠️ Warning bestie: use this with caution and only when you actually need to. You should carefully inspect both the phantom image and the detection results to figure out where the detection problems are coming from and to verify that the results are actually reliable. Do not just rawdog this flag. 😭
  • --any-orientation β€” don't assume the standard orientation of the phantom, i.e. allow phantoms that were scanned upside-down. Heads up: this makes detection of defective phantoms less robust. Trade-off city. βš–οΈ
  • --fallback-cnr-centroid β€” force a fallback that uses the centroid of the CNR spheres instead of the center of the SNR sphere for initial orientation. When's this useful? Say the SNR sphere has broken off but it's sitting in a position that doesn't trigger the automatic fallback β€” then you reach for this. 🫢
  • --erode-snr <double> β€” erode the SNR sphere by this distance before computing the SNR estimate. [Default: 10]
  • --erode-cnr <double> β€” erode each CNR sphere by this distance before computing the CNR estimate. [Default: 5]
  • --refine-xform β€” refine the estimated affine transformation after each new landmark gets added. Little glow-up every step. πŸ’…
  • --refine-outliers β€” refine outlier landmarks based on the estimated transformation after the first sphere detection pass.
  • --exclude-outliers β€” exclude outlier landmarks before fitting the final transformations. Not invited to the final fit. 🚫
  • --no-bias-correct-spheres β€” disable intensity bias field correction for each detected sphere. The tea: this will likely reduce the accuracy of the SNR/CNR estimates and it'll also affect the localization accuracy of the smaller spheres. But it may be helpful in extreme cases where bias correction fails completely. Last-resort behavior. πŸ’€

πŸ’œ Output Options

What you get to take home at the end. πŸ›οΈ

  • --write-labels <image-path> β€” output label image path. This image contains the mask of the detected spheres, each one labeled uniquely in their order in CMTK's ADNI phantom fiducial table. [Default: NONE]
  • --write-rigid <transformation-path> β€” output path for the fitted rigid transformation from phantom space into RAS image standard space. This transformation defines where each sphere should be in the image. [Default: NONE]
  • --write-affine <transformation-path> β€” output path for the fitted affine transformation from phantom space into RAS image standard space. This is the closest linear-fit transformation, and as such it includes scale and shear components that are not present in the fitted rigid transformations. Since those components come from scanner miscalibration and distortion, > ⚠️ this transformation DOES NOT specify the correct sphere locations in the image. What it does do is let you quantify scale miscalibration. Read that twice, bestie. 😭 [Default: NONE]

🌟 AUTHORS 🌟

Torsten Rohlfing, with contributions from Michael P. Hasak, Greg Jefferis, Calvin R. Maurer, Daniel B. Russakoff, and Yaroslav Halchenko. Shoutout to the whole squad. 🫢✨


πŸ“œ LICENSE πŸ“œ

http://www.fsf.org/licensing/licenses/gpl.html


πŸ™ˆ BUGS πŸ™ˆ

Found a bug? Report bugs at http://nitrc.org/projects/cmtk/. Do it, don't just think about it. πŸ’Œ


πŸ’– ACKNOWLEDGMENTS πŸ’–

CMTK is developed with support from the NIAAA under Grant AA021697, National Consortium on Alcohol and Neurodevelopment in Adolescence (N-CANDA): Data Integration Component. And from April 2009 through September 2011, CMTK development and maintenance was supported by the NIBIB under Grant EB008381. Funding lore. Real ones. 🧚


Okay that's the whole page!! This was CMTK 3.3.1p2, dated Jun 24 2026, under the manual name detect...phantom(1). Go detect some spheres bestie, you've got this πŸ’…βœ¨

πŸ“¦ where this page comes from