Skip to main content

A napari plugin for live video recording with a generic camera device.

Project description

napari-live-recording

License: MIT PyPI Python Version tests codecov
napari hub Chan-Zuckerberg Initiative

This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.

Description

napari-live-recording (or nlr, if you like acronyms) is a medium-weight plugin part of the napari ecosystem that provides an easy access point for controlling area detector devices (most commonly reffered to as cameras) with a common interface. Other 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.

[!NOTE]

Why medium weight?

napari-live-recording relies on multithreading to handle camera control, image processing and data storage via a common pipelined infrastructure. More details are provided in the documentation.

The plugin allows the following operations:

  • snapping: capture a single image
  • live view: continously acquiring from the currently active camera and show the collected data on the napari viewer;
  • recording: stream data to disk from the currently active cameras

When recording, the plugin allows to store images according to the following formats:

  • ImageJ TIFF
  • OME-TIFF

[!NOTE] Future releases will also add further file formats to the recording options, specifically:

  • HDF5
  • MP4

We will also provide a method to add custom metadata to the recorded image files.

Supported cameras

napari-live-recording aims to maintain itself agnostic for the type of cameras it controls. Via a common API (Application Programming Interface), it possible to define a controller for a specific camera. Instructions on how to do so are provided in the documentation.

By default, the plugin is shipped with the following interfaces:

Documentation

To install and use the plugin you can review the documentation here.

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

Acknowledgments

The developers would like to thank the Chan-Zuckerberg Initiative (CZI) for providing funding for this project via the napari Ecosystem Grants.

License

Distributed under the terms of the MIT license, "napari-live-recording" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napari-live-recording-0.3.8.tar.gz (861.0 kB view details)

Uploaded Source

Built Distribution

napari_live_recording-0.3.8-py3-none-any.whl (597.9 kB view details)

Uploaded Python 3

File details

Details for the file napari-live-recording-0.3.8.tar.gz.

File metadata

  • Download URL: napari-live-recording-0.3.8.tar.gz
  • Upload date:
  • Size: 861.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for napari-live-recording-0.3.8.tar.gz
Algorithm Hash digest
SHA256 5bc06130032780cec852882d464f301a58d27abb3cc50539e90aa5a1b4a263aa
MD5 573eb6e9bc46c9150bc0e5b4d77226a4
BLAKE2b-256 9905ba41881e15eba63a3c6ef8fe5fe792bd23748132c1ca5aaddad025817bdf

See more details on using hashes here.

File details

Details for the file napari_live_recording-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for napari_live_recording-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 bd726ca2e3ec119e03ee00c46d0e409002067994dc6ad3a7d47b96e98539862f
MD5 3c2499d110df559131ac6e0c78bf7f18
BLAKE2b-256 506e36d177c8b048b49613afc829d7696b83d7c76af1cb27d880192be8571214

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page