Name | medialaxis3d JSON |
Version |
1.0.2
JSON |
| download |
home_page | None |
Summary | Module to perform 3D skeletonization using Medial Axis Transform |
upload_time | 2025-08-01 17:23:25 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
mat
skeletonization
3d
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# medialaxis3d
This package extends the [scikit-image](https://scikit-image.org/) function [medial_axis](https://scikit-image.org/docs/stable/api/skimage.morphology.html#skimage.morphology.medial_axis)
to the 3D case.
## Install
```bash
pip install medialaxis3d
```
### Dependencies
Automatically installed with `pip`:
- `numpy`
- `scipy`
- `cython`
Optional only for visualization
- `napari`
## Documentation
WIP
## Quickstart
Use it without returning the medial distance.
```Python
>>> import numpy as np
>>> import skimage as ski
>>> import medialaxis3d
>>> import napari
>>> rng = np.random.default_rng(1278)
>>> image = ski.data.binary_blobs(length = 128,
>>> blob_size_fraction = 0.2,
>>> n_dim = 3,
>>> volume_fraction = 0.6,
>>> rng = rng)
>>> skeleton = medialaxis3d.medial_axis_3d(image,
>>> return_distance = False,
>>> size = 8,
>>> rng = rng)
>>> viewer = napari.Viewer()
>>> viewer.add_image(image,
>>> rendering = "attenuated_mip",
>>> attenuation = 0.5,
>>> scale = [1, 1, 1])
>>> viewer.add_image(skeleton,
>>> interpolation3d = "nearest",
>>> colormap = "magenta",
>>> scale = [1, 1, 1])
>>> napari.run()
```
<img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist1.png" width="32%"/> <img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist2.png" width="32%"/> <img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist3.png" width="32%"/>
or use it to return the distance as well.
```Python
>>> import numpy as np
>>> import skimage as ski
>>> import medialaxis3d
>>> import napari
>>> rng = np.random.default_rng(1278)
>>> image = ski.data.binary_blobs(length = 128,
blob_size_fraction = 0.2,
n_dim = 3,
volume_fraction = 0.6,
rng = rng)
>>> skeleton, distance = medialaxis3d.medial_axis_3d(image,
>>> return_distance = True,
>>> size = 8,
>>> rng = rng)
>>> viewer = napari.Viewer()
>>> viewer.add_image(image,
>>> rendering = "attenuated_mip",
>>> attenuation = 0.5,
>>> scale = [1, 1, 1])
>>> viewer.add_image(skeleton*distance,
>>> interpolation3d = "nearest",
>>> colormap = "turbo",
>>> scale = [1, 1, 1])
>>> napari.run()
```
<img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist1.png" width="32%"/> <img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_dist2.png" width="32%"/> <img src="https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_dist3.png" width="32%"/>
Raw data
{
"_id": null,
"home_page": null,
"name": "medialaxis3d",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Giovanni Bocchi <giovanni.bocchi1@unimi.it>",
"keywords": "MAT, skeletonization, 3D",
"author": null,
"author_email": "Giovanni Bocchi <giovanni.bocchi1@unimi.it>",
"download_url": "https://files.pythonhosted.org/packages/9c/75/9ac550084d291c052aae2f864fca4fe4d7f1957d419f6faf49e0fdfeac45/medialaxis3d-1.0.2.tar.gz",
"platform": null,
"description": "# medialaxis3d\n\nThis package extends the [scikit-image](https://scikit-image.org/) function [medial_axis](https://scikit-image.org/docs/stable/api/skimage.morphology.html#skimage.morphology.medial_axis)\nto the 3D case.\n\n## Install\n\n```bash\npip install medialaxis3d\n```\n\n### Dependencies\nAutomatically installed with `pip`:\n\n- `numpy`\n- `scipy`\n- `cython`\n\nOptional only for visualization\n\n- `napari`\n\n## Documentation \n\nWIP\n\n## Quickstart\n\nUse it without returning the medial distance.\n\n```Python\n>>> import numpy as np\n>>> import skimage as ski\n>>> import medialaxis3d\n>>> import napari\n\n>>> rng = np.random.default_rng(1278)\n\n>>> image = ski.data.binary_blobs(length = 128,\n>>> blob_size_fraction = 0.2,\n>>> n_dim = 3,\n>>> volume_fraction = 0.6,\n>>> rng = rng)\n\n>>> skeleton = medialaxis3d.medial_axis_3d(image, \n>>> return_distance = False, \n>>> size = 8, \n>>> rng = rng)\n\n>>> viewer = napari.Viewer()\n>>> viewer.add_image(image, \n>>> rendering = \"attenuated_mip\", \n>>> attenuation = 0.5, \n>>> scale = [1, 1, 1])\n>>> viewer.add_image(skeleton, \n>>> interpolation3d = \"nearest\", \n>>> colormap = \"magenta\", \n>>> scale = [1, 1, 1])\n>>> napari.run()\n```\n\n<img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist1.png\" width=\"32%\"/> <img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist2.png\" width=\"32%\"/> <img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist3.png\" width=\"32%\"/>\n\nor use it to return the distance as well.\n\n```Python\n>>> import numpy as np\n>>> import skimage as ski\n>>> import medialaxis3d\n>>> import napari\n\n>>> rng = np.random.default_rng(1278)\n>>> image = ski.data.binary_blobs(length = 128,\n blob_size_fraction = 0.2,\n n_dim = 3,\n volume_fraction = 0.6,\n rng = rng)\n\n>>> skeleton, distance = medialaxis3d.medial_axis_3d(image, \n>>> return_distance = True, \n>>> size = 8, \n>>> rng = rng)\n\n>>> viewer = napari.Viewer()\n>>> viewer.add_image(image, \n>>> rendering = \"attenuated_mip\", \n>>> attenuation = 0.5, \n>>> scale = [1, 1, 1])\n>>> viewer.add_image(skeleton*distance, \n>>> interpolation3d = \"nearest\", \n>>> colormap = \"turbo\", \n>>> scale = [1, 1, 1])\n>>> napari.run()\n```\n\n<img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_nodist1.png\" width=\"32%\"/> <img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_dist2.png\" width=\"32%\"/> <img src=\"https://raw.githubusercontent.com/jb-sharp/medialaxis3d/main/screenshots/example_dist3.png\" width=\"32%\"/>\n",
"bugtrack_url": null,
"license": null,
"summary": "Module to perform 3D skeletonization using Medial Axis Transform",
"version": "1.0.2",
"project_urls": {
"Bug Reports": "https://github.com/jb-sharp/medialaxis3d/issues",
"Homepage": "https://github.com/jb-sharp/medialaxis3d",
"Source": "https://github.com/jb-sharp/medialaxis3d"
},
"split_keywords": [
"mat",
" skeletonization",
" 3d"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "987b932ed21941027c4b87ca04e645f042be76dd1205b170a563cf7162e941f4",
"md5": "d64cfd708880d9454cc8b2e85517bf89",
"sha256": "148dcdc5c5ecc0918d7221b4090f5f928e5690f662ea895d4fae628a0a37f4c2"
},
"downloads": -1,
"filename": "medialaxis3d-1.0.2-cp313-cp313-manylinux_2_39_x86_64.whl",
"has_sig": false,
"md5_digest": "d64cfd708880d9454cc8b2e85517bf89",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 278979,
"upload_time": "2025-08-01T17:23:23",
"upload_time_iso_8601": "2025-08-01T17:23:23.522008Z",
"url": "https://files.pythonhosted.org/packages/98/7b/932ed21941027c4b87ca04e645f042be76dd1205b170a563cf7162e941f4/medialaxis3d-1.0.2-cp313-cp313-manylinux_2_39_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9c759ac550084d291c052aae2f864fca4fe4d7f1957d419f6faf49e0fdfeac45",
"md5": "a623826776f044d4dc19d79c4c4929e7",
"sha256": "8a42ade4c45b02f53160c108d7292df3ae48e5003f252543e232b5fe19a94561"
},
"downloads": -1,
"filename": "medialaxis3d-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "a623826776f044d4dc19d79c4c4929e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 183806,
"upload_time": "2025-08-01T17:23:25",
"upload_time_iso_8601": "2025-08-01T17:23:25.631583Z",
"url": "https://files.pythonhosted.org/packages/9c/75/9ac550084d291c052aae2f864fca4fe4d7f1957d419f6faf49e0fdfeac45/medialaxis3d-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-01 17:23:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jb-sharp",
"github_project": "medialaxis3d",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "medialaxis3d"
}