This function computes Euclidean distance transform for 3D binary image with non-trivial aspect ratio (i.e. anisotropic pixels). The algorithm uses fast optimized line-scans and is actually faster than MATLAB's BWDIST implementation of search on optimized kd-tree for many cases. It also uses cell-array representation for internal data, and thus is less demanding to physical memory.
If you use this function in your research or a paper, you can cite it as follows:
Y. Mishchenko (2015) A fast algorithm for computation of discrete Euclidean distance transform in three or more dimensions on vector processing architectures. Signal, Image and Video Processing, 9(1), 19-27.
Yuriy Mishchenko (2023). 3D Euclidean Distance Transform for Variable Data Aspect Ratio (https://www.mathworks.com/matlabcentral/fileexchange/15455-3d-euclidean-distance-transform-for-variable-data-aspect-ratio), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- AI, Data Science, and Statistics > Statistics and Machine Learning Toolbox > Cluster Analysis > Nearest Neighbors >
- Image Processing and Computer Vision > Image Processing Toolbox > Image Segmentation and Analysis > Region and Image Properties >
- MATLAB > Graphics > Formatting and Annotation > Axes Appearance > Aspect Ratios and Layout >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Added citation information as many people had requested.
Replaces bwdistsc with the earlier introduced experimental bwdistX, which uses forward-backward version of algorithm, improving speed up to 10x vs native bwdist
Adds experimental bwdistX for user testing, which uses forward-backward version of algorithm and is up to 10x faster than native bwdist
Included bwdistsc1 that allows restricting calculations out to a certain distance, which may accelerate calculations in some cases, see readme. Also contains a fix for Matlab version detection routine, thanks to Tudor Dima.
The code had been improved to better handle certain type of problems (cavities). It also contains fix allowing use of function with plain 2D images.