9 个稳定版本 (4 个主要版本)
5.1.0 | 2024 年 5 月 14 日 |
---|---|
5.0.0 | 2024 年 4 月 4 日 |
4.0.0 | 2024 年 4 月 2 日 |
3.1.1 | 2023 年 10 月 3 日 |
1.1.0 |
|
184 在 图像 中排名
每月下载量 966
用于 2 crate
21KB
190 行
cameraunit
cameraunit
提供了一个定义良好且直观的 API,用于通过 Rust 特性 cameraunit::CameraUnit
和 cameraunit::CameraInfo
编写接口以捕获基于 CCD/CMOS 的探测器的帧。此外,该库还提供了一个 cameraunit::ImageData
结构体,用于获取具有大量元数据的图像。
您可以使用 cameraunit
来
- 编写面向用户的接口以访问不同的相机,并统一处理这些接口的 C API,
- 以不同的像素格式从这些相机获取图像(使用
image
crate 作为后端), - 将这些图像保存到
FITS
文件中(需要cfitsio
C 库,并使用fitsio
crate),其中包含大量元数据, - 或者,使用内部
serialimage::DynamicSerialImage
对象来获取JPEG
、PNG
、BMP
等。
用法
将此添加到您的 Cargo.toml
[dependencies]
cameraunit = "5.1"
并将此添加到您的源代码中
use cameraunit::{CameraUnit, CameraInfo, DynamicSerialImage, OptimumExposureBuilder, SerialImageBuffer};
示例
由于此库主要使用特性,请参阅项目(例如 cameraunit_asi
)以了解其实际应用。
注意
该接口提供了两个特性
CameraUnit
:此特性支持对摄像头的广泛访问,并提供用于修改摄像头状态的API,例如更改曝光、探测器上的感兴趣区域等。实现此特性的对象不应从Clone
特性派生,因为理想情况下图像捕获应在单个线程中发生。CameraInfo
:此特性支持对摄像头的有限访问,并提供用于获取维护数据(如温度、增益等)的API,同时允许对摄像头状态的有限修改,例如更改探测器温度设定点、开启和关闭冷却器等。
理想情况下,实现摄像头接口的crate应该
- 为一个不允许克隆的
struct
实现CameraUnit
和CameraInfo
,并实现第二个更小的结构,该结构允许克隆并仅为此结构实现CameraInfo
。 - 提供获取可用摄像头数量、摄像头的唯一标识和根据唯一标识打开摄像头的函数。另外,还可以提供打开第一个可用摄像头的函数。
- 成功打开摄像头后,应返回一个包含两个对象的元组——一个实现
CameraUnit
特性和另一个实现CameraInfo
特性。第二个对象应该是可克隆的,以便在需要处理维护功能时传递给某些线程。
依赖关系
~17MB
~242K SLoC