Skip to content

Backlog

Richard Domander edited this page Aug 13, 2018 · 33 revisions

This page catalogues ideas for future enhancements and fixes to BoneJ code. The idea is that the team creates issues and project notes from these, after they've decided which go to the next release. Some items are here, because they're waiting for technology to mature, e.g. SciView. Some items also need discussion before we decide to work on them.

Project

General enhancements

  • Credit the authors of Skeletonize / AnalyzeSkeleton / Thickness in the wrappers. We should make clear that we're calling other peoples' code, even if we provide support on the forum.
  • Implement dynamic setup dialogs by extending DynamicCommand
    • Having callBacks, verifiers and persistent @Parameters makes this difficult. You can use AbstractModule.initialize() to setup your saved values correctly, when they depend on each other. However this creates problems when your plug-in gets called through CommandService.run, i.e. inputs are ignored / overridden. See this forum post for more details.
  • Change uiService.showDialog to statusService.showStatus in case of warnings
    • Pros: showStatus doesn't interrupt plug-in
    • Cons: user might miss the warning
  • When messages for contingency checks become possible, add explanations to Ops why matchings fail
  • Add unit tests to sc.fiji.LocalThickness_ from legacy BoneJ
  • Remove remaining dependencies to ImageJ3D from the Legacy module
  • Fix ImageCheck.checkEnvironment() in Legacy. Only check for ImageJ3D where necessary
  • Add BoneJ1 style usage reporting to wrapper plug-ins
  • Should all the results of the wrappers be output @Parameters in case someone wants to run them headless or from scripts?
    • It is possible to grab results from the SharedTable, but it's not as handy. Also not all results are there.
    • We don't know yet how post-processors will automatically display different types of results, i.e. a @Parameter Double importantMeasure could be displayed in a dialog in addition to our table. To avoid this we'd have to code a custom post-processor (a lot of work), or hack the wrapper so that it leaves output parameters null unless the plug-in is running headless.
    • Someone writing a script might as well call the ops our wrappers call, even though they do calculate some simple derived results, e.g. degree of anisotropy from the radii of an ellipsoid returned by QuadricToEllipsoid
  • Support for hyperstack ImagePlus?
  • Support for true N-dimensional images?

General Fixes

  • @Parameter ImagePlus doesn't work without the legacy UI (because autoconversion / legacy input harvester is not activated..?)
  • Investigate persistence issues (parameters stop remembering their changed values)

New features

  • MetadataViewer tool for SCIFIO formats such as Kontron IMG (or wait ImageJ2/Fiji to implement support)
    • Metadata harvested by SCIFIO is not shown in the image info dialog (the i key)
  • Anisotropy for 2D images
    • Either anisotropy wrapper should accept both 2D / 3D and choose appropriate ops, or we create a separate 2D wrapper
  • Use SciView for rendering like ImageJ3DViewer is used in BoneJ1
    • We should wait for SciView to further integrate with Fiji for two reasons:
      1. No need to worry about supplying native libraries from BoneJ update site (which might break peoples' ImageJ)
      2. No need to worry about people having JRE with JavaFX libraries. In the future either Fiji will ship with JavaFX, or SciView will drop JavaFX.
    • SciView will (very likely) become the go-to renderer for Fiji

Anisotropy wrapper

  • A boolean parameter to filter outlier points before calling Quadric op

Element fraction

  • A boolean parameter to limit calculations to ROIs
    • Wait until modern ROIs have been implemented
  • Should Δχ be calculated by implementing χ for 2D faces, 1D edges and 0D vertices as here? Should we add euler characteristic ops for 2D, 1D and 0D?

Fractal dimension wrapper

  • Plot log(n) / log(m) data points

Isosurface wrapper

  • Show meshes with SciView
  • Remove the option for saving .STL files, and allow SciView to do it
    • No reason to duplicate features in tools that ship with Fiji. Also, we don't want to create .stl files that are different from SciView's.
  • Add resampling parameter (there's no op to perform resampling yet)
  • Add support for anisotropically calibrated images - at the moment surface area is reported incorrectly for these
  • Add goodness of fit output

SCIFIO

Surface fraction wrapper

  • A boolean parameter to limit calculations to ROIs
    • Wait until modern ROIs have been implemented
  • Show meshes with SciView
  • Should the mesh created by marching cubes be smoothed, or would this make the results more unrealistic?
Clone this wiki locally