# SciCamera
---
Consistent and reliable imaging for scientific applications.
## Why _SciCamera_?
Scientific imaging applications often require minimal post-processing pipelines,
precise capture timing, near-gapless sequential frames, and easily
configurable settings like gain, resolution, bit-depth, and exposure
length.
This project, which began as fork of the webcam/video-focused [`picamera2`][picamera2]
library, aims to make it easy to configure and use cameras for scientific applications,
with a focus on _performance, reliability, code quality, and maintainability_.
### Why not _SciCamera_?
SciCamera currently focuses on high-quality, timing-sensitive, minimally-processed
_still images_. For low-bandwidth, real-time image and video streaming, we recommend
the [`picamera2`][picamera2] library.
## Platform support
_SciCamera_ supports
- Raspberry Pi OS (Bullseye or later), 64-bit.
- x86 Ubuntu
Other debian flavors are likely to be supported. We welcome pull requests to extend
the testing toolchains to cover your platform.
## Installation
_SciCamera_ is a pure python package, but relies on the python
c++ wrapper of _libcamera_.
_SciCamera_ can be installed simply with:
```
pip install scicamera
```
### Installing libcamera + python bindings
Import and use of the above pacakge requires that `libcamera` to be built
with the python package enabled. On rasbian, this is accomplished by
installing the `libcamera` package from apt. In x86 it must be built
using something like the following:
```bash
git clone https://github.com/Exclosure/libcamera.git
cd libcamera
git checkout v0.0.4
meson setup build -D pycamera=enabled
ninja -C build
sudo ninja -C build install
```
## Bugs/Contributing
Open an issue/PR to discuss your bug or feature. Once a course of action
has been identified, open a PR, discuss the changes.
Feature creep is not of interest, but we would be happy
to help you build your more complicated project on top of this.
If we like them, and the tests pass we will merge them.
CI requires code has been processed `isort` and `black` toolchains.
Doing this is pretty easy:
```
isort .
black .
```
Great work.
## Publishing to PYPI
Should be added to github action later
1. Add your pypi token
```sh
$ poetry config pypi-token.pypi my-token
```
2. Cut a new tag
```sh
$ git tag -a v0.1.0 -m "Version 0.1.0"
$ git push origin v0.1.0
```
3. Publish
```sh
$ poetry publish --build
```
[picamera2]:https://github.com/raspberrypi/picamera2
Raw data
{
"_id": null,
"home_page": "https://github.com/exclosure/scicamera",
"name": "scicamera",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "camera,imaging,RaspberryPi",
"author": "Exclosure",
"author_email": "info@exclosure.io",
"download_url": "https://files.pythonhosted.org/packages/c5/dc/720f55b310a30c66e12a124b1422f9d9232ed332ffe267341a132db29eaa/scicamera-0.4.2.tar.gz",
"platform": null,
"description": "# SciCamera\n\n---\nConsistent and reliable imaging for scientific applications.\n\n\n## Why _SciCamera_?\n\nScientific imaging applications often require minimal post-processing pipelines, \nprecise capture timing, near-gapless sequential frames, and easily \nconfigurable settings like gain, resolution, bit-depth, and exposure \nlength. \n\nThis project, which began as fork of the webcam/video-focused [`picamera2`][picamera2]\nlibrary, aims to make it easy to configure and use cameras for scientific applications,\nwith a focus on _performance, reliability, code quality, and maintainability_.\n\n\n### Why not _SciCamera_?\n\nSciCamera currently focuses on high-quality, timing-sensitive, minimally-processed\n_still images_. For low-bandwidth, real-time image and video streaming, we recommend \nthe [`picamera2`][picamera2] library.\n\n\n## Platform support\n\n_SciCamera_ supports\n\n- Raspberry Pi OS (Bullseye or later), 64-bit.\n- x86 Ubuntu\n\nOther debian flavors are likely to be supported. We welcome pull requests to extend\nthe testing toolchains to cover your platform.\n\n## Installation\n\n_SciCamera_ is a pure python package, but relies on the python\nc++ wrapper of _libcamera_.\n\n_SciCamera_ can be installed simply with:\n```\npip install scicamera\n```\n\n### Installing libcamera + python bindings\n\nImport and use of the above pacakge requires that `libcamera` to be built\nwith the python package enabled. On rasbian, this is accomplished by \ninstalling the `libcamera` package from apt. In x86 it must be built \nusing something like the following:\n\n```bash\ngit clone https://github.com/Exclosure/libcamera.git\ncd libcamera\ngit checkout v0.0.4\nmeson setup build -D pycamera=enabled\nninja -C build\nsudo ninja -C build install\n```\n\n## Bugs/Contributing\n\n\nOpen an issue/PR to discuss your bug or feature. Once a course of action\nhas been identified, open a PR, discuss the changes. \n\nFeature creep is not of interest, but we would be happy\nto help you build your more complicated project on top of this.\n\nIf we like them, and the tests pass we will merge them. \nCI requires code has been processed `isort` and `black` toolchains.\n\nDoing this is pretty easy:\n```\nisort .\nblack .\n```\n\nGreat work.\n\n## Publishing to PYPI\n\nShould be added to github action later\n\n1. Add your pypi token\n ```sh\n $ poetry config pypi-token.pypi my-token\n ```\n\n2. Cut a new tag\n ```sh\n $ git tag -a v0.1.0 -m \"Version 0.1.0\"\n $ git push origin v0.1.0\n ```\n\n3. Publish\n ```sh\n $ poetry publish --build\n ```\n\n\n[picamera2]:https://github.com/raspberrypi/picamera2\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "",
"version": "0.4.2",
"project_urls": {
"Homepage": "https://github.com/exclosure/scicamera",
"Repository": "https://github.com/exclosure/scicamera"
},
"split_keywords": [
"camera",
"imaging",
"raspberrypi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7e9804b22a76706ee9a0666a78a45311bb89dad416f800f7cd09e6fd8fec426f",
"md5": "45c6158c2c616cdde3947b6ae49daac6",
"sha256": "83a9eaa62879b3b2d35028a56f71f5ac837a6073e532e14fd56a468799148da1"
},
"downloads": -1,
"filename": "scicamera-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "45c6158c2c616cdde3947b6ae49daac6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 30276,
"upload_time": "2023-07-25T23:39:41",
"upload_time_iso_8601": "2023-07-25T23:39:41.248922Z",
"url": "https://files.pythonhosted.org/packages/7e/98/04b22a76706ee9a0666a78a45311bb89dad416f800f7cd09e6fd8fec426f/scicamera-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c5dc720f55b310a30c66e12a124b1422f9d9232ed332ffe267341a132db29eaa",
"md5": "a6a37488fde80c9ea4a52eabf106bf49",
"sha256": "b74a09dc709d18f0bedb916daabf2d63093387ab38ae5e1ab7d446f23d16d8c1"
},
"downloads": -1,
"filename": "scicamera-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "a6a37488fde80c9ea4a52eabf106bf49",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 25431,
"upload_time": "2023-07-25T23:39:42",
"upload_time_iso_8601": "2023-07-25T23:39:42.268640Z",
"url": "https://files.pythonhosted.org/packages/c5/dc/720f55b310a30c66e12a124b1422f9d9232ed332ffe267341a132db29eaa/scicamera-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-25 23:39:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "exclosure",
"github_project": "scicamera",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "scicamera"
}