-
Notifications
You must be signed in to change notification settings - Fork 12
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
.
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.
Dilate
- Dilate command already present in ImageJ2, no implementation needed
- Re-implemented
Erode
- Erode command already present in ImageJ2, no implementation needed
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.
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
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 withij-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.
- Replaced by "Intertrabecular angles", which isn't limited to just triple points, but user adjustable n--m -points
- 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 theUsageReporter
class from BoneJ1, or utilizeUsageService
once its issues have been solved? - Bug reporting mechanism
- Report a Bug plugin?
- Error logging with
LogService
- 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