Implementation of a voxel-driven projection algorithm for 3D volume visualization and analysis.
- Imports multi-page TIFF stacks as 3D volumes
- Allows interactive ROI (Region of Interest) selection
- Supports volume slicing and visualization
- Volume interpolation along slices for better resolution
- Two-stage thresholding process:
- Pre-thresholding for initial filtering
- Binary thresholding using Otsu's method
 
- Morphological operations support (sphere structuring element)
- Configurable source-detector distance
- Adjustable rotation angles (phi, theta, psi)
- Interactive slice-by-slice volume viewing
- Animation support for rotating projections
- Slice-by-slice volume display
- Interactive pixel information
- Grayscale visualization
- Movie generation of rotating projections
git clone https://github.com/yourusername/voxel-driven-projection.git
cd voxel-driven-projection- MATLAB R2020a or later
- Image Processing Toolbox
- binary_vol_threshold.m: Applies a binary threshold to a volume.
- disp_movie.m: Displays a movie of projections of the volume.
- disp_vol_slices.m: Displays slices through the volume.
- import_tiff_stack.m: Imports a multi-page TIFF file as a volume.
- interp_along_slices.m: Interpolates along the image slices of a volume.
- pre_threshold.m: Applies a pre-threshold to a volume.
- proj_cb.m: Main program for projection of the volume.
- select_roi.m: Selects a region of interest (ROI) from the volume.
- test.m: Test script for the projection algorithm.
% Load and process a volume
vol = import_tiff_stack('sample.tif');
vol_roi = select_roi(vol);
vol_int = interp_along_slices(vol_roi, 2);
% Apply thresholding
vol_pre_th = pre_threshold(vol_int, 3400);
vol_bin = binary_vol_threshold(vol_pre_th, graythresh(vol_pre_th));
% Display projection
projection_cb(vol_bin, 500, 120, 0, 0, 1);