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
浙公网安备 33010602011771号