Skip to main content

Multi-Label Anisotropic Euclidean Distance Transform 3D

Project description

## Python Instructions for MLAEDT-3D

Compute the Euclidean Distance Transform of a 1d, 2d, or 3d labeled image containing multiple labels in a single pass with support for anisotropic dimensions.

### Python Installation

*Requires a C++ compiler*

The installation process depends on `edt.cpp` for the Python bindings derived from `edt.pyx`. `edt.hpp` contains the algorithm implementation.

```bash
pip install numpy
pip install edt
```

### Recompiling `edt.pyx`

*Requires Cython and a C++ compiler*

```bash
cd python
cython -3 --cplus edt.pyx # generates edt.cpp
python setup.py develop # compiles edt.cpp and edt.hpp
# together into a shared binary e.g. edt.cpython-36m-x86_64-linux-gnu.so
```

### Python Usage

Consult `help(edt)` after importing. The edt module contains: `edt` and `edtsq` which compute the euclidean and squared euclidean distance respectively. Both functions select dimension based on the shape of the numpy array fed to them. 1D, 2D, and 3D volumes are supported. 1D processing is extremely fast. Numpy boolean arrays are handled specially for faster processing.

If for some reason you'd like to use a specific 'D' function, `edt1d`, `edt1dsq`, `edt2d`, `edt2dsq`, `edt3d`, and `edt3dsq` are available.

The three optional parameters are `anisotropy`, `black_border`, and `order`. Anisotropy is used to correct for distortions in voxel space, e.g. if X and Y were acquired with a microscope, but the Z axis was cut more corsely.

`black_border` allows you to specify that the edges of the image should be considered in computing pixel distances (it's also slightly faster).

`order` allows the programmer to determine how the underlying array should be interpreted. `'C'` (C-order, XYZ, row-major) and `'F'` (Fortran-order, ZYX, column major) are supported. `'C'` order is the default.

`parallel` controls the number of threads. Set it <= 0 to automatically determine your CPU count.

```python
import edt
import numpy as np

# e.g. 6nm x 6nm x 30nm for the S1 dataset by Kasthuri et al., 2014
labels = np.ones(shape=(512, 512, 512), dtype=np.uint32, order='F')
dt = edt.edt(labels, anisotropy=(6, 6, 30), black_border=True, order='F', parallel=1)
```



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edt-1.3.0.tar.gz (170.4 kB view details)

Uploaded Source

Built Distributions

edt-1.3.0-cp37-cp37m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7m

edt-1.3.0-cp36-cp36m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.6m

edt-1.3.0-cp35-cp35m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.5m

edt-1.3.0-cp27-cp27m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 2.7m

File details

Details for the file edt-1.3.0.tar.gz.

File metadata

  • Download URL: edt-1.3.0.tar.gz
  • Upload date:
  • Size: 170.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for edt-1.3.0.tar.gz
Algorithm Hash digest
SHA256 36da204558b988aa5407204912465077f0aa27f37f1b814ad4b6c9e3f8342bdd
MD5 614e7264312f4dc0a661bb50dfbee052
BLAKE2b-256 7b02f79b91dc468849026e576e68ff3202efd6feba38ebc885ca765f72693172

See more details on using hashes here.

File details

Details for the file edt-1.3.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: edt-1.3.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for edt-1.3.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d3748be55dc43f4770176db88c12d494a844082e94e04989c00f54ed35a99bbc
MD5 92b1faec118d87cb602cfc1abc98f072
BLAKE2b-256 671f26dac9870290b595e55c442ff4f7213bc6e05a5674bd41eab6b4bcb258c4

See more details on using hashes here.

File details

Details for the file edt-1.3.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: edt-1.3.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for edt-1.3.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 bbc1686e008810962c33733244602c4f204852fa111a29c5ba70c4b99e4a28bc
MD5 0c355cc1560349a82630dfb3bb47c87d
BLAKE2b-256 cbb830b8a7e98ee7b27c4a4075fad90af8638e9ed4f32b1118ca98aed1050474

See more details on using hashes here.

File details

Details for the file edt-1.3.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: edt-1.3.0-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for edt-1.3.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b9c6f054662cb46da1f5155013852d77655a983f57ee04e145d93ecb29b3bcbc
MD5 eebdf6035ac41940d8df8297e2e810d1
BLAKE2b-256 63b205544599f500196c67ef2a3121a2b0bb98175016204ecdf3b83fa4404bf7

See more details on using hashes here.

File details

Details for the file edt-1.3.0-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

  • Download URL: edt-1.3.0-cp27-cp27m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 2.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for edt-1.3.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6d0dcd61c8b85a47f329f2cb6dacbb1f6a34d143e81ea99db18f0163f16c2c79
MD5 f7ac471193e40e95f5b81dffd943ce87
BLAKE2b-256 f353842f1d207554394602b779735e3d1bf544c820162faf31ba4c91f6398c02

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page