{"name":"napari-live-recording","display_name":"napari-live-recording","visibility":"public","icon":"","categories":[],"schema_version":"0.1.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-live-recording.open","title":"Live recording","python_name":"napari_live_recording:NapariLiveRecording","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-live-recording.open","display_name":"Live recording","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.1","name":"napari-live-recording","version":"0.3.8","dynamic":null,"platform":null,"supported_platform":null,"summary":"A napari plugin for live video recording with a generic camera device.","description":"# napari-live-recording\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/jacopoabramo/napari-live-recording/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-live-recording.svg?color=green)](https://pypi.org/project/napari-live-recording)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-live-recording.svg?color=green)](https://python.org)\n![tests](https://github.com/jacopoabramo/napari-live-recording/actions/workflows/test_and_deploy.yaml/badge.svg)\n[![codecov](https://codecov.io/github/jacopoabramo/napari-live-recording/graph/badge.svg?token=WhI2MO452Z)](https://codecov.io/github/jacopoabramo/napari-live-recording) \\\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-live-recording)](https://napari-hub.org/plugins/napari-live-recording)\n[![Chan-Zuckerberg Initiative](https://custom-icon-badges.demolab.com/badge/Chan--Zuckerberg_Initiative-red?logo=czi)](https://chanzuckerberg.com/)\n\nThis [napari] plugin was generated with [Cookiecutter] using with [@napari]'s [cookiecutter-napari-plugin] template.\n\n## Description\n\n`napari-live-recording` (or `nlr`, if you like acronyms) is a medium-weight plugin part of the napari ecosystem that provides an easy \naccess point for controlling area detector devices (most commonly reffered to as cameras) with a common interface.\nOther than that, the plugin also allows to create computation pipelines that can be executed real-time in a flow starting directly from the camera stream.\n\n> [!NOTE]\n> \n> ### Why medium weight?\n> `napari-live-recording` relies on multithreading to handle camera control,\n> image processing and data storage via a common pipelined infrastructure.\n> More details are provided in the documentation.\n\nThe plugin allows the following operations:\n\n- snapping: capture a single image\n- live view: continously acquiring from the currently active camera and show the collected data on the napari viewer;\n- recording: stream data to disk from the currently active cameras\n\nWhen recording, the plugin allows to store images according to the following formats:\n\n- ImageJ TIFF\n- OME-TIFF\n\n> [!NOTE]\n> Future releases will also add further file formats to the recording options, specifically:\n> - HDF5\n> - MP4\n>\n> We will also provide a method to add custom metadata to the recorded image files.\n\n## Supported cameras\n\n`napari-live-recording` aims to maintain itself agnostic for the type of cameras it controls. Via a common API (Application Programming Interface),\nit possible to define a controller for a specific camera. Instructions\non how to do so are provided in the documentation.\n\nBy default, the plugin is shipped with the following interfaces:\n\n- an [OpenCV](./src/napari_live_recording/control/devices/opencv.py) camera grabber;\n- a [Micro-Manager](./src/napari_live_recording/control/devices/micro_manager.py) interface via the package [`pymmcore-plus`](https://pypi.org/project/pymmcore-plus/);\n- an interface to the [microscope](./src/napari_live_recording/control/devices/pymicroscope.py) python package.\n\n## Documentation\n\nTo install and use the plugin you can review the documentation [here](./docs/documentation.md).\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## Acknowledgments\n\nThe developers would like to thank the [Chan-Zuckerberg Initiative (CZI)](https://chanzuckerberg.com/) for providing funding\nfor this project via the [napari Ecosystem Grants](https://chanzuckerberg.com/science/programs-resources/imaging/napari/napari-live-recording-camera-control-through-napari/).\n\n

\n \n

\n\n## License\n\nDistributed under the terms of the [MIT] license,\n\"napari-live-recording\" 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/jacopoabramo/napari-live-recording/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/jethro33/napari-live-recording","download_url":null,"author":"\"Jacopo Abramo, Pia Pritzke, Felix Wanitschke\"","author_email":"jacopo.abramo@gmail.com","maintainer":null,"maintainer_email":null,"license":"MIT","classifier":["Development Status :: 4 - Beta","Intended Audience :: Developers","Intended Audience :: Science/Research","Intended Audience :: Education","Framework :: napari","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Operating System :: OS Independent","License :: OSI Approved :: MIT License","Topic :: Scientific/Engineering :: Image Processing","Topic :: Scientific/Engineering :: Visualization"],"requires_dist":["superqt","numpy","opencv-python","tifffile","napari[all]","qtpy","microscope >=0.7.0","pims","pyqtgraph","pymmcore-plus >=0.6.7","pymmcore-widgets","tox ; extra == 'testing'","pytest ; extra == 'testing'","pytest-cov ; extra == 'testing'","pytest-qt ; extra == 'testing'","napari ; extra == 'testing'","pyqt5 ; extra == 'testing'"],"requires_python":">=3.9","requires_external":null,"project_url":["Bug Tracker, https://github.com/jacopoabramo/napari-live-recording/issues","Documentation, https://github.com/jacopoabramo/napari-live-recording#README.md","Source Code, https://github.com/jacopoabramo/napari-live-recording","User Support, https://github.com/jacopoabramo/napari-live-recording/issues"],"provides_extra":["testing"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}