use burn::backend::wgpu::{Wgpu, WgpuDevice};
use iris::prelude::*;
fn main() -> Result<()> {
type Backend = Wgpu;
let device = WgpuDevice::default();
println!(
"Using compute backend: {}",
BurnUtils::backend_name::<Backend>()
);
let image: Image<Backend> = Image::open("assets/images/checkerboard.png", &device)?;
let contours = image.find_contours()?;
println!("Found {} contour(s)", contours.len());
if let Some(contour) = contours.first() {
println!("Contour size: {} points", contour.points.len());
let hull = contour.convex_hull();
println!("Convex hull size: {} points", hull.points.len());
let m = contour.moments();
println!("Contour Area (m00): {}", m.m00);
if let Some(centroid) = m.centroid() {
println!("Contour Centroid: ({:.2}, {:.2})", centroid.x, centroid.y);
}
}
image.save("output_contours.png")?;
println!("Saved input image to 'output_contours.png'");
Ok(())
}