Skip to content
Snippets Groups Projects
Commit ba7cfb6a authored by Russel Arbore's avatar Russel Arbore
Browse files

Inline gaussian size

parent ab9574bf
No related branches found
No related tags found
1 merge request!221Optimize edge
Pipeline #202076 passed
...@@ -87,7 +87,6 @@ fn edge_detection_bench(c: &mut Criterion) { ...@@ -87,7 +87,6 @@ fn edge_detection_bench(c: &mut Criterion) {
r.run( r.run(
height as u64, height as u64,
width as u64, width as u64,
gs as u64,
input_h.to(), input_h.to(),
gaussian_filter_h, gaussian_filter_h,
structure_h, structure_h,
......
fn gaussian_smoothing<n, m, gs : usize>( const gs : usize = 7;
const sz : usize = 3;
const sb : usize = 3;
fn gaussian_smoothing<n, m : usize>(
input: f32[n, m], input: f32[n, m],
filter: f32[gs, gs], filter: f32[7, 7],
) -> f32[n, m] { ) -> f32[n, m] {
@res let result : f32[n, m]; @res let result : f32[n, m];
...@@ -34,7 +38,6 @@ fn laplacian_estimate<n, m : usize>( ...@@ -34,7 +38,6 @@ fn laplacian_estimate<n, m : usize>(
input: f32[n, m], input: f32[n, m],
structure: f32[3, 3], structure: f32[3, 3],
) -> f32[n, m] { ) -> f32[n, m] {
const sz = 3;
const r = sz / 2; const r = sz / 2;
@res let result : f32[n, m]; @res let result : f32[n, m];
...@@ -79,7 +82,6 @@ fn zero_crossings<n, m : usize>( ...@@ -79,7 +82,6 @@ fn zero_crossings<n, m : usize>(
input: f32[n, m], input: f32[n, m],
structure: f32[3, 3], structure: f32[3, 3],
) -> f32[n, m] { ) -> f32[n, m] {
const sz = 3;
const r = sz / 2; const r = sz / 2;
@res let result : f32[n, m]; @res let result : f32[n, m];
...@@ -127,7 +129,6 @@ fn gradient<n, m : usize>( ...@@ -127,7 +129,6 @@ fn gradient<n, m : usize>(
sx: f32[3, 3], sx: f32[3, 3],
sy: f32[3, 3], sy: f32[3, 3],
) -> f32[n, m] { ) -> f32[n, m] {
const sb = 3;
const sbr = sb / 2; const sbr = sb / 2;
@res let result : f32[n, m]; @res let result : f32[n, m];
...@@ -191,7 +192,7 @@ fn reject_zero_crossings<n, m: usize>( ...@@ -191,7 +192,7 @@ fn reject_zero_crossings<n, m: usize>(
} }
#[entry] #[entry]
fn edge_detection<n, m, gs: usize>( fn edge_detection<n, m : usize>(
input: f32[n, m], input: f32[n, m],
gaussian_filter: f32[gs, gs], gaussian_filter: f32[gs, gs],
structure: f32[3, 3], structure: f32[3, 3],
...@@ -199,7 +200,7 @@ fn edge_detection<n, m, gs: usize>( ...@@ -199,7 +200,7 @@ fn edge_detection<n, m, gs: usize>(
sy: f32[3, 3], sy: f32[3, 3],
theta: f32, theta: f32,
) -> f32[n, m] { ) -> f32[n, m] {
let smoothed = gaussian_smoothing::<n, m, gs>(input, gaussian_filter); let smoothed = gaussian_smoothing::<n, m>(input, gaussian_filter);
@le let laplacian = laplacian_estimate::<n, m>(smoothed, structure); @le let laplacian = laplacian_estimate::<n, m>(smoothed, structure);
@zc let zcs = zero_crossings::<n, m>(laplacian, structure); @zc let zcs = zero_crossings::<n, m>(laplacian, structure);
let gradient = gradient::<n, m>(smoothed, sx, sy); let gradient = gradient::<n, m>(smoothed, sx, sy);
......
...@@ -194,7 +194,6 @@ pub fn edge_detection_harness(args: EdgeDetectionInputs) { ...@@ -194,7 +194,6 @@ pub fn edge_detection_harness(args: EdgeDetectionInputs) {
r.run( r.run(
height as u64, height as u64,
width as u64, width as u64,
gs as u64,
input_h.to(), input_h.to(),
gaussian_filter_h.to(), gaussian_filter_h.to(),
structure_h.to(), structure_h.to(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment