use anyhow::Result;
use image::DynamicImage;
use uni_ocr::{OcrEngine, OcrProvider};
use xcap::Monitor;
#[tokio::main]
async fn main() -> Result<()> {
let engine = OcrEngine::new(OcrProvider::Auto)?;
let monitors = Monitor::all()?;
for (i, monitor) in monitors.iter().enumerate() {
println!("capturing monitor {}", i);
let image = monitor.capture_image()?;
let dynamic_image = DynamicImage::ImageRgba8(image);
let (text, _, confidence) = engine.recognize_image(&dynamic_image).await?;
println!("monitor {}: ", i);
println!("text: {}", text);
println!("confidence: {:.2}%", confidence.unwrap_or(0.0));
println!("---");
}
Ok(())
}