From 832233ab1bd29868dd71f828a602e495e8fff273 Mon Sep 17 00:00:00 2001 From: dgmccart <92180364+dgmccart@users.noreply.github.com> Date: Mon, 4 Dec 2023 15:43:37 -0800 Subject: [PATCH] Update README.md (#125) Updating the README with copy from docs website and providing a link to the documentation. --------- Co-authored-by: Nathan Clack --- README.md | 83 +++++++++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index d699d78..d451d29 100644 --- a/README.md +++ b/README.md @@ -3,71 +3,44 @@ [![DOI](https://zenodo.org/badge/632689876.svg)](https://zenodo.org/badge/latestdoi/632689876) [![Chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://acquire-imaging.zulipchat.com/) -# acquire-imaging +# Acquire -This python package provides a multi-camera video streaming library focusing -on performant microscopy. +```bash +python -m pip install acquire-imaging +``` + +Acquire ([`acquire-imaging` on PyPI](https://pypi.org/project/acquire-imaging/)) provides high-speed, multi-camera, video streaming for up to **2** cameras and image acquisition with a programming interface for streaming video data directly to Python, cloud-friendly file formats, and visualization platforms, such as [napari](https://napari.org/stable/). -> **Note** This is an early stage project. If you find it interesting please +> **Note** This is an early stage project. If you find it interesting, please > reach out! -Support for: +Acquire supports the following cameras (currently only on Windows): -- Up to two independent video streams -- Camera support: - - Hamamatsu Orca Fusion BT (C15440-20UP) (windows only) - - Vieworks VC-151MX-M6H00 -- Streaming file format support: - - Tiff - - Zarr v2 +- [Hamamatsu Orca Fusion BT (C15440-20UP)](https://www.hamamatsu.com/eu/en/product/cameras/cmos-cameras/C15440-20UP.html) +- [Vieworks VC-151MX-M6H00](https://www.visionsystech.com/products/cameras/vieworks-vc-151mx-sony-imx411-sensor-ultra-high-resolution-cmos-camera-151-mp) +- [FLIR Blackfly USB3 (BFLY-U3-23S6M-C)](https://www.flir.com/products/blackfly-usb3/?model=BFLY-U3-23S6M-C&vertical=machine+vision&segment=iis) +- [FLIR Oryx 10GigE (ORX-10GS-51S5M-C)](https://www.flir.com/products/oryx-10gige/?model=ORX-10GS-51S5M-C&vertical=machine+vision&segment=iis) -## Installation +Acquire also supports the following output file formats: -```bash -python -m pip install acquire-imaging -``` +- [Tiff](https://en.wikipedia.org/wiki/TIFF) +- [OME-Zarr](https://ngff.openmicroscopy.org/latest/) for [Zarr v2](https://zarr.readthedocs.io/en/stable/spec/v2.html) +- [Zarr v3](https://zarr.readthedocs.io/en/stable/spec/v3.html) -## Usage - -See the tests for more examples. - -The provided [napari][] plugin is a good example of how to stream for visualization. +For testing and demonstration purposes, Acquire provides a few simulated video sources. -### List devices +## Usage -```python -import acquire -print(acquire.Runtime().device_manager().devices()) -``` +Check out our documentation [here](https://acquire-project.github.io/acquire-docs/). -### Finite triggered acquisition - -```python -import acquire -runtime = acquire.Runtime() -dm = runtime.device_manager() - -props = runtime.get_configuration() -# select the first Hamamatsu camera -props.video[0].camera.identifier = dm.select(acquire.DeviceKind.Camera, "hamamatsu.*") -# stream to zarr -props.video[0].storage.identifier = dm.select(acquire.DeviceKind.Storage, "zarr") -props.video[0].storage.settings.filename = "out.zarr" -props.video[0].camera.settings.shape = (2304, 2304) -props.video[0].camera.settings.pixel_type = acquire.SampleType.U16 -props.video[0].max_frame_count = 100 -props = runtime.set_configuration(props) - -runtime.start() -runtime.stop() # wait for acquisition to complete -``` +The provided [napari](https://napari.org/stable/) plugin ([code here](https://github.com/acquire-project/acquire-python/blob/main/python/acquire/__init__.py#L131)) is a good example of how to stream for visualization. -# Development +## Development We welcome contributors. The following will help you get started building the code. -## Environment +### Environment Requires @@ -89,7 +62,7 @@ conda create --name acquire python=3.11 conda activate acquire ``` -## Build +### Build ```bash conda activate acquire @@ -130,7 +103,7 @@ In order to configure which release of each driver to use, you can set the value These values can be set to a specific version, or to `nightly` for nightly builds. -## Develop +### Develop ```bash pip install -e ".[testing]" @@ -145,9 +118,9 @@ pip install pre-commit pre-commit install ``` -## Troubleshooting +### Troubleshooting -### Maturin can't find a python interpreter +#### Maturin can't find a python interpreter `Maturin` is a command line tool associated with [`pyo3`](https://pyo3.rs/v0.16.4/). It helps automate the build and packaging @@ -162,14 +135,14 @@ interpreters are available on the path. It seems to happen less frequently when invoked via pip - `pip install -e .` will end up invoking maturin. -### Working with an editable install, how do I update the build? +#### Working with an editable install, how do I update the build? It depends on what you changed: - **acquire-video-runtime** (c/c++ code): `touch wrapper.h; maturin develop` - **rust code**: `maturin develop` -### Zarr V3 tests are failing +#### Zarr V3 tests are failing You should make sure that the following environment variables are set: