Skip to content

Commit 88e52ae

Browse files
committedMay 18, 2023
upgrade opencv-rust to 0.82.0
1 parent 6b552f5 commit 88e52ae

File tree

3 files changed

+17
-62
lines changed

3 files changed

+17
-62
lines changed
 

‎Cargo.lock

+4-51
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ edition = "2021"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9-
opencv = "0.81.2"
9+
opencv = "0.82.0"
1010
anyhow = "1.0.44"

‎src/main.rs

+12-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ use crate::constants::*;
66
use anyhow::Result;
77
use capture::Capture;
88
use opencv::core::{Mat, Ptr, Rect, Scalar, Size, TickMeter};
9-
use opencv::{dnn, highgui, imgproc, objdetect, prelude::*, types::VectorOfRect};
9+
use opencv::{
10+
dnn, highgui, imgproc,
11+
objdetect::{CascadeClassifier, FaceDetectorYN},
12+
prelude::*,
13+
types::VectorOfRect,
14+
};
1015
use window::Window;
1116

1217
fn preprocess_image(frame: &Mat) -> Result<Mat> {
@@ -43,10 +48,7 @@ fn clamp_rect_to_image_bounds(rect: Rect) -> Rect {
4348
rect
4449
}
4550

46-
fn detect_faces(
47-
classifiers: &mut Vec<&mut objdetect::CascadeClassifier>,
48-
image: Mat,
49-
) -> Result<VectorOfRect> {
51+
fn detect_faces(classifiers: &mut Vec<&mut CascadeClassifier>, image: Mat) -> Result<VectorOfRect> {
5052
let mut faces = VectorOfRect::new();
5153

5254
for classifier in classifiers.iter_mut() {
@@ -64,7 +66,7 @@ fn detect_faces(
6466
}
6567

6668
fn detect_faces_yunet(
67-
face_detector: &mut Ptr<dyn FaceDetectorYN>,
69+
face_detector: &mut Ptr<FaceDetectorYN>,
6870
frame: &Mat,
6971
) -> Result<VectorOfRect> {
7072
let mut detections = Mat::default();
@@ -138,8 +140,8 @@ fn blur_face(frame: &mut Mat, face: Rect) -> Result<()> {
138140

139141
fn frame_loop(
140142
mut capture: Capture,
141-
classifiers: &mut Vec<&mut objdetect::CascadeClassifier>,
142-
face_detector: &mut Ptr<dyn FaceDetectorYN>,
143+
classifiers: &mut Vec<&mut CascadeClassifier>,
144+
face_detector: &mut Ptr<FaceDetectorYN>,
143145
window: Window,
144146
) -> Result<()> {
145147
let mut tick_meter = TickMeter::default()?;
@@ -190,10 +192,10 @@ fn main() -> Result<()> {
190192

191193
let capture = Capture::create(0, CAPTURE_WIDTH, CAPTURE_HEIGHT)?;
192194

193-
let mut classifier = objdetect::CascadeClassifier::new(CASCADE_XML_FILE)?;
195+
let mut classifier = CascadeClassifier::new(CASCADE_XML_FILE)?;
194196
let mut classifiers = vec![&mut classifier];
195197

196-
let mut face_detector: Ptr<dyn FaceDetectorYN> = <dyn objdetect::FaceDetectorYN>::create(
198+
let mut face_detector = FaceDetectorYN::create(
197199
YUNET_MODEL_FILE,
198200
"",
199201
Size::new(CAPTURE_WIDTH, CAPTURE_HEIGHT),

0 commit comments

Comments
 (0)
Please sign in to comment.