mdoube / bonej Goto Github PK
View Code? Open in Web Editor NEWA collection of plugins for bone image analysis in ImageJ
Home Page: http://bonej.org/
A collection of plugins for bone image analysis in ImageJ
Home Page: http://bonej.org/
Use calibrated pixel values to calculate density-weighted parameters, like moment of inertia and cross-sectional area. Requested by Sandra Shefelbine.
Either the content, or a link to the appropriate web pages.
Summary of Community survey results.
Depends on: #27
More rod and plate classification, following on from the shape-preserving thinning approach DTA.
Saha P, Yan Xu, Hong Duan, Heiner A, Guoyuan Liang. Volumetric Topological Analysis: A Novel Approach for Trabecular Bone Classification on the Continuum Between Plates and Rods. Medical Imaging, IEEE Transactions on 2010;29:1821-1838. doi:10.1109/TMI.2010.2050779
E.g. using autocorrelation function
Quick-start documentation linking to other documentation.
Depends on: #31
in Slice Geometry, Bonej takes values from (0,65536) "unsigned integer" for calculating density instead of
signed integer (-32768;32768) that are shown in imagej panel. This is confusing. An option box would fix it.
Community outreach to solicit recruits for development tasks and/or responsibilities, feedback on web site and project plans, other requirements seen as important by the community.
Need a web page spelling out the privacy policy - what data are collected, how they are stored, who can see them, what they are used for and how to opt-in and opt-out. This is partially done here: http://bonej.org/stats but that doesn't cover the website download logging or Google Analytics.
FEA meshes can be made from image data. Provide methods to export image data in a format suitable for creation of FEA meshes (or create meshes directly).
Hi @mdoube ,
Thanks for the codes. I tried the 3D particle analyzer on my randomly oriented ellipsoid particles (about 2000). Their major axes are expected to distributed randomly in 3D space. I plot the unit vector of the major axis (vX, vY, vZ). It shows that most of the Vz values are assigned a positive value? What is the consideration for this if it is not a bug? thanks!
Attempting to run a BoneJ command in headless mode gives off this error:
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.doube.util.ImageCheck.checkEnvironment(ImageCheck.java:240)
at org.doube.bonej.MeasureSurface.run(MeasureSurface.java:60)
at ij.IJ.runUserPlugIn(IJ.java:228)
at ij.IJ.runPlugIn(IJ.java:192)
at ij.Executer.runCommand(Executer.java:137)
at ij.Executer.run(Executer.java:66)
at ij.IJ.run(IJ.java:308)
at ij.macro.Functions.doRun(Functions.java:613)
at ij.macro.Functions.doFunction(Functions.java:96)
at ij.macro.Interpreter.doStatement(Interpreter.java:250)
at ij.macro.Interpreter.doStatements(Interpreter.java:236)
at ij.macro.Interpreter.run(Interpreter.java:119)
at ij.macro.Interpreter.run(Interpreter.java:90)
at ij.macro.Interpreter.run(Interpreter.java:101)
at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:161)
at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.java:145)
at ij.IJ.runMacroFile(IJ.java:159)
at net.imagej.legacy.IJ1Helper$4.call(IJ1Helper.java:1115)
at net.imagej.legacy.IJ1Helper$4.call(IJ1Helper.java:1111)
at net.imagej.legacy.IJ1Helper.runMacroFriendly(IJ1Helper.java:1045)
at net.imagej.legacy.IJ1Helper.runMacroFile(IJ1Helper.java:1111)
at net.imagej.legacy.LegacyCommandline$Macro.handle(LegacyCommandline.java:187)
at org.scijava.console.DefaultConsoleService.processArgs(DefaultConsoleService.java:102)
at org.scijava.AbstractGateway.launch(AbstractGateway.java:97)
at net.imagej.Main.main(Main.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:279)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:186)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:77)
Caused by: java.awt.HeadlessException
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:294)
... 34 more
Running it without headless works fine, but that's not always as easily done in an production environment.
Using the development review as a starting point (#31), and with the results of the community survey (#28), produce a short document that explains the benefit and popularity of BoneJ, and the key tasks that need to be done to make it more useful and usable (e.g. packaging, enhanced tests, ImageJ2 compliance etc) and to maintain and support it longer term.
BoneJ is a project in its own right, so the original package structure based on the doube.org domain should be deprecated and replaced with one based on the now well-established bonej.org domain. Classes in org.doube.* should be moved to org.bonej.* In BoneJ2, this should be the default and no org.doube.* structures should remain: in BoneJ1 new plugins should be written in org.bonej.* and old ones gradually migrated to org.bonej.* leaving some deprecated legacy wrapper classes in place.
Sandra Shefelbine reports that she has never got BoneJ to work on her Mac. Update documentation and/or packaging to improve installation experience for Mac users.
Short report on BoneJ product: test infrastructure and test suites; documentation; installation and packaging. Includes proposals on how BoneJ can be improved in terms of: testing to ensure correctness of analyses; a meta-manual, how to use BoneJ manual, and how BoneJ works manual; ease-of-install.
IEEE TRANSACTIONS ON BIOMEDICAL ENGINEERING BME VOL 61; NUMB 7 (2014) pp.2057-2069
A Robust Algorithm for Thickness Computation at Low Resolution and Its Application to In Vivo Trabecular Bone CT Imaging
Liu, Y.; Jin, D.; Li, C.; Janz, K. F.; Burns, T. L.; Torner, J. C.; Levy, S. M.; Saha, P. K.
Git is intimidating. Eclipse setup is a minefield. Help people get through that and into productive coding. Quickstart guide? Hint from Shefelbine.
Only nearest neighbour interpolation is used when rotating stacks in Moments and Anisotropy. Other interpolation schemes are possible, like cubic and linear. Implementation of interpolation of pixel values will result in a smoother, visually pleasing, output.
Coding standards for community development. Policy will be hosted on GitHub and/or web site.
Depends on: #31
Policy for contributions from community which may be code, bug reports, feature requests, documentation and tutorials. Policy includes coding standards, other expectations, copyright and IP ownership. Policy will be hosted on GitHub and/or web site.
3D ROI manager is a new functionality which may have advantages over the current 'stack of 2D ROIs' approach.
The random sampling sphere approach is a bit of a hack and leaves out parts of the image. A smarter way of sampling eigenvectors throughout the image would extend vectors from one face of the image stack to the other, sampling any point in the image, doing all directions then proceeding to another point, continuing until the result is stable.
Interesting technique to create a shape- and topology-preserving skeleton then classifying and dilating it to segment individual trabeculae.
Liu X, Sajda P, Saha P, Wehrli F, Bevill G, Keaveny T, et al. Complete volumetric decomposition of individual trabecular plates and rods and its morphological correlations with anisotropic elastic moduli in human trabecular bone. J. Bone Miner. Res. 2008;23:223-235. doi:10.1359/JBMR.071009
Saha PK, Chaudhuri BB, Dutta Majumder D. A new shape preserving parallel thinning algorithm for 3D digital images. Pattern Recognit. 1997;30:1939-1955. doi:10.1016/S0031-3203(97)00016-2
New version of BoneJ with improved packaging/installation.
Depends on: #31
Based on Development review, a refactored and expanded test infrastructure and test suites.
Depends on: #31
Maybe numbers shown in viewer or clickable branches, to allow relating to results in result table.
Possibly could use same backend as particle analyser 3D viewer / result table interactivity?
https://groups.google.com/d/topic/bonej-users-and-developers/Gukyfez5Gac/discussion
Is there any plans for BoneJ to support the Java8 version of Fiji? The older versions using Java6 have bugs and issues I am unable to get around, but I am very much in need of a plugin such as this.
Implementation of mesh-free estimation of SMI uses octant neighbourhood scanning, so could create an OctantScanner class that takes a LUT as input and returns a summary.
Ohser, J., Redenbach & Schladitz, K. 2009 Mesh Free Estimation of the Structure Model Index. Image Anal Stereol, 28, 179-185. http://www.wise-t.com/ias/article.php?id=251&year=2009&issue=11
Another octant-scanning method that may outperform surface mesh creation
Ohser J, Nagel W, Schladitz K (2009) Miles Formulae for Boolean Models Observed on Lattices. Image Anal Stereol 28: 77-92. http://www.wise-t.com/ias/article.php?id=242&year=2009&issue=6
Updated web site.
Depends on: #28
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.