Distance Transforms

DistanceTransforms.jl and distance_transforms provides efficient, GPU-accelerated, distance transform operations for arrays in both Julia and Python. Distance transforms are essential in computer vision, image processing, and machine learning tasks.

Example of a distance transform applied to various shapes

Features

Feature Description
๐Ÿš€ High Performance Optimized algorithms for CPU and GPU
๐Ÿงต Multi-threading Parallel processing on CPU
๐Ÿ–ฅ๏ธ GPU Acceleration Support for NVIDIA (CUDA), AMD (ROCm), Apple (Metal), and Intel (oneAPI)
๐Ÿ Python Integration Full Python support via distance_transforms
๐Ÿ“ Versatile Dimensions Works with 1D, 2D, and 3D arrays
๐Ÿ“š Well Documented Comprehensive guides and examples

Why This Library?

Distance Transforms ImageMorphology.jl SciPy
Fast Distance Transform โœ…โœ… โœ… โœ…
CPU Single-Threaded Support โœ… โœ… โœ…
CPU Multi-Threaded Support โœ… โœ… โŒ
NVIDIA/CUDA Support โœ… โŒ โŒ
AMD/ROCM Support โœ… โŒ โŒ
Apple/Metal Support โœ… โŒ โŒ
Intel/oneAPI Support โœ… โŒ โŒ
Python Integration โœ… โŒ โœ…

Choose Your Language

Julia

using DistanceTransforms
arr = rand([0, 1], 10, 10)
result = transform(boolean_indicator(arr))

Get started with Julia โ†’

Python

import numpy as np
from py_distance_transforms import transform
arr = np.random.choice([0, 1], size=(10, 10)).astype(np.float32)
result = transform(arr)

Get started with Python โ†’

Installation

Julia

using Pkg
Pkg.add("DistanceTransforms")

Python

pip install py_distance_transforms

Citation

If you use DistanceTransforms in your research, please cite:

@software{DistanceTransforms,
  author = {Black, Dale and Contributors},
  title = {DistanceTransforms: Fast Distance Transforms for Julia and Python},
  url = {https://github.com/Dale-Black/DistanceTransforms.jl},
  year = {2023}
}

License

DistanceTransforms is available under the MIT License.