Skip to content

Commit

Permalink
Update README.md (#125)
Browse files Browse the repository at this point in the history
Updating the README with copy from docs website and providing a link to
the documentation.

---------

Co-authored-by: Nathan Clack <[email protected]>
  • Loading branch information
dgmccart and nclack authored Dec 4, 2023
1 parent ffd37d3 commit 832233a
Showing 1 changed file with 28 additions and 55 deletions.
83 changes: 28 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -89,7 +62,7 @@ conda create --name acquire python=3.11
conda activate acquire
```

## Build
### Build

```bash
conda activate acquire
Expand Down Expand Up @@ -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]"
Expand All @@ -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
Expand All @@ -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:

Expand Down

0 comments on commit 832233a

Please sign in to comment.