email ericbarnhill at protonmail dot ch


Java Volumetric Convolution Library (JVCL) 10.5281/zenodo.47668

The Java Volumetric Convolution Library (JVCL) aims to create optimised code design and performance for image processing convolution operations in Java. Repository at GitHub.

Java ArrayMath 10.5281/zenodo.47465

ArrayMath was designed to create fluid coding and optimised processing of element-wise array operations with emphasis on support for 3D volumes and complex numbers. The motivation was to support Java-based code design for complex-valued 3D medical image volumes. Repository at GitHub.

Barnhill ImageJ Toolkit 10.5281/zenodo.47466

This is a collection of open source tools for ImageJ workflow. Github here . I add to the toolkit occasionally over time, so far it contains:

Custom Legend Design a legend in an independent window using a LUT of your choice and to your own specifications. This plugin is an extension of the Calibration Bar functionality.

Selection To Indices Converts a 2D ImageJ ROI to index numbers. Enables quick transferring of an ImageJ selection to a Matlab index vector.

Indices To Selection Converts a Matlab index vector to an ImageJ ROI. Note that the ROI will be a cloud of independent points.

False Discovery Rate Testing Enables pixel-wise statistical testing, with False Discovery Rate (FDR) control of Family-Wise Error Rate (FWER), without leaving the ImageJ program.

Updated Miji Script This revision to Miji.m removes a bug that arises when any additional call is made to javaaddpath after invoking Miji. It has been accepted for inclusion in Fiji but I also include it in my kit for those who do not want to install Fiji afresh. The user must call MIJ=Miji; instead of just Miji .

MIJ Open Image This script allows Matlab objects of larger than 3 dimensions to automatically open in Fiji.


PhaseTools is the first freely available application for real-time, fully 4D phase unwrapping. It runs its own GUI interface on the ImageJ platform and comes with sample data and tutorial.

If you use PhaseTools please cite this paper.

Because it was in the published paper and still gets a lot of hits, the old ZIP link is preserved here. However the project has been migrated to GitHub. I am going to add some tweaks before I issue a formal release.

Other ImageJ Unwrapping Tools

Unwrapping Algorithms by Miguel Arevalillo Herraez

I have implemented two published algorithms by University of Valencia faculty Dr. Miguel Arevalillo-Herraez as open source ImageJ plugins.

Best Path Reliability Sort Unwrapping Algorithm

This algorithm rates pixels by reliability, then unwraps along a discontinuous path. I have implemented both 2-D and 3-D forms of the algorithm and added a dialog box to allow the user to adjust the phase interval that constitutes a break. I have also altered the algorithm slightly to eliminate spikes on boundary slices and mask boundaries. ZIP link here.

Iso-Phase Unwrapping Algorithm

This algorithm decomposes the image based on a partitioning scheme. I have added a dialog box allowing the user to choose the partition, the ability to unwrap stacks of 2D images, and also to view images from the various stages of the decomposition to analyse its performance. ZIP link here.

Matlab Scripts

CUNWRAP phase unwrapping in 3D and 4D

These scripts implement Constantini's network-programming phase unwrapping algorithm in 3D and 4D. The Matlab Optimization Toolbox is required. The 4D is only feasible on small images.

CUNWRAP3D: Code link.

CUNWRAP4D: Code link.