Welcome to LazzyIzzi's GitHub Website.
The projects below fall into three categories:
- Java Libraries - Used for X-ray attenuation calculations, distance transforms, and user interface utilities.
- ImageJ plugins - Provide example user interfaces to the above libraries with an emphasis on improving quantitative analysis using computed tomography.
- Excel VBA projects - Workbooks and addins for X-ray calculations and running a car show.
All of my projects are covered by the MIT License. Feel free to use them in your projects. I hope that you find them useful.
All the Best,
LazzyIzzi
Questions, comments, bug reports? Contact
Lazzyizzi27@gmail.com.
Last Updated 7/22/2024
All libraries and plugins are compiled with Java8 to maintain consistency with legacy ImageJ.
Java Libraries
- MuMassCalculatorLib - A NIST-XCOM derived library for calculating photon photoelectric absorption, scatter and pair-production cross-sections between 1keV and 100GeV (Z≤100).
- MuMassCalculator is not a NIST product but most of the data within it were downloaded from the NIST XCOM database and are used with permission. It should be noted that NIST retains copyright on the XCOM data and reserves the right to charge for its use in the future. LazzyIzzi is not currently associated with NIST but was a guest researcher there many years ago. See the XCOM website for more information.
- Additional MuMassCalculatorLib methods include computing the bremsstrahlung output of a conventional x-ray source using the Kramers equation and methods for simulating parallel and fan beam sinograms by scanning digital images of linear attenuation using either mono or polychromatic x-rays.
- Click here for a brief tutorial on mass and linear attenuation.
- Click here to view MuMassCalculatorLib's JavaDocs.
- Click here to download MuMassCalculatorLib. Scroll down to the bottom of the linked page to download the jar file and/or source codes.
- Installation Developers- Download the jar file to your IDE's preferred location and add to your build path.
- Installation ImageJ- Place the jar file in the plugins folder and restart ImageJ. See the CT_Tools ImageJ plugins for MuMassCalculatorLib use examples.
- DistanceMapLib - A library for computing 2D and 3D Geodesic and Euclidean Distances. Both support physical dimensions and anisotropic pixels/voxels.
- This library also includes a geometry based simulation of mercury injection capillary pressure(MICP) measurements in a random porous network.
- Click here for a brief tutorial on Euclidean and geodesic transforms.
- Click here to view DistancMapLib's JavaDocs.
- Click here to download DistanceMapLib.
- Installation Developers- Download the jar file to your IDE's preferred location and add to your build path.
- Installation ImageJ- Place the jar file in the plugins folder and restart ImageJ. See the Flood_Tools ImageJ plugins for DistanceMapLib use examples.
- Point Functions - A library for random Point Function statistics.
- The library includes methods for Two-Point, Lineal Path, Chord Length distributions, and an experimental Pore Size distribution.
- The above methods call public methods like randomPointPair, bresenhamLine, getLine etc.
- Click here to view Point Function's JavaDocs.
- See the ImageJ plugins below for example plugins..
- Click here to download PointFunctions.jar.
- Installation ImageJ Developers- Download the jar file to your IDE's preferred location and add to your imageJ project build path.
- Installation ImageJ- Place the jar file in the plugins folder and restart ImageJ. See the Point Function plugins for use examples.
- Progress Bars - A class for creating and managing a window containing one or more progress bars.
- Click here to view Progress Bar's JavaDocs.
- Click here to download ProgressBars.jar.
- See the ProgressBars page for a use example.
- Installation ImageJ Developers- Download the jar file to your IDE's preferred location and add to your imageJ project build path.
- Installation ImageJ- Place the jar file in the plugins folder and restart ImageJ.
- ImageJ Addins - A library that currently contains only GenericDialogAddin, to make it easier to write interactive ImageJ Generic Dialogs.
- ImageJ Addins are intended to be used only in conjunction with ImageJ's GenericDialog classes. Add-Ins are not plugins. They do not extend ImageJ's classes. They do not have a user interface.
- ImageJ Addins make all of the methods of the generic dialog components available to the programmer, For example, the AddIn makes it easy to turn a numeric field red if the user's value is out of bounds or NaN.
- Allows the programmer to refer to dialog components by name rather than by its position in the dialog.
- Makes code more readable and easier to maintain.
- Click here to view ImageJAddins's JavaDocs.
- Click here for ImageJAddins examples.
- Click here to download ImageJAddins.jar.
- Installation ImageJ Developers- Download the jar file to your IDE's preferred location and add to your imageJ project build path.
- Installation ImageJ- Place the jar file in the plugins folder and restart ImageJ. See the AddIns examples or CT_Tools plugins for use examples.
Back to top
ImageJ Plugins
- CT_Tools - A collection of MuMassCalculatorLib based ImageJ plugins that together create a virtual CT system for creating, scanning, reconstructing, and evaluating digital X-ray images.
- X-ray Spectrum Plotter - Plots NIST-XCOM based mass attenuation spectra in cm2/gm of a material for total, photoelectric, elastic, inelastic, and pair-production from 1keV to 100GeV.
- X-ray Calculator - Reports interpolated attenuations at specific energies.
- Scanner Setup - A 1-D model that plots the X-ray intensity vs energy at key locations from source to detector. You can change the source energy, filtration, and detector composition and view the spectra and configuration metrics such as beam hardening, sample opacity etc. It provides guidance for setting up an actual scanner to minimize spectral artifacts.
- Material Tagger - Creates "Tag Images" by segmenting an image into its material components.
- Materials Editor - Manages the Image Tags data File.
- Image Projectors - Re-project images of linear attenuation or configure a virtual conventional X-ray source CT-scanner to create parallel or fan-beam sinograms. Be sure to review the Image Projectors page "Additional Information" for performance limitations.
- CT Recon ParallelBeam - Reconstructs a parallel-beam sinogram to help determine if the result met expectations.
- X-ray MuLin Lookup - Reports X-ray energie(s) that will produce a material's measured linear attenuation.
- X-ray Ratio Lookup - Reports X-ray energie(s) consistent with the measured attenuations of two different materials.
- Linearization Fitter - Interactively plots observed vs model sinograms attenuations calculated from a reconstructed and a tag image at a given X-ray energy. Reports 1-6 degree polynomial fits. The X-ray energy that gives the best fit is the effective energy for the measurement.
- Apply Linearization - Applies a selected polynomial to the sinogram used to reconstruct the observed reconstruction.
- Show_CT_Properties - Displays tables of scan, linearization, and reconstruction properties for images created by CT_Tools plugins.
- Set_Image_ScaleFactor - Sets a scale factor image property for images not created by CT_Tools plugins.
- Download and Installation: CT_Tools bundled with MuMassCalculator, GenericDialogAddins ImageJ_CT_ToolsBundle_Java8.jar to the ImageJ plugins folder.
- From the same location, Download Base_Recon.exe and place it in the plugins folder.
- Also download DefaultMaterials.csv. Create a "DialogData" folder in the ImageJ plugins folder and put DefaultMaterials.csv in that folder.
- Launch ImageJ.
- FloodTools - A collection of DistanceMapLib-based ImageJ plugins implement the distance transforms and model non-wetting invasion percolation. All methods support asymmetric pixels/voxel sizes and physical dimensions.
- Exact Euclidean - Exact Euclidean distance map of 2D and 3D segmented images using Danielsson's algorithm.
- Euclidean Spheres - Draw single and multiple Euclidean spheres.
- Geodesic Transform - Geodesic distances, tortuosity and shortest path plugins for 2D and 3D segmented images using distance propagation
- FloodFill 3D - A simple gray scale flooder.
- Porosity To Hybrid - Converts a porosity image to a hybrid porosity image.
- HybridFlood - Geometry based simulation of non-wetting imbibition in an image of a random porous medium.
- HybridFlood Search and Scan - Bisection Search to find the "Breakthrough" pore radius or "Breakthrough" porosity in an image of a random porous medium, or flooded volume by scanning at fixed radius steps.
- Add Pore Liner - Lines all resolved pores with a layer of unresolved porosity.
- Installation: Flood_Tools bundled with DistanceLib
- Download ImageJ_Flood_ToolsBundle_Java8.jar to the ImageJ/plugins folder.
- Launch ImageJ
- Point Functions - A collection of DistanceMapLib-based ImageJ plugins implement the distance transforms and model non-wetting invasion percolation. All methods support asymmetric pixels/voxel sizes and physical dimensions.
- Two-Point Correlation - probability that two points separated by a distance D will lie in the same image component.
- Lineal Path Function - probability that a line of length L will lie completely in the same image component.
- Chord Length Distribution - probability density of finding a chord of length L in the interval L±dL in t the selected image component.
- Pore Size Distribution - probability density of finding a pore of radius R in the interval R±dR in the selected component.
- Installation: Point Functions bundle
- Download ImageJ_PointFunctionsBundle.jar to the ImageJ/plugins folder.
- Launch ImageJ
Back to top
Excel VBA projects
Special Note: Downloading Excel add-ins and macro enabled workbooks can be dangerous due to the possibility of embedded malware. Newer versions of Excel provide significant protection. Please take appropriate precautions before enabling any downloaded Excel workbook.
- NIST_XCOM.xlam and NIST_XCOM.xlsm - An Excel Add-in(xlam) and Workbook(xlsm) for NIST-XCOM derived photon cross-sections and other X-ray calculations. The NIST XCOM database is used with permission. It should be noted that NIST retains copyright on the XCOM data and reserves the right to charge for its use in the future. See the XCOM website for more information.
- Click here to download NIST_XCOM.xlam
- Installation: Click here for NIST_XCOM.xlam and NIST_XCOM.xlsm installation instructions and usage information.
- Car Show Helper- An Excel application for managing car shows. A menu-driven record keeper for registration, classification, judging, and tally that maintains a ever-green contact list of show participants.
- Click here to download the CarShowHelper Workbook
- Click here for CarShowHelper usage information.
- Installation: After verifying that the VBA code in CarShowHelper satisfies your security requirements, open CarShowHelper with Excel and enable the contents(macros).
Back to top
1. Why libraries? The libraries contain no ImageJ
dependencies for better performance and can be used anywhere. Many
thanks to all who built the ImageJ UI to plug into.
2.
Simulating bremsstrahlung sinograms from a digital image requires
calculating the linear attenuation of each material in the image at
many different energies. Tags are unique integer values assigned to a
material and are used to create a look-up table of that material's
properties.