✨ feat(main): 添加摄像头和彩色视频输出窗口, 同时支持灰度和RGB图像显示
This commit is contained in:
parent
478eaf29be
commit
3e12d0bd6d
31
src/main.rs
31
src/main.rs
|
@ -14,10 +14,14 @@ use rscam::{Camera, Config};
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut camera_open = false;
|
let mut camera_open = false;
|
||||||
let app = App::default();
|
let app = App::default();
|
||||||
let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
|
let mut camera_window = Window::new(100, 100, 400, 300, "Camera Video Output Window");
|
||||||
let mut frame = Frame::default_fill();
|
let mut camera_frame = Frame::default_fill();
|
||||||
wind.end();
|
camera_window.end();
|
||||||
wind.show();
|
camera_window.show();
|
||||||
|
let mut color_window = Window::new(100, 600, 400, 300, "Video Output Window");
|
||||||
|
let mut color_frame = Frame::default_fill();
|
||||||
|
color_window.end();
|
||||||
|
color_window.show();
|
||||||
// app.run().unwrap();
|
// app.run().unwrap();
|
||||||
// 打开摄像头设备
|
// 打开摄像头设备
|
||||||
let mut camera = Camera::new("/dev/video0").unwrap();
|
let mut camera = Camera::new("/dev/video0").unwrap();
|
||||||
|
@ -44,15 +48,20 @@ fn main() {
|
||||||
Ok(data) => {
|
Ok(data) => {
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
let img = image::load_from_memory(&data).unwrap();
|
let img = image::load_from_memory(&data).unwrap();
|
||||||
let rgb_data = img.to_luma8();
|
let l_data = img.to_luma8();
|
||||||
|
let rgb_data = img.to_rgb8();
|
||||||
if w == 0 {
|
if w == 0 {
|
||||||
w = rgb_data.width() as i32;
|
w = l_data.width() as i32;
|
||||||
h = rgb_data.height() as i32;
|
h = l_data.height() as i32;
|
||||||
}
|
}
|
||||||
let fltk_image =
|
let fltk_l_image =
|
||||||
RgbImage::new(&rgb_data.as_raw(), w, h, ColorDepth::L8).unwrap();
|
RgbImage::new(&l_data.as_raw(), w, h, ColorDepth::L8).unwrap();
|
||||||
frame.set_image(Some(fltk_image));
|
let fltk_rgb_image =
|
||||||
frame.redraw();
|
RgbImage::new(&rgb_data.as_raw(), w, h, ColorDepth::Rgb8).unwrap();
|
||||||
|
camera_frame.set_image(Some(fltk_l_image));
|
||||||
|
color_frame.set_image(Some(fltk_rgb_image));
|
||||||
|
camera_frame.redraw();
|
||||||
|
color_frame.redraw();
|
||||||
let duration = start.elapsed();
|
let duration = start.elapsed();
|
||||||
println!("Time elapsed in DrawImage is: {:?}", duration);
|
println!("Time elapsed in DrawImage is: {:?}", duration);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue