Skip to content

Technical specifications

Richard Domander edited this page Mar 14, 2018 · 33 revisions

This is the main page of the technical specification for BoneJ2 - a collection of plugins for Fiji/ImageJ2. Most of the project's code reimplement functionality from BoneJ1. However the code has been heavily refactored to improve quality among other things. A lot of it has been moved away from the BoneJ packages to other components such as net.imagej.ops and org.scijava.

Plug-ins in BoneJ2

This list details the status of the legacy plug-ins in the new BoneJ2. Compare with list at bonej.org. Missing entries have not been implemented yet. Entries link to individual technical documentation.

Analyse skeleton

Connectivity

Dilate

  • Dilate command already present in ImageJ2, no implementation needed

Element fraction

  • Re-implemented

Erode

  • Erode command already present in ImageJ2, no implementation needed

Fractal dimension

Fit ellipsoid

Help

  • Won't implement. Modern ImageJ has a search bar that finds help from wiki.imagej.net and forum.imagej.net. Documentation will move there.

Interpolate ROIs

  • Won't implement. Not relevant anymore.

Isosurface

Kontron IMG

  • The BoneJ1 plugin that offered support for the Kontron IMG files has been reimplemented as a part of SCIFIO
  • Works in ImageJ "out-of-the-box" when SCIFIO is enabled
  • Supports arbitrarily large images
  • Can open images by dragging and dropping
  • Location io.scif.formats

Neck shaft angle

  • Won't implement. Not relevant anymore.

Scanco ISQ

  • The BoneJ1 plugin that offered support for the Scanco ISQ files has been reimplemented as a part of SCIFIO
  • Works in ImageJ "out-of-the-box" when SCIFIO is enabled
  • Supports arbitrarily large images
  • Can open images by dragging and dropping
  • Location io.scif.formats

Skeletonise

Stratec pQCT

  • The BoneJ1 plugin that offered support for the Stratec pQCT files has been reimplemented as a part of SCIFIO
  • Works in ImageJ "out-of-the-box" when SCIFIO is enabled
  • Supports arbitrarily large images
  • Can open images by dragging and dropping
  • When using legacy UI, doesn't work with ij-1.50e.jar or older. Tested successfully with ij-1.51g.jar.
  • Location io.scif.formats
  • Without SCIFIO, use Read Stratec File sc.fiji.pQCT_

Structural model index

  • Won't implement. Will be replaced by modern Ellipsoid factor.

Surface fraction

Thickness

Triple point angles

  • Replaced by "Intertrabecular angles", which isn't limited to just triple points, but user adjustable n--m -points

Challenges and future developments

  • Duplicate plugins: some have more than one menu path. For example the Thickness plugin can be found under Plugins>BoneJ>Thickness and Analyze>Local Thickness. These paths point to the same plugin, but calls from the BoneJ submenu go through the wrappers of this project. Thus the user experience may differ.
  • Plugins need to written either in the style of ImageJ1 or ImageJ2. You can’t really mix and match the best of both worlds, or write “transitive” versions of the plugins, where only part of the functionality is written in the new way. This is because backwards compatibility in ImageJ2 is very complicated.
  • BoneJ2 and macros: ImageJ2 is moving away from the ImageJ macro language. Have to learn one of the scripting languages ImageJ2 supports, and figure out how macros are supposed to work with BoneJ2.
  • Gathering usage data: Apparently ImageJ2 offers a UsageService class, but the community reacted negatively to it. Should BoneJ2 use a modified version of the UsageReporter class from BoneJ1, or utilize UsageService once its issues have been solved?
  • Bug reporting mechanism
  • Should the run-time help for BoneJ2 inform how users should cite it or its plugins? (Should be coded as a mechanism in ImageJ2)
  • Headless mode
  • How to deal with inconsistencies between UIs?
  • SciJava UI: populating ImagePlus @Paremeters, or resolving conversion issues between composite ImagePlus / Dataset
  • ImageJ status messages with StatusService
  • Replacing calls to ResultsTable in ImageJ2?
  • Interoperation with other tools in the ecosystem
  • Display full SCIFIO image metadata to user
    • E.g. from Scanco ISQ, Kontron, Stratec pCQT...
    • Either follow up developments in ImageJ2 UI, or create a purpose built command
Clone this wiki locally