Skip to content

ThicknessWrapper

Richard Domander edited this page May 18, 2016 · 19 revisions

This page documents the wrapper class of the LocalThickness plugin in BoneJ2. The plugin is used trough a wrapper instead of called directly to:

  1. Place it under the Plugins>BoneJ menu entry
  2. Provide custom functionality

The wrapper will call the LocalThickness plugin even though it still is very much in the ImageJ1 world. This will lead into some differences in the implementation of this wrapper from the others. Details below. In the ideal case we would have the time to convert the plugin into an Op (or rather each step into an individual Op). The original developer has withdrawn from maintaining the plugin.

BoneJ1 documentation

ThicknessWrapper

  • Menu path: Plugins>BoneJ>Thickness
  • Performs all the steps in the Local Thickness plugin
Setup dialog
  • Options
    • Maps (String): Controls which thickness maps are calculated
      • Label: Calculate:
      • Tooltip: Which thickness measures to calculate
      • Widget: Vertical radio button group ("Trabecular thickness", "Trabecular spacing", "Both")
    • Show images (boolean): if true, show the resulting thickness map image(s)
      • Label: Show thickness maps
      • Tooltip: Show resulting map images after calculations
      • Widget: Check box
    • Mask thickness map (boolean): if true, remove pixel artefacts from the thickness map image(s)
      • Label: Mask thickness maps
      • Tooltip: Remove pixel artifacts from the thickness maps
      • Widget: Check box
  • Other
    • Help-button: opens help page
      • Tooltip: Open help web page
Messages
  • If there is no input image
    • Show an error dialog
    • Abort the run
  • If the input image is not 8-bit binary colour
    • Show an error dialog
    • Abort the run
  • If the input image does not have exactly three spatial dimensions
    • Show an error dialog
    • Abort the run
  • If the input image is not isotropic
    • Show a warning dialog
    • Continue if user clicks OK
  • If the calibration of the image cannot be determined*
    • Show a warning dialog (before Results table)
  • If PlatformService fails to open the help page
    • Show an error dialog

*Calibration cannot be determined if axes have different units or are not linear. No calibration is a valid calibration (none of the axes are calibrated).

Output images
  • Creates output images that show the local thickness map of the input image
  • The pixel values in the output images shall be calibrated (thickness in real units)
  • The output images must not contain 0 values. Zero pixels shall be marked NaN instead
  • Does not overwrite the input image
  • The title of the output image for trabecular thickness shall be "<title of input image>_Tb.Th"
  • The title of the output image for trabecular spacing shall be "<title of input image>_Tb.Sp"
Results table
  • Show Mean value (Mean), Standard deviation (Std Dev) and Maximum value (Max) for both trabecular thickness and spacing. Add a prefix to each column header: Tb.Th for thickness and Tb.Sp for spacing.
  • Must show the unit of the values (e.g. mm^3) in the results table. If the image is uncalibrated, must not show any unit (e.g. no "pixel" unit).
Differences from BoneJ1
  • Settings persist

Future
  • Add possibility to limit the thickness map to ROI manager
  • Usage reporting
  • User documentation
Notes
  • The underlying plugin was modified so that BoneJ2 could use it through a wrapper. The pull request has been submitted, and the code published in the ImageJ Maven repository.
Clone this wiki locally