diff --git a/juno_samples/edge_detection/benches/edge_detection_bench.rs b/juno_samples/edge_detection/benches/edge_detection_bench.rs
index f7f004109e84ade2ac0ce1f49efb45ea4a2466f7..806a886510666f471335227b201daa74c000f4e1 100644
--- a/juno_samples/edge_detection/benches/edge_detection_bench.rs
+++ b/juno_samples/edge_detection/benches/edge_detection_bench.rs
@@ -64,10 +64,12 @@ fn edge_detection_bench(c: &mut Criterion) {
 
     let mut r = runner!(edge_detection);
 
+    let frames: Vec<_> = (0..num_frames).map(|_| load_frame(&mut video)).collect();
+
     group.bench_function("edge detection bench", |b| {
         b.iter(|| {
             for i in 0..num_frames {
-                let frame = load_frame(&mut video);
+                let frame = &frames[i];
                 let ptr = frame.ptr_def().unwrap() as *const f32;
 
                 assert!(frame.rows() as usize == height);