下面是一个基于RustFace这个库的demo程序。基于原项目 整理。image随便下载一张,model.bin从原项目进行下载即可。
Cargo.toml配置
[package]
name = "faceDemo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rustface = "0"
image= "0.23.14"
src/main.rs
use rustface::{Detector, FaceInfo, ImageData};
fn main() {
let imageFile = "1.png";
let modelFile = "model.bin";
let mut detector = rustface::create_detector(modelFile).unwrap();
detector.set_min_face_size(20);
detector.set_score_thresh(2.0);
detector.set_pyramid_scale_factor(0.8);
detector.set_slide_window_step(4, 4);
let img = image::open(imageFile).unwrap();
let gray = img.to_luma8();
let (width, height) = gray.dimensions();
let mut image = ImageData::new(&*gray, width, height);
for face in detector.detect(&mut image).into_iter() {
// print confidence score and coordinates
println!("found face: {:?}", face);
}
}
// output:
// found face: FaceInfo { bbox: Rectangle { x: 228, y: 262, width: 582, height: 582 }, roll: 0.0, pitch: 0.0, yaw: 0.0, score: 24.993442237377167 }