{"name":"napari-cupy-image-processing","display_name":"napari-cupy-image-processing","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"gaussian_filter","python_name":"napari_cupy_image_processing._cupy_image_processing:gaussian_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"gaussian_laplace","python_name":"napari_cupy_image_processing._cupy_image_processing:gaussian_laplace","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"median_filter","python_name":"napari_cupy_image_processing._cupy_image_processing:median_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"percentile_filter","python_name":"napari_cupy_image_processing._cupy_image_processing:percentile_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"white_tophat","python_name":"napari_cupy_image_processing._cupy_image_processing:white_tophat","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"morphological_gradient","python_name":"napari_cupy_image_processing._cupy_image_processing:morphological_gradient","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"morphological_laplace","python_name":"napari_cupy_image_processing._cupy_image_processing:morphological_laplace","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"wiener","python_name":"napari_cupy_image_processing._cupy_image_processing:wiener","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"threshold_otsu","python_name":"napari_cupy_image_processing._cupy_image_processing:threshold_otsu","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"binary_fill_holes","python_name":"napari_cupy_image_processing._cupy_image_processing:binary_fill_holes","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"label","python_name":"napari_cupy_image_processing._cupy_image_processing:label","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"black_tophat","python_name":"napari_cupy_image_processing._cupy_image_processing:black_tophat","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"minimum_filter","python_name":"napari_cupy_image_processing._cupy_image_processing:minimum_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"maximum_filter","python_name":"napari_cupy_image_processing._cupy_image_processing:maximum_filter","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"binary_closing","python_name":"napari_cupy_image_processing._cupy_image_processing:binary_closing","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"binary_erosion","python_name":"napari_cupy_image_processing._cupy_image_processing:binary_erosion","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"binary_opening","python_name":"napari_cupy_image_processing._cupy_image_processing:binary_opening","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"binary_dilation","python_name":"napari_cupy_image_processing._cupy_image_processing:binary_dilation","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-cupy-image-processing.napari_experimental_provide_function","title":"measurements","python_name":"napari_cupy_image_processing._cupy_image_processing:measurements","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"gaussian_filter","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"gaussian_laplace","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"median_filter","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"percentile_filter","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"white_tophat","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"morphological_gradient","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"morphological_laplace","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"wiener","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"threshold_otsu","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"binary_fill_holes","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"label","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"black_tophat","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"minimum_filter","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"maximum_filter","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"binary_closing","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"binary_erosion","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"binary_opening","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"binary_dilation","autogenerate":true},{"command":"napari-cupy-image-processing.napari_experimental_provide_function","display_name":"measurements","autogenerate":true}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-cupy-image-processing","version":"0.4.1","dynamic":null,"platform":null,"supported_platform":null,"summary":"GPU-accelerated image processing using CUDA","description":"# napari-cupy-image-processing\n\n[![License](https://img.shields.io/pypi/l/napari-cupy-image-processing.svg?color=green)](https://github.com/haesleinhuepf/napari-cupy-image-processing/raw/master/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-cupy-image-processing.svg?color=green)](https://pypi.org/project/napari-cupy-image-processing)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-cupy-image-processing.svg?color=green)](https://python.org)\n[![tests](https://github.com/haesleinhuepf/napari-cupy-image-processing/workflows/tests/badge.svg)](https://github.com/haesleinhuepf/napari-cupy-image-processing/actions)\n[![codecov](https://codecov.io/gh/haesleinhuepf/napari-cupy-image-processing/branch/master/graph/badge.svg)](https://codecov.io/gh/haesleinhuepf/napari-cupy-image-processing)\n[![Development Status](https://img.shields.io/pypi/status/napari-cupy-image-processing.svg)](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-cupy-image-processing)](https://napari-hub.org/plugins/napari-cupy-image-processing)\n\n\nGPU-accelerated image processing using [cupy](https://cupy.dev) and [CUDA](https://en.wikipedia.org/wiki/CUDA)\n\n## Usage\n\nThis napari plugin adds some menu entries to the Tools menu. You can recognize them with their suffix `(n-cupy)` in brackets.\nFurthermore, it can be used from the [napari-assistant](https://www.napari-hub.org/plugins/napari-assistant) graphical user interface. \nTherefore, just click the menu `Tools > Utilities > Assistant (na)` or run `naparia` from the command line.\n\n![img.png](https://github.com/haesleinhuepf/napari-cupy-image-processing/raw/main/docs/screenshot-with-tools-menu.png)\n\nYou can also call operations from python, e.g. as shown in this [demo notebook](https://github.com/haesleinhuepf/napari-cupy-image-processing/raw/main/docs/demo.ipynb).\n\n## Installation\n\nYou can install `napari-cupy-image-processing` using conda:\n\n mamba install -c conda-forge cupy cudatoolkit=11.2 napari-cupy-image-processing\n\n## Troubleshooting installation\n\nIn case of issues, follow the [instructions for installing cupy](https://docs.cupy.dev/en/stable/install.html#installing-cupy-from-conda-forge). \n\nA more detailed example for installation (change 11.2 to your desired CUDA version):\n```\nmamba create --name cupy_p39 python=3.9 \nconda activate cupy_p39\n```\nAnd then:\n```\nmamba install -c conda-forge cupy cudatoolkit=11.2 napari-cupy-image-processing\n```\n\n## Contributing\n\nContributions are very welcome. Adding [cupy ndimage](https://docs.cupy.dev/en/stable/reference/ndimage.html) functions is quite easy as you can see in the \n[implementation of the current operations](https://github.com/haesleinhuepf/napari-cupy-image-processing/blob/main/napari_cupy_image_processing/_cupy_image_processing.py#L48). \nIf you need another function in napari, just send a PR. Please make sure the tests pass locally before submitting a PR.\n\n```\npip install pytest-cov pytest-qt\npytest --cov=napari_cupy_image_processing\n```\n\nThis [napari] plugin was generated with [Cookiecutter] using with [@napari]'s [cookiecutter-napari-plugin] template.\n\n## License\n\nDistributed under the terms of the [MIT] license,\n\"napari-cupy-image-processing\" is free and open source software\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[napari]: https://github.com/napari/napari\n[Cookiecutter]: https://github.com/audreyr/cookiecutter\n[@napari]: https://github.com/napari\n[MIT]: http://opensource.org/licenses/MIT\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\n[GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt\n[GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt\n[Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0\n[Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt\n[cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin\n\n[file an issue]: https://github.com/haesleinhuepf/napari-cupy-image-processing/issues\n\n[napari]: https://github.com/napari/napari\n[tox]: https://tox.readthedocs.io/en/latest/\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/haesleinhuepf/napari-cupy-image-processing","download_url":null,"author":"Robert Haase","author_email":"robert.haase@tu-dresden.de","maintainer":null,"maintainer_email":null,"license":"MIT","classifier":["Development Status :: 3 - Alpha","Intended Audience :: Science/Research","Framework :: napari","Topic :: Scientific/Engineering :: Image Processing","Topic :: Scientific/Engineering :: Information Analysis","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Operating System :: OS Independent","License :: OSI Approved :: MIT License"],"requires_dist":["napari-plugin-engine >=0.1.4","numpy","toolz","cupy","napari-tools-menu","scikit-image","napari-time-slicer >=0.4.8","napari-skimage-regionprops","napari-assistant","stackview >=0.3.2"],"requires_python":">=3.7","requires_external":null,"project_url":["Bug Tracker, https://github.com/haesleinhuepf/napari-cupy-image-processing/issues","Documentation, https://github.com/haesleinhuepf/napari-cupy-image-processing#README.md","Source Code, https://github.com/haesleinhuepf/napari-cupy-image-processing","User Support, https://github.com/haesleinhuepf/napari-cupy-image-processing/issues"],"provides_extra":null,"provides_dist":null,"obsoletes_dist":null},"npe1_shim":true}