ex_image.rs
Decode and transform an image. Decode, resize, and save a semantic image.
ExSDK source-ownedRustVision
Source
Vision · Vulkan compute
Example
1use anyhow::Context;2use oa::{Engine, ImageFormat, Path, image};34fn main() -> anyhow::Result<()> {5 let engine = Engine::new().context("create OA engine")?;67 let path = Path::asset_rel("image/visionTestPattern320x180.jpg");89 let img = image::decode_file(&engine, &path, ImageFormat::Rgb)10 .with_context(|| format!("decode {}", path.display()))?;11 let small = image::resize(&img, 160, 90, image::InterpolationMode::Bilinear)?;12 let adjusted = image::brightness_contrast(&small, 0.05, 1.1)?;1314 let matrix = adjusted.as_matrix();15 let values = matrix.read_f32()?;1617 assert_eq!(matrix.shape(), [1, 3, 90, 160]);18 assert_eq!(values.len(), 3 * 90 * 160);1920 let min = values.iter().copied().fold(f32::INFINITY, f32::min);21 let max = values.iter().copied().fold(f32::NEG_INFINITY, f32::max);22 println!("{:?} min={min:.4} max={max:.4}", matrix.shape());23 Ok(())24}25