Skip to main content

No project description provided

Project description

Compute the thickness of a solid using Yezzi and Prince method described in the article “An Eulerian PDE Approach for Computing Tissue Thickness”, IEEE TRANSACTIONS ON MEDICAL IMAGING, VOL. 22, NO. 10, OCTOBER 2003. [1]

A C implementation by Rubén Cárdenes [2] helped me a lot writing this, especially the anisotropic part.

Requirements

Runtime: numpy, OpenMP (e.g., the libgomp1 package on debian).

Build time: a C compiler (e.g., gcc + libc6-dev packages on debian). This is needed in case you are using a platform for which we do not provide binaries (“wheels”) on PyPI.

Test time: scikit-image, scipy.

Installation instruction

Available on pypi. [3] Use pip: pip install pyezzi

Alternatively, clone the repository and build cython modules with pip install ..

Usage

Command line

This package provides a basic CLI. Example usage:

pyezzi /path/to/endo.mha /path/to/epi.mha /path/to/output.mha [--weights /path/to/thickness_weights.mha]

If can use the excellent uvx, you can download and launch it in a single command:

uvx pyezzi[cli] --help

Python API

Full API documentation is available on gitlabpages.inria.fr.

from pyezzi import compute_thickness_cardiac

thickness = compute_thickness_cardiac(endo, epi)

endo and epi are numpy binary masks. endo represents the “inside” boundary of the domain, e.g., the cardiac ventricular blood pool. epi represents the “outside” boundary of the domain, e.g., the cardiac ventricular epicardium.

A spacing parameter specifying the spacing between voxels along the axes can optionnaly be specified.

A weights parameter can be added to account for “holes” in the wall, cf “Cedilnik & Peyrat, Weighted tissue thickness, FIMH 2023”. [4]

Check out the included jupyter notebooks in the example folder for more details.

Contributions

We recommend using uv for project management and pre-commit to ensure code quality.

After cloning, use uv sync --frozen --all-groups --all-extras to install dev dependencies. This will set up a virtualenv in .venv that you can activate with source .venv/bin/activate. Tests can then be run with pytest test.

To build the cython extension modules in place, use python setup.py develop.

License

This work is licensed under the french CeCILL license. [5] You’re free to use and modify the code, but please cite the original paper and me.

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

pyezzi-0.8.3.post1.tar.gz (9.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyezzi-0.8.3.post1-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

pyezzi-0.8.3.post1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.38+ x86-64

pyezzi-0.8.3.post1-cp314-cp314-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyezzi-0.8.3.post1-cp314-cp314-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pyezzi-0.8.3.post1-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

pyezzi-0.8.3.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.38+ x86-64

pyezzi-0.8.3.post1-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyezzi-0.8.3.post1-cp313-cp313-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

pyezzi-0.8.3.post1-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

pyezzi-0.8.3.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.38+ x86-64

pyezzi-0.8.3.post1-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyezzi-0.8.3.post1-cp312-cp312-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

pyezzi-0.8.3.post1-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyezzi-0.8.3.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.38+ x86-64

pyezzi-0.8.3.post1-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyezzi-0.8.3.post1-cp311-cp311-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

pyezzi-0.8.3.post1-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

pyezzi-0.8.3.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.38+ x86-64

pyezzi-0.8.3.post1-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyezzi-0.8.3.post1-cp310-cp310-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file pyezzi-0.8.3.post1.tar.gz.

File metadata

  • Download URL: pyezzi-0.8.3.post1.tar.gz
  • Upload date:
  • Size: 9.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.11

File hashes

Hashes for pyezzi-0.8.3.post1.tar.gz
Algorithm Hash digest
SHA256 b31adc9a9a18639418e282dc104acc49696281245442bd797da656814feec8a3
MD5 c58bbfe96fff45e73a6c6ef3be6475ab
BLAKE2b-256 485e4ef23954d88b490da362e295c3eff9b76f32f80a68e1abbf8526a8f7534c

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f23ae776e3aec68adce392bd62f5fc7affa3ac0f47f66b8578442b37c27f41f1
MD5 149c203258597dd480d44ece1458ed53
BLAKE2b-256 c8ea707fef0b5a98df6009f03cd34ebc4053a33b4a4db961af82652dfcab9c87

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 855c672370b650726144b95e96351a4e6dc85cb4b28dc5ddeef65bf6ab40fbdc
MD5 0564c12a39ae895e376f24cb92417239
BLAKE2b-256 f413fb1cb168c948244af01634de4605d8729bb770ec95dbf323be69be5eccc7

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 575d7a4f69875b480a52d5ca9ae1c91a105cdad386fcebfbb6db7ea1574fb07b
MD5 76d9f426ba412dc1b5ca663da7a987b4
BLAKE2b-256 de1d4db56da61d33befe1985bfdaf7ec272ffe1da27e33f7e5dba1c374111dea

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bec4c89a5c659b9d779ad99eb586e125b83d96c89e8e7e4731501e5a63cf9a56
MD5 92d682a3ac0d8fbc83b75a41f6811fcc
BLAKE2b-256 875093c24cf81b1326aaea7d73a60355a00ff580ac869c29195f22c4c3846033

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 70f9912f01eb55518a6c9f09e24dca391d19d6061193421dc3641a99848972d0
MD5 fb09436f1a443a21269661e13526af03
BLAKE2b-256 9c5c4a4b1a9bcdd233e3fa01d62cd93d5fc35310e66ff22919b442bd2181f64d

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 29f15827929e26340a861616baa50535b58dcb789461e7181f244adac971692e
MD5 75994feb87d7b10d01c7cc570c689a58
BLAKE2b-256 9ac9a877cdb71fe619ed4c75fdea725ff45d36d731506cb24116a1506dbc8200

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ae9c874e1fc972885504fbe6168b4edb13a0e1aa555765adfc7b63940ba011d
MD5 d8ff003d74ce08b126dbcfa0ee0869b5
BLAKE2b-256 8110f5a1a255859d13130e2b0f4c566b4a37c25b670ab77e484f0d2b6381fe93

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f41dc4cc9d0f0a9dccf49f659eb1da0d639479034579911fea534eb405e52854
MD5 6efcbb6ae5eea153c353e28a60605626
BLAKE2b-256 3c387928c7a1a43a842bcc09fa623d07ea40c9429c703e4e38cfbf961a52762d

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4fa96872eaefe6e8267bcb2ee3435da2766f5e2f875873714d7dfb6991018185
MD5 48856780890ff8f53e3fa3728faaf6c6
BLAKE2b-256 2cce2cf8417e2b500bc902bfd82515b8ce199ba32a3c09296b1a13daa103e377

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 e7a9f719e6aefcaec859a5bad986dbec1f7ed5f61419961d6f792a3de05e0c98
MD5 58c08c75f4449f47ea1ac0122bee80e9
BLAKE2b-256 a3a5da5379cf8eb589b26bc87efbd9d765b0fe491d6b8385f0c9ec87232fa4c9

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 493b2de5f527ed8c2a9814cb8c71aa4f0f8882f7bd33f0f03596820d9cd3f4e5
MD5 1affdd7e9f7a2d04b7c8ee82504d4beb
BLAKE2b-256 d91e26d1a1f2b92d52e7a7b97a38c36013d92acc046608ab0251adb9ce31806f

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8857d6dca54905d29ada92b67e4fb886c5b3881329300b22aaebea747cf88bd0
MD5 7938d2a707e9f18caadd3558f31d74a2
BLAKE2b-256 8dbebc7ce34dc2debcecd57186037466ad65417d4f9132082d00732b78a35f47

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7488bbb7715fa2230bb6ca5add0fe0a9a0b8a2fce5a46f33d46bcfa4513e72e7
MD5 3a472f3fa004312a9886af82928ef26e
BLAKE2b-256 8f674336c2e9c7b3a2738afde7a1c07396770adb0b8172b82788dbdacb458646

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 ff412cd54ebc3bed9ee6b32dd6ef8866eba4d39bac758590680a86e0d234758e
MD5 f3557d5c849b2c0d532247b702c5e1dc
BLAKE2b-256 d84742455593420730d0a439dfb506b1b0dccb5612b8e0d959e8b8a4f87515e5

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d720c3a9d012c5f93692c8679ec53bd464bd514a909ec6f57694550196a5268
MD5 5b4e74f04f60e0a72548760e13a9ec09
BLAKE2b-256 46f641a0986e5722ea24b4c502914d22661a1dbf1db9f1d6420a15dfd429fbbb

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c02c23a76860f5afba781f2e91bd6a657e13660a4b1e0bfb75335632d220e25c
MD5 4faec53532a0abfbab759c1f4b228cf1
BLAKE2b-256 e2b388b2245b431485b681af9fdeb0e7acdd8921850139eb156eab8c60728d89

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9a173aa1b3f7bc2de83c7e0f003c72f0a965bc062e0da40e52c8c30d245b29a8
MD5 5974a4166cf13c48585db740f9c7bc00
BLAKE2b-256 011a999b8edba4d26f6b4c9a2b8995dd0cb7eb8c884b90ba3b28e7ab7ee7302c

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 fe157d777d1babc0590a60104779883644a9a11e76c09bd0b813047dcaa4dda8
MD5 e744b329d6804e9a159c7d2199b06ff2
BLAKE2b-256 3c35bf5cdfc864f59b64db5f9b95e2ed2310fa61f9dc8f82484e6c76a827660a

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 682b4759049d8b39d04790fb0fd608e11cbca08603ceb292060be57a35a8a64c
MD5 b9ac8a6bbc5ee79e0e6b9fdcadc2d182
BLAKE2b-256 dcca8c32973e26cb3ace41efa9d001181d59f857a7350978ce4b08ee3a6642cf

See more details on using hashes here.

File details

Details for the file pyezzi-0.8.3.post1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyezzi-0.8.3.post1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fa5ceb532fc543cb4ffa1c4043500ea28f7e8c15f6ed6f1921777a50c885c0bf
MD5 b8754b0bb047f98ef3a654ad3447dd20
BLAKE2b-256 419073624c56e3320db9d25124b1b9ffe4c6d7eb72d7b4c5f8a93cd7420ea6a4

See more details on using hashes here.

Supported by

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