✨ feat(main): 重构图像捕获和处理逻辑,提升代码可读性和维护性
This commit is contained in:
parent
8a15ee2c7c
commit
a23b117752
47
src/main.rs
47
src/main.rs
|
@ -51,19 +51,20 @@ fn main() {
|
|||
let mut w = 0;
|
||||
let mut h = 0;
|
||||
if camera_open {
|
||||
loop {
|
||||
// 捕获一帧图像
|
||||
match camera.capture() {
|
||||
Ok(data) => {
|
||||
let start = Instant::now();
|
||||
let img = image::load_from_memory(&data).unwrap();
|
||||
let l_data = img.to_luma8();
|
||||
let mut rgb_data = img.to_rgb8();
|
||||
if w == 0 {
|
||||
w = l_data.width() as i32;
|
||||
h = l_data.height() as i32;
|
||||
}
|
||||
crossbeam::scope(|_| {
|
||||
crossbeam::scope(|_| {
|
||||
loop {
|
||||
// 捕获一帧图像
|
||||
match camera.capture() {
|
||||
Ok(data) => {
|
||||
let start = Instant::now();
|
||||
let img = image::load_from_memory(&data).unwrap();
|
||||
let l_data = img.to_luma8();
|
||||
let mut rgb_data = img.to_rgb8();
|
||||
if w == 0 {
|
||||
w = l_data.width() as i32;
|
||||
h = l_data.height() as i32;
|
||||
}
|
||||
|
||||
for tmp_x in 0..30 {
|
||||
for tmp_y in 0..60 {
|
||||
rgb_data.put_pixel(tmp_x, tmp_y, Rgb([102, 204, 255]));
|
||||
|
@ -77,9 +78,7 @@ fn main() {
|
|||
color_frame.redraw();
|
||||
let duration = start.elapsed();
|
||||
println!("L8 Frame Draw use time: {:?}", duration);
|
||||
})
|
||||
.unwrap();
|
||||
crossbeam::scope(|_| {
|
||||
|
||||
let fltk_l_image =
|
||||
RgbImage::new(l_data.as_raw(), w, h, ColorDepth::L8).unwrap();
|
||||
camera_frame.set_image(Some(fltk_l_image));
|
||||
|
@ -87,16 +86,16 @@ fn main() {
|
|||
camera_frame.redraw();
|
||||
let duration = start.elapsed();
|
||||
println!("RGB8 Frame Draw use time: {:?}", duration);
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("捕获错误: {}", e);
|
||||
continue;
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("捕获错误: {}", e);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
app.wait();
|
||||
}
|
||||
app.wait();
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue