rust opencv 简单试用

社区提供了opencv 的rust binding,以下是一个简单试用

需要的安装

rust opencv 是基于ffi binding,可以参考github 中的install md 说明

参考代码

  • cargo.toml
[package]
name = "rust-opencv"
version = "0.1.0"
edition = "2024"

[dependencies]
opencv = "0.94.4"
  • main.rs
use opencv::{
    highgui,
    prelude::*,
    videoio,
    core,
    Result,
};
fn main()-> Result<()> {
    // 打开默认摄像头(通常是设备0)
    let mut cam = videoio::VideoCapture::new(0, videoio::CAP_ANY)?; // CAP_ANY 自动选择后端

    if !videoio::VideoCapture::is_opened(&cam)? {
        panic!("无法打开摄像头");
    }

    // 创建一个窗口
    highgui::named_window("摄像头", highgui::WINDOW_AUTOSIZE)?;

    loop {
        let mut frame = core::Mat::default();
        cam.read(&mut frame)?;

        if frame.empty() {
            continue;
        }

        // 显示画面
        highgui::imshow("摄像头", &frame)?;

        // 按下 ESC 键退出
        if highgui::wait_key(10)? == 27 {
            break;
        }
    }

    Ok(())
}

说明

使用opencv 的rust binding 进行开发还是挺方便的,启动速度也比较快,同时如果集成其他基于rust 的ml 框架(onnx)速度还是挺快的

参考资料

https://github.com/twistedfall/opencv-rust

https://github.com/twistedfall/opencv-rust/blob/master/INSTALL.md

posted on 2025-08-30 08:00  荣锋亮  阅读(49)  评论(0)    收藏  举报

导航