From 96d1af5b78811c623d184fa97f1d6b0f12382550 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Mon, 26 Oct 2026 15:05:11 +0000 Subject: [PATCH] Create greyscale example --- examples/{convolution.rs => greyscale.rs} | 28 ++++++++++------------- 1 file changed, 12 insertions(+), 16 deletions(-) rename examples/{convolution.rs => greyscale.rs} (51%) diff --git a/examples/convolution.rs b/examples/greyscale.rs similarity index 51% rename from examples/convolution.rs rename to examples/greyscale.rs index fb34f2d..8bc1eb9 100644 --- a/examples/convolution.rs +++ b/examples/greyscale.rs @@ -1,10 +1,14 @@ -use ccvl::{image::*, kernel::*}; +use ccvl::image::*; + +fn filter(img: Image) -> Image { + img.map(|p| Luminance::from(p).into()) +} fn main() -> std::process::ExitCode { let args = std::env::args().collect::>(); if args.len() != 3 { println!("Usage: {} IN OUT", args[0].as_str()); - return std::process::ExitCode::FAILURE; + return std::process::ExitCode::FAILURE; } let input_path = args[1].as_str(); @@ -19,20 +23,12 @@ fn main() -> std::process::ExitCode { println!("I/O error loading image {}: {}", input_path, err); std::process::ExitCode::FAILURE } - Ok(img) => { - let kernel = - [[1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]; - let result = kernel.convolve(&img); - match result.save::(output_path) { - Err(err) => { - println!( - "I/O error saving image {}: {}", - output_path, err - ); - std::process::ExitCode::FAILURE - } - Ok(()) => std::process::ExitCode::SUCCESS, + Ok(img) => match filter(img).save::(output_path) { + Err(err) => { + println!("I/O error saving image {}: {}", output_path, err); + std::process::ExitCode::FAILURE } - } + Ok(()) => std::process::ExitCode::SUCCESS, + }, } }