BoneJ is a plugin for bone image analysis in ImageJ. It provides free, open source tools for trabecular geometry and whole bone shape analysis.

BoneJ 1.x is now legacy software. BoneJ2 is available to download and install from its own ImageJ update site.


Trabecular bone thickness Development on BoneJ started for a number of practical and ethical reasons:


If you use BoneJ in your work, please cite:

Doube M, Kłosowski MM, Arganda-Carreras I, Cordeliéres F, Dougherty RP, Jackson J, Schmid B, Hutchinson JR, Shefelbine SJ. (2010) BoneJ: free and extensible bone image analysis in ImageJ. Bone 47:1076-9. doi: 10.1016/j.bone.2010.08.023

Remember to list the version numbers of BoneJ (Help > About Plugins... > BoneJ) and ImageJ (Help > About ImageJ) because these represent defined states of the programs, which can be looked up and examined thanks to Git tagging.

The green OA author manuscript is available here.

Who's citing BoneJ?

Install BoneJ

All users are encouraged to switch to BoneJ2, available from the ImageJ2 updater.

Legacy versions of BoneJ 1.x and its documentation will remain available here for reproducibility purposes

To install BoneJ, make sure you have a recent version of ImageJ and drag this link to BoneJ_.jar onto ImageJ, or save it in your ImageJ/plugins directory and refresh ImageJ's plugins with Help->Refresh Menus.

There is one important dependency - Benjamin Schmid's 3D Viewer. Installation is the same as for BoneJ; drag the link to the .jar file onto ImageJ or save the .jar in your ImageJ/plugins directory. Make sure to run ImageJ 3D Viewer, which will prompt you to install Java's 3D libraries if you don't already have them.

BoneJ1 was downloaded 50,932 times between March 2010 and May 2020, and its final version was 1.4.3 (8 August 2018).

For Trabeculae

Analyse Skeleton
Classify, count and measure skeleton branches and junctions. Based on Ignacio Arganda Carreras' AnalyzeSkeleton_.
Use the mean intercept length (MIL) method to determine degree of anisotropy.
Calculates the Euler characteristic of an image, and works out the connectivity density (Conn.D), which can be interpreted as trabecular number per mm3.
Ellipsoid Factor
Fits ellipsoids within the structure's geometry and computes a local Ellipsoid Factor classification basd on ellipsoid aspect ratios.
Fractal Count
Uses the box counting method to calculate fractal dimension.
Creates and optionally displays a 3D surface mesh and measures the surface area, to calculate bone surface (BS).
Prepares an image for connectivity analysis.
Skeletonise 3D
Find the skeleton of a structure using a topology-maintaining medial axis thinning algorithm implemented by Ignacio Arganda Carreras.
Structure Model Index
Calculates the structure model index (SMI), a measure of how rod- or plate-like trabeculae are. The user can choose between mesh-based (Hildebrand & Rüegsegger method, preferred) and voxel-based (SkyScan) structure dilation.
Optimise Threshold
Uses a histogram from whole stack (rather than the current slice) to autothreshold, and optionally attempts to choose a threshold that minimises connectivity.
Calculates the thickness of foreground and background to give trabecular thickness (Tb.Th) and separation (Tb.Sp). Based on Bob Dougherty's Local Thickness plugin.
Volume Fraction
Determines the proportion of the image volume that is foreground (BV/TV).

For Whole Bones

Fit Ellipsoid
Finds the best-fitting ellipsoid from a set of point ROI's in the ROI Manager.
Fit Sphere
Finds the best-fitting sphere from a set of point ROI's in the ROI Manager.
Moments 3D
Calculates the moments of inertia of a structure, such as a whole bone.
Neck Shaft Angle
Works out the neck-shaft angle and curvature of the femur.
Slice Geometry
Calculates cross-sectional parameters such as second moment of area and section modulus.

For Particles

Particle Analyser

Particle Analyser
Finds and measures particles in a 3D binary image stack. Draws interactive 3D graphical output. Installs under Plugins->Analyze->Particle Analyser. Particle Analyser is an experimental branch of the 3D Object Counter, which is being maintained at Fiji and on the Wiki.

Running in Batch Mode

BoneJ plugins are designed to be called from ImageJ macros, to make them easy to run on a whole directory of images. This is an example batch macro that measures BV/TV, Tb.N, Tb.Sp and Tb.Th on a directory of cropped, binary image stacks.

dir1 = getDirectory("Choose Source Directory ");
list = getFileList(dir1);
for (i=0; i<list.length; i++) {
     showProgress(i+1, list.length);
     title = getTitle();
     run("Volume Fraction", "start=1 end="+nSlices());
     run("Thickness", "thickness spacing");

The easiest way to modify this script is to record your desired sequence of menu commands with ImageJ's macro recorder (Plugins-Macros-Record), and copy-paste the new commands into the macro.

User Group

If you'd like to be kept up to date with news relating to BoneJ, please follow the BoneJ tag on

Archived user and developer messages are posted at the old Google group, which is closed to new users and messages.


BoneJ is in active development. If you'd like to help develop BoneJ or you just want to see the code, have a look at BoneJ at github. The Java source code is included in BoneJ_.jar, if you would like to see where your results come from. If you want to know the version of BoneJ you have, run Help > About Plugins > BoneJ.

Debugging and Feature Requests

If there's something that's broken:

  1. Make sure you have the latest BoneJ_.jar
  2. Make sure your Java and ImageJ installations are up to date
  3. Ensure you are using a recent ImageJ 3D Viewer, and that you have run the 3D Viewer to install Java's 3D libraries
  4. Read the BoneJ User Guide
  5. Search the old mailing list and the forum
  6. Use the power of Google, or other search engine
  7. Then, send a message to the ImageJ forum using the BoneJ tag describing what you're trying to do and what actually happened. Attach any error or exception messages to your forum posting.

Licences and Authorship

BoneJ is intended to be transparent and free. All the new code is Copyright Michael Doube and licensed under GNU General Public License version 3. Code incorporated in BoneJ has come from several sources. Use of BoneJ implies that you accept the terms of the licenses of all the individual plugins. Terms are generally not onerous, but it's worth checking them out so you know where you stand.

Plugin Author Licence
Fractal Count Per Christian Henden and Jens Bache-Wiig Public Domain
Skeletonize 3D
Analyze Skeleton
Ignacio Arganda-Carreras GNU GPL
3D Erode and Dilate Benjamin Schmid Public Domain
Local Thickness Bob Dougherty BSD Licence
JAMA Joe Hicklin, Cleve Moler and Peter Webb from The MathWorks, and Ronald F. Boisvert, Bruce Miller, Roldan Pozo and Karin Remington from NIST. Public Domain
3D Object Counter Fabrice Cordelières and Jonathan Jackson Public Domain

Valid XHTML 1.0 Strict Valid CSS! This file last modified 1840hrs 29 May 2020 © Michael Doube 2004-2022 :: Designed to be interoperable and standards-compliant