1
Fork 0

live cv preview

This commit is contained in:
Andy Killorin 2024-09-09 11:11:35 -04:00
parent 10840f2da2
commit 03beac2e16
Signed by: ank
GPG key ID: B6241CA3B552BCA4

View file

@ -1,5 +1,5 @@
use camera::Camera; use camera::Camera;
use opencv::{core::{VecN, CV_8UC4}, imgcodecs::ImreadModes, imgproc}; use opencv::{core::{VecN, CV_8UC4}, highgui, imgcodecs::ImreadModes, imgproc};
use webots::prelude::*; use webots::prelude::*;
use std::{f64::consts::TAU, time::Duration}; use std::{f64::consts::TAU, time::Duration};
mod camera; mod camera;
@ -11,6 +11,7 @@ struct MyRobot {
camera: Camera, camera: Camera,
left_motor: Motor, left_motor: Motor,
right_motor: Motor, right_motor: Motor,
window: &'static str,
} }
impl Robot for MyRobot { impl Robot for MyRobot {
@ -29,10 +30,14 @@ impl Robot for MyRobot {
left_motor.set_velocity(0.1 * MAX_SPEED); left_motor.set_velocity(0.1 * MAX_SPEED);
right_motor.set_velocity(0.1 * MAX_SPEED); right_motor.set_velocity(0.1 * MAX_SPEED);
let window = "processed";
//highgui::named_window(window, 1).unwrap();
Self { Self {
camera, camera,
left_motor, left_motor,
right_motor, right_motor,
window,
} }
} }
@ -43,7 +48,9 @@ impl Robot for MyRobot {
if let Ok(img) = self.camera.get_image() { // BGRA if let Ok(img) = self.camera.get_image() { // BGRA
let img = opencv::core::Mat::new_rows_cols_with_bytes::<VecN<u8,4>>(240, 320, &img).unwrap(); let img = opencv::core::Mat::new_rows_cols_with_bytes::<VecN<u8,4>>(240, 320, &img).unwrap();
opencv::imgcodecs::imwrite_def("cam.png", &img).unwrap(); //opencv::imgcodecs::imwrite_def("cam.png", &img).unwrap();
highgui::imshow(self.window, &img).unwrap();
highgui::poll_key().unwrap();
} }
// initialize motor speeds at 50% of MAX_SPEED. // initialize motor speeds at 50% of MAX_SPEED.