{"name":"napari-tree-rings","display_name":"Napari Tree Rings","visibility":"public","icon":"","categories":["Annotation","Segmentation","Acquisition"],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-tree-rings.make_sample_data","title":"Load sample data from Napari Tree Rings","python_name":"napari_tree_rings._sample_data:make_sample_data","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-tree-rings.segment_trunk_widget","title":"Segment Trunk","python_name":"napari_tree_rings._widget:SegmentTrunkWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-tree-rings.segment_trunk_widget","display_name":"Segment Trunk","autogenerate":false}],"sample_data":[{"command":"napari-tree-rings.make_sample_data","key":"unique_id.1","display_name":"Napari Tree Rings"}],"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-tree-rings","version":"0.1.5","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A tool to delineate bark, pith and xylem annual rings and to measure their property parameters on circular sections of tree trunks.","description":"# napari-tree-rings\n\n[![License MIT](https://img.shields.io/pypi/l/napari-tree-rings.svg?color=green)](https://github.com/MontpellierRessourcesImagerie/napari-tree-rings/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-tree-rings.svg?color=green)](https://pypi.org/project/napari-tree-rings)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-tree-rings.svg?color=green)](https://python.org)\n[![tests](https://github.com/MontpellierRessourcesImagerie/napari-tree-rings/workflows/tests/badge.svg)](https://github.com/MontpellierRessourcesImagerie/napari-tree-rings/actions)\n[![codecov](https://codecov.io/gh/MontpellierRessourcesImagerie/napari-tree-rings/branch/main/graph/badge.svg)](https://codecov.io/gh/MontpellierRessourcesImagerie/napari-tree-rings)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-tree-rings)](https://napari-hub.org/plugins/napari-tree-rings)\n\nA tool to delineate bark, pith and xylem annual rings and to measure their property parameters on circular sections of tree trunks.\n\n----------------------------------\n\nThis [napari] plugin was generated with [copier] using the [napari-plugin-template].\n\n<!--\nDon't miss the full getting started guide to set up your new package:\nhttps://github.com/napari/napari-plugin-template#getting-started\n\nand review the napari docs for plugin developers:\nhttps://napari.org/stable/plugins/index.html\n-->\n\n## How to use it?\nUsers can export the segmentation findings and estimate bark, ring borders, and pith with ease using the Napari Tree Rings plugin:\n- Run button on the Segment Rings tag: find the rings in just one image.\n- Run Batch button on the Batch Segment Trunk tag: runs all the images in the folder. \n\nUsers can also modify certain parameters, including the batch size. The interface's goal is to assist biologists without having programming expertise by being user-friendly.\n\nIf accessible, the unit of micrometres will be used to determine the parameters; if not, pixels will be used. The calculated parameters are made up of:\n- bbox: The bounding box’s minimum and maximum coordinates on the horizontal and vertical axes.\n- perimeter: perimeter of the region, measured as the length of the contour.\n- area: Region’s area.\n- area_convex: Area of the convex hull image, which is the smallest convex polygon enclosing the region.\n- axis_major_length: Length of the ring boundaries’ major axis.\n- axis_minor_length: Length of the ring boundaries’ minor axis.\n- eccentricity: The eccentricity, which ranges from 0 to 1, is the focal distance divided by the major axis length. When the eccentricity is zero, the region becomes a circle.\n- feret_diameter_max: The maximum Feret's diameter, which is the largest distance between points across the convex hull.\n- orientation: Angle between the major axis and the vertical axis, measured in radians and ranging from -pi/2 to pi/2 anticlockwise.\n- area_growth: The area between the two ring boundaries that experiences growth over a year (except the cases of pith and bark).\n\n- For more details, check the [detailed documentation](https://montpellierressourcesimagerie.github.io/napari-tree-rings).\n\n## Installation\n\nYou can install `napari-tree-rings` via [pip]:\n\n    pip install napari-tree-rings\n\n\n## Adding other measurements\nIf you would like to add other measurements while running batch, you can modify `BatchSegmentTrunk.run` in the `src/napari_tree_rings/image/process.py`. There is an example of `area_growth` for you to see and refer to.\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 [MIT] license,\n\"napari-tree-rings\" 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[copier]: https://copier.readthedocs.io/en/stable/\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[napari-plugin-template]: https://github.com/napari/napari-plugin-template\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":null,"download_url":null,"author":"Volker Baecker, Thi-Thu-Khiet Dang","author_email":"volker.baecker@mri.cnrs.fr, dangthithukhiet7988@gmail.com","maintainer":null,"maintainer_email":null,"license":"MIT License\n\nCopyright (c) 2025 Montpellier Ressources Imagerie\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["brightest-path-lib","tree-ring-analyzer","numpy","magicgui","qtpy","scikit-image","appdirs","scyjava","pyperclip","shapelysmooth","imagej","napari-imagej","scikit-learn","torch","torchvision","matplotlib","opencv-python-headless","pint","tifffile","tensorflow==2.17.0","python-polylabel","tox; extra == \"testing\"","pytest; extra == \"testing\"","pytest-cov; extra == \"testing\"","pytest-qt; extra == \"testing\"","napari; extra == \"testing\"","pyqt5; extra == \"testing\"","qtpy; extra == \"testing\"","tree-ring-analyzer; extra == \"testing\"","matplotlib; extra == \"testing\"","brightest-path-lib; extra == \"testing\"","numpy; extra == \"testing\"","scikit-image; extra == \"testing\"","opencv-python-headless; extra == \"testing\"","pint; extra == \"testing\"","tifffile; extra == \"testing\"","tensorflow==2.17.0; extra == \"testing\"","python-polylabel; extra == \"testing\"","scikit-learn; extra == \"testing\"","sphinx_rtd_theme; extra == \"docs\"","myst_parser; extra == \"docs\"","sphinx_tabs; extra == \"docs\"","sphinx; extra == \"docs\""],"requires_python":">=3.9","requires_external":null,"project_url":null,"provides_extra":["testing","docs"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}