{"name":"napari-3d-counter","display_name":"3D Counter","visibility":"public","icon":"","categories":[],"schema_version":"0.2.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-3d-counter.make_count3d","title":"Make widget for counting in 3d","python_name":"napari_3d_counter._widget:Count3D","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-3d-counter.make_reconstruct_selected","title":"Make widget for reconstructing labels based on points","python_name":"napari_3d_counter._widget:reconstruct_selected","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-3d-counter.make_count3d","display_name":"Count 3D","autogenerate":false},{"command":"napari-3d-counter.make_reconstruct_selected","display_name":"Reconstruct Labels","autogenerate":true}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-3d-counter","version":"0.2.1","dynamic":null,"platform":null,"supported_platform":null,"summary":"A simple plugin for counting objects in 3D images","description":"# napari-3d-counter\n\n[![License GNU GPL v3.0](https://img.shields.io/pypi/l/napari-3d-counter.svg?color=green)](https://github.com/pnewstein/napari-3d-counter/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-3d-counter.svg?color=green)](https://pypi.org/project/napari-3d-counter)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-3d-counter.svg?color=green)](https://python.org)\n[![tests](https://github.com/pnewstein/napari-3d-counter/workflows/tests/badge.svg)](https://github.com/pnewstein/napari-3d-counter/actions)\n[![codecov](https://codecov.io/gh/pnewstein/napari-3d-counter/branch/main/graph/badge.svg)](https://codecov.io/gh/pnewstein/napari-3d-counter)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-3d-counter)](https://napari-hub.org/plugins/napari-3d-counter)\n\nA simple plugin for counting objects in 3D images\n\n![small](https://github.com/pnewstein/napari-3d-counter/assets/30813691/9d524c31-f23b-4b34-bcb6-ec3bb415cdae)\n\n----------------------------------\n\nThis [napari] plugin was generated with [Cookiecutter] using [@napari]'s [cookiecutter-napari-plugin] template.\n\n\n\n## Installation\n\nYou can install `napari-3d-counter` via [pip]:\n\n pip install napari-3d-counter\n\n\nTo install latest development version :\n\n pip install git+https://github.com/pnewstein/napari-3d-counter.git\n\n\n## Count3D Usage\n\nCount3D can be launched from the plugin menu\n\n### Adding a cell\n\nYou can add a cell of the currently selected cell type by clicking on the viewer.\n\n- Ensure that `Point adder` layer is selected\n- Ensure that `Add points` tool is selected\n- Click on the viewer where you would like the point to be added\n\nThe counter on the current cell type's button will be incremented\n\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/745d495e-1d18-43dd-aa5e-e9ecd835cdae\n\n\n### Changing cell type\n\nYou can change the currently selected cell type by clicking on that cell type's\nbutton. This change will be reflected in the GUI. Additionally, the keyboard\nshortcut for that cell type can be used. Keyboard shortcuts are listed on the\nbutton, and are \"q\", \"w\", \"e\", \"r\", \"t\", \"y\" by default\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/844d04ce-2795-4226-a98b-d5fe5a0b131e\n\n\n### Undo last added cell\n\nThe undo button (shortcut u) will remove last added cell, regardless of\ncell type\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/c04ca5e3-9f48-4dd5-89e5-a9866b353e03\n\n\n### Remove a particular cell\n\nTo remove a particular cell. Change to the layer containing the cell you would\nlike to remove. Then select the `select points` tool to select the points to\ndelete, then use `Delete selected points` to delete those points\n\nThis change will be reflected in the counts.\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/d0787cba-9b23-46d5-9cd3-21a4ad73460a\n\n\n\n### Change appearance of a cell type\n\nChanges to the name or edge color of a points layer will be reflected in the\npreviously added points, as well as the GUI. Features that are editable in this way include:\n - face color\n - edge color\n - symbol\n - size\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/6c495270-d4c4-473e-9091-8d2e0f8e2764\n\n\n### Save configuration\n\nUse the `Make launch_cell_count.py` button to create a python script that will\nlaunch napari with 3DCounter added to the dock and current cell type appearances\nalready loaded\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/3448652d-3064-4900-8bbe-e88d75667108\n\n\n### Save cells\n\nUse the \"Save cells\" button to save the cell coordinates for all layers into a\ncsv file\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/38b30f2a-cc83-46c2-8b19-4d44715c07c5\n\n\n### Load cells\n\nUse the \"Load cells\" button to load the cells from a csv file into new layers\n\n\nhttps://github.com/pnewstein/napari-3d-counter/assets/30813691/7df74688-85b1-4b61-aa51-dab179763832\n\n\n### Launch with saved configuration\n\nTo run Count3D with custom configuration, paste the following code into your napari ipython console\n\n```python\nfrom napari_3d_counter import Count3D, CellTypeConfig\n\ncell_type_config = [\n # The first celltype is called \"cq+eve+\" and should be green\n CellTypeConfig(\n name=\"cq+eve+\",\n color=\"g\"\n ),\n # The first celltype is called \"cq+eve-\" and should be cyan\n CellTypeConfig(\n name=\"cq+eve-\",\n color=\"c\"\n ),\n # The first celltype is called \"cq-eve+\" and should be red\n CellTypeConfig(\n name=\"cq-eve+\",\n color=\"r\"\n ),\n]\n# Launch the plugin with configuration\nviewer.window.add_dock_widget(Count3D(viewer, cell_type_config=cell_type_config))\n```\n\n## Contributing\n\nContributions are very welcome. Tests can be run with [tox], please ensure\nthe coverage at least stays the same before you submit a pull request.\n\n## License\n\nDistributed under the terms of the [GNU GPL v3.0] license,\n\"napari-3d-counter\" 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/pnewstein/napari-3d-counter/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/pnewstein/napari-3d-counter","download_url":null,"author":"Peter Newstein","author_email":"peternewstein@gmail.com","maintainer":null,"maintainer_email":null,"license":"GPL-3.0-or-later","classifier":["Development Status :: 4 - Beta","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: GNU General Public License v3 (GPLv3)","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","qtpy","pandas","scikit-image","matplotlib","napari <=0.4.19","tox ; extra == 'testing'","pytest ; extra == 'testing'","pytest-cov ; extra == 'testing'","pytest-qt ; extra == 'testing'","napari ; extra == 'testing'","pyqt5 ; extra == 'testing'"],"requires_python":">=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/pnewstein/napari-3d-counter/issues","Documentation, https://github.com/pnewstein/napari-3d-counter#README.md","Source Code, https://github.com/pnewstein/napari-3d-counter","User Support, https://github.com/pnewstein/napari-3d-counter/issues"],"provides_extra":["testing"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}