[![PyPI](https://img.shields.io/pypi/v/pystack3d?label=pypi%20package)](https://pypi.org/project/pystack3d/)
[![Github](https://img.shields.io/badge/GitHub-GPL--3.0-informational)](https://github.com/CEA-MetroCarac/pystack3d)
[![Doc](https://img.shields.io/badge/%F0%9F%95%AE-docs-green.svg)](https://cea-metrocarac.github.io/pystack3d/doc/index.html)
<p align="center" width="100%">
<img align="center" width=400 src=https://cea-metrocarac.github.io/pystack3d/logo.png>
</p>
## Introduction
**PyStack3D** is a package dedicated to images correction intended -for instance- to FIB-SEM stack images postprocessing before image segmentation.
The ``pystack3d`` workflow includes the following process steps which can be activated or not and executed in any order:
- ``cropping`` to reduce the image field of view to a ROI (Region Of Interest)
- ``background removal`` to reduce from polynomial approximations artefacts issued for instance from shadowing, charging, ...
- ``intensity rescaling`` to homogenize the 'gray' intensity distribution between successive frames/slices
- ``registration`` to correct the images misalignment due to shifting, drift, rotation, ... during the images acquisition
- ``destriping`` to minimize artefacts like stripes that can appear in some image acquisition technics
- ``resampling`` to correct non uniform spatial steps
An additional step named `cropping_final` can be used to eliminate artefacts produced near the edges during the image processing or to select another ROI at the end.
<p align="center" width="100%">
<img align="center" width=80%" src=https://cea-metrocarac.github.io/pystack3d/pystack3d.png> <br>
<em>a) Synthetic case illustrating the defects to be removed by <b>PyStack3D</b>. b) Corrected stack. c) Ground truth.</em>
</p>
<p align="center" width="100%">
<img align="center" width=100%" src=https://cea-metrocarac.github.io/pystack3d/process_steps_real.png> <br>
<em>Illustration of a FIB-SEM image correction using some of the <b>PyStack3D</b> process steps.</em>
</p>
## Installation
```
pip install pystack3d
```
## Tests and examples execution
For tests and examples execution, the full ``pystack3d`` project has to be installed via ``git``:
```
git clone https://github.com/CEA-MetroCarac/pystack3d.git
cd [path_to_your_pystack3d_project]
```
Once the project has been cloned, the python environment has to be created and completed with the ``pytest`` package (for testing):
```
pip install .
pip install pytest
```
Then the tests and the examples can be executed as follows:
```
pytest
cd examples
python ex_synthetic_stack.py
python ex_real_stack.py
```
## Usage
Refer to the [PyStack3D documentation](https://cea-metrocarac.github.io/pystack3d/doc/getting_started.html).
## Contributing / Reporting an issue
Contributions and issue reporting are more than welcome!
Please read through [our Developers notes](https://cea-metrocarac.github.io/pystack3d/doc/dev_notes.html).
## Acknowledgements
This work, carried out on the CEA - Platform for Nanocharacterisation (PFNC), was supported by the “Recherche Technologique de Base” program of the French National Research Agency (ANR).
Warm thanks to the [JOSS](https://joss.theoj.org/) reviewers ([@kasasxav](https://github.com/kasasxav), [@sklumpe](https://github.com/sklumpe) and [@xiuliren](https://github.com/xiuliren)) and editor ([@mstimberg](https://github.com/mstimberg)) for their contributions to enhancing PyStack3D.
## Citations
In case you use the results of this code in an article, please cite:
- Quéméré P., David T. (2024). PyStack3D: A Python package for fast image stack correction. *Journal of Open Source Software. (submitted)*
additional citations for the <b>destriping</b>:
- Pavy K., Quéméré P. (2024). Pyvsnr 2.0.0. Zenodo. https://doi.org/10.5281/zenodo.10623640
- Fehrenbach J., Weiss P., Lorenzo C. (2012). Variational algorithms to remove stationary noise: applications to microscopy imaging. *IEEE Transactions on Image Processing 21.10 (2012): 4420-4430.*
additional citation for the <b>registration</b>:
- Thévenaz P., Ruttimann U.E., Unser M. (1998), A Pyramid Approach to Subpixel Registration Based on Intensity, *IEEE Transactions on Image Processing, vol. 7, no. 1, pp. 27-41, January 1998*
Raw data
{
"_id": null,
"home_page": null,
"name": "pystack3d",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>=3.8",
"maintainer_email": null,
"keywords": "PyStack3D, stack, images, FIB-SEM, processing, correction, cropping, background removal, registration, intensity rescaling, destriping, curtains, resampling, multithreading, multiprocessing",
"author": null,
"author_email": "Patrick Qu\u00e9m\u00e9r\u00e9 <patrick.quemere@cea.fr>",
"download_url": "https://files.pythonhosted.org/packages/0e/e7/5129cee9828426a2032c8382261ca3be34af7b753142865a9fc4d4a27ac1/pystack3d-2024.2.tar.gz",
"platform": null,
"description": "[![PyPI](https://img.shields.io/pypi/v/pystack3d?label=pypi%20package)](https://pypi.org/project/pystack3d/)\r\n[![Github](https://img.shields.io/badge/GitHub-GPL--3.0-informational)](https://github.com/CEA-MetroCarac/pystack3d)\r\n[![Doc](https://img.shields.io/badge/%F0%9F%95%AE-docs-green.svg)](https://cea-metrocarac.github.io/pystack3d/doc/index.html)\r\n\r\n\r\n<p align=\"center\" width=\"100%\">\r\n <img align=\"center\" width=400 src=https://cea-metrocarac.github.io/pystack3d/logo.png>\r\n</p>\r\n\r\n## Introduction\r\n\r\n**PyStack3D** is a package dedicated to images correction intended -for instance- to FIB-SEM stack images postprocessing before image segmentation.\r\n\r\nThe ``pystack3d`` workflow includes the following process steps which can be activated or not and executed in any order:\r\n\r\n- ``cropping`` to reduce the image field of view to a ROI (Region Of Interest)\r\n\r\n- ``background removal`` to reduce from polynomial approximations artefacts issued for instance from shadowing, charging, ...\r\n\r\n- ``intensity rescaling`` to homogenize the 'gray' intensity distribution between successive frames/slices\r\n\r\n- ``registration`` to correct the images misalignment due to shifting, drift, rotation, ... during the images acquisition\r\n\r\n- ``destriping`` to minimize artefacts like stripes that can appear in some image acquisition technics\r\n\r\n- ``resampling`` to correct non uniform spatial steps\r\n\r\nAn additional step named `cropping_final` can be used to eliminate artefacts produced near the edges during the image processing or to select another ROI at the end.\r\n\r\n<p align=\"center\" width=\"100%\">\r\n <img align=\"center\" width=80%\" src=https://cea-metrocarac.github.io/pystack3d/pystack3d.png> <br>\r\n <em>a) Synthetic case illustrating the defects to be removed by <b>PyStack3D</b>. b) Corrected stack. c) Ground truth.</em>\r\n</p>\r\n\r\n<p align=\"center\" width=\"100%\">\r\n <img align=\"center\" width=100%\" src=https://cea-metrocarac.github.io/pystack3d/process_steps_real.png> <br>\r\n <em>Illustration of a FIB-SEM image correction using some of the <b>PyStack3D</b> process steps.</em>\r\n</p>\r\n\r\n## Installation\r\n\r\n```\r\npip install pystack3d\r\n```\r\n\r\n## Tests and examples execution\r\n\r\nFor tests and examples execution, the full ``pystack3d`` project has to be installed via ``git``:\r\n\r\n```\r\n git clone https://github.com/CEA-MetroCarac/pystack3d.git\r\n cd [path_to_your_pystack3d_project]\r\n```\r\n\r\nOnce the project has been cloned, the python environment has to be created and completed with the ``pytest`` package (for testing):\r\n\r\n```\r\n pip install .\r\n pip install pytest\r\n```\r\n\r\nThen the tests and the examples can be executed as follows:\r\n\r\n```\r\n pytest\r\n cd examples\r\n python ex_synthetic_stack.py\r\n python ex_real_stack.py\r\n```\r\n\r\n## Usage\r\n\r\nRefer to the [PyStack3D documentation](https://cea-metrocarac.github.io/pystack3d/doc/getting_started.html).\r\n\r\n## Contributing / Reporting an issue\r\n\r\nContributions and issue reporting are more than welcome!\r\nPlease read through [our Developers notes](https://cea-metrocarac.github.io/pystack3d/doc/dev_notes.html).\r\n\r\n## Acknowledgements\r\n\r\nThis work, carried out on the CEA - Platform for Nanocharacterisation (PFNC), was supported by the \u201cRecherche Technologique de Base\u201d program of the French National Research Agency (ANR).\r\n\r\nWarm thanks to the [JOSS](https://joss.theoj.org/) reviewers ([@kasasxav](https://github.com/kasasxav), [@sklumpe](https://github.com/sklumpe) and [@xiuliren](https://github.com/xiuliren)) and editor ([@mstimberg](https://github.com/mstimberg)) for their contributions to enhancing PyStack3D.\r\n\r\n## Citations\r\n\r\nIn case you use the results of this code in an article, please cite:\r\n\r\n- Qu\u00e9m\u00e9r\u00e9 P., David T. (2024). PyStack3D: A Python package for fast image stack correction. *Journal of Open Source Software. (submitted)*\r\n\r\nadditional citations for the <b>destriping</b>:\r\n\r\n- Pavy K., Qu\u00e9m\u00e9r\u00e9 P. (2024). Pyvsnr 2.0.0. Zenodo. https://doi.org/10.5281/zenodo.10623640\r\n\r\n- Fehrenbach J., Weiss P., Lorenzo C. (2012). Variational algorithms to remove stationary noise: applications to microscopy imaging. *IEEE Transactions on Image Processing 21.10 (2012): 4420-4430.*\r\n\r\nadditional citation for the <b>registration</b>:\r\n\r\n- Th\u00e9venaz P., Ruttimann U.E., Unser M. (1998), A Pyramid Approach to Subpixel Registration Based on Intensity, *IEEE Transactions on Image Processing, vol. 7, no. 1, pp. 27-41, January 1998*\r\n",
"bugtrack_url": null,
"license": "GPL v3",
"summary": "Pystack3D: A Python package for fast image stack correction",
"version": "2024.2",
"project_urls": {
"Documentation": "https://cea-metrocarac.github.io/pystack3d/doc/index.html",
"Homepage": "https://github.dev/CEA-MetroCarac/pystack3d"
},
"split_keywords": [
"pystack3d",
" stack",
" images",
" fib-sem",
" processing",
" correction",
" cropping",
" background removal",
" registration",
" intensity rescaling",
" destriping",
" curtains",
" resampling",
" multithreading",
" multiprocessing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05b980be3ab696ccff2533913ff68951d68d7590800e7ea57b1b6bfb175500a7",
"md5": "67c4db0d454ac2034ae5daff3994d566",
"sha256": "991b7c589b981df07aecf6ffbb3bcfc322a9b9faefd6c1d59d309fbba946ea17"
},
"downloads": -1,
"filename": "pystack3d-2024.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "67c4db0d454ac2034ae5daff3994d566",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.12,>=3.8",
"size": 51802,
"upload_time": "2024-09-20T08:53:18",
"upload_time_iso_8601": "2024-09-20T08:53:18.874171Z",
"url": "https://files.pythonhosted.org/packages/05/b9/80be3ab696ccff2533913ff68951d68d7590800e7ea57b1b6bfb175500a7/pystack3d-2024.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0ee75129cee9828426a2032c8382261ca3be34af7b753142865a9fc4d4a27ac1",
"md5": "313fa74db4154470d41818aac7812854",
"sha256": "5ffc7e226f367d1b3f0a4c903c0e36e9fbe5e31e3008597b51781617eadfe013"
},
"downloads": -1,
"filename": "pystack3d-2024.2.tar.gz",
"has_sig": false,
"md5_digest": "313fa74db4154470d41818aac7812854",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>=3.8",
"size": 45571,
"upload_time": "2024-09-20T08:53:20",
"upload_time_iso_8601": "2024-09-20T08:53:20.282292Z",
"url": "https://files.pythonhosted.org/packages/0e/e7/5129cee9828426a2032c8382261ca3be34af7b753142865a9fc4d4a27ac1/pystack3d-2024.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-20 08:53:20",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pystack3d"
}