14 个稳定版本
4.1.0 | 2024年5月14日 |
---|---|
4.0.2 | 2024年4月4日 |
3.0.1 | 2024年4月4日 |
2.4.1 | 2023年10月3日 |
2.1.2 | 2023年9月30日 |
#178 在 硬件支持
每月1,021 次下载
115KB
2K SLoC
cameraunit_asi
cameraunit_asi
实现了由cameraunit
提供的API特性和从ZWO基于CCD/CMOS探测器的帧捕获功能。此crate提供了对ASI相机SDK C库的封装,以安全的方式访问相机进行图像捕获和其他维护功能。图像以cameraunit::ImageData
的形式获取,并包含丰富的元数据。
目前,这个Rust驱动程序旨在用于Linux和macOS平台。
您可以使用cameraunit_asi
来
- 访问连接的ZWO ASI相机,
- 从支持的像素格式(
image
crate作为后端)获取图像, - 将这些图像保存到
FITS
文件(需要cfitsio
C库,并使用fitsio
crate), - 或者使用内部的
image::DynamicImage
对象获取JPEG
、PNG
、BMP
等。
先决条件
- 在您的系统上安装
libusb-1.0-dev
。 - 获取ZWO ASI Camera SDK。
- 从ZIP文件中提取
ASI_linux_mac_SDK_VX.XX.tar.bz2
,然后提取其内容(tar -xf ASI_linux_mac_SDK_VX.XX.tar.bz2
),这将把内容提取到当前目录下的ASI_linux_mac_SDK_VX.XX
。 - 将
ASI_linux_mac_SDK_VX.XX/include/ASICamera2.h
复制到/usr/local/include
,或任何您include路径中的其他目录。 - 打开位于
ASI_linux_mac_SDK_VX.XX/lib
目录下的README.txt
,以确定适用的系统平台。按照附加命令安装udev
规则,以便无需sudo
即可访问相机。 - 将
ASI_linux_mac_SDK_VX.XX/lib/your_target_platform/libASICamera*
复制到您的库路径中的一个目录(可能是/usr/local/lib
),并确保LD_LIBRARY_PATH
(Linux)或DYLD_LIBRARY_PATH
(macOS)包含库路径。
用法
将此添加到您的Cargo.toml
[dependencies]
cameraunit_asi = "4.1"
并将此添加到您的源代码
use cameraunit::{CameraUnit, CameraInfo, ImageData};
use cameraunit_asi::{num_cameras, open_first_camera, ASIImageFormat};
示例
最少,以下可以打开第一个可用的相机,捕获单个图像,并将其保存为FITS
文件
let nc = num_cameras();
if nc <= 0 {
return;
}
let (mut cam, _caminfo) = open_first_camera()
.map_err(|x| println!("Opening camera: {}", x.to_string()))
.unwrap();
cam.set_exposure(Duration::from_millis(700))
.map_err(|x| println!("Setting exposure: {}", x.to_string()))
.unwrap();
cam.start_exposure()
.map_err(|x| println!("Start exposure: {}", x.to_string()))
.unwrap();
while !cam
.image_ready()
.map_err(|x| println!("Check exposure: {}", x.to_string()))
.unwrap()
{
sleep(Duration::from_secs(1));
}
let img = cam
.download_image()
.map_err(|x| println!("Downloading image: {}", x.to_string()))
.unwrap();
img.save_fits(Path::new("./"), "test", "asicam_test", true, true)
.unwrap();
注意,未使用的_caminfo
对象实现了cameraunit::CameraInfo
特质,可以被克隆并在多个线程之间传递。
对于更完整的示例,请参考附带程序(链接)。
安装
可以使用以下命令安装示例程序
$ cargo install cameraunit_asi
并使用以下命令执行
$ asicamera_capture
依赖项
~17–27MB
~346K SLoC