6 个版本

0.2.4 2022年9月25日
0.2.3 2022年9月25日
0.1.0 2020年9月1日

#495 in 硬件支持


2 个Crates中使用(通过eye-hal

MIT 协议

4.5MB
82K SLoC

C 37K SLoC // 0.2% comments Assembly 22K SLoC // 0.2% comments GNU Style Assembly 9K SLoC // 0.1% comments Bitbake 5K SLoC C++ 4.5K SLoC // 0.1% comments Java 3K SLoC // 0.4% comments JavaScript 1K SLoC // 0.0% comments Objective-C++ 1K SLoC // 0.2% comments Rust 297 SLoC // 0.0% comments Prolog 25 SLoC Batch 22 SLoC Shell 5 SLoC

安全 openpnp-capture 绑定

license

此crate提供了对openpnp-capture库的安全绑定,用于跨平台相机捕获。

布局

sys 子目录包含包含实际FFI绑定封装C API的openpnp_capture_sys crate。

用法

openpnp_capture = "0.1"

示例

use openpnp_capture::{Device, Format, Stream};

fn main() {
    // Fetch some generic device information
    let devices = Device::enumerate();
    println!("Found {} devices.", devices.len());

    // Choose the first device we see
    let dev = Device::new(devices[0]).expect("Failed to open device");

    // Create the stream
    let format = Format::default().width(1280).height(720).fps(30);
    let mut stream = Stream::new(&dev, &format).expect("Failed to create stream");

    // Print some format information
    println!(
        "[0] {} ({}x{}@{})",
        stream.format().fourcc,
        stream.format().width,
        stream.format().height,
        stream.format().fps
    );

    // Prepare a buffer to hold camera frames
    let mut rgb_buffer = Vec::new();

    // Capture some frames
    stream.advance();
    stream.read(&mut rgb_buffer);
}

请查看提供的examples以获取更多示例应用程序。

依赖