Skip to content

Commit 4f104e6

Browse files
committed
Add imfilter benchmarks
1 parent 75f89d0 commit 4f104e6

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

benchmark/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
/Manifest.toml
2+
*.md

benchmark/benchmarks.jl

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using ImageFiltering
1+
using ImageFiltering, ImageCore
22
using PkgBenchmark
33
using BenchmarkTools
44
using Statistics: quantile, mean, median!
@@ -12,8 +12,35 @@ let grp = SUITE["mapwindow"]
1212
img3d = randn(10,11,12)
1313
grp["cheap f, tiny window"] = @benchmarkable mapwindow(first, $img1d, (1,))
1414
grp["extrema"] = @benchmarkable mapwindow(extrema, $img2d, (5,5))
15+
grp["maximum"] = @benchmarkable mapwindow(maximum, $img2d, (5,5))
16+
grp["minimum"] = @benchmarkable mapwindow(minimum, $img2d, (5,5))
1517
grp["median!"] = @benchmarkable mapwindow(median!, $img2d, (5,5))
1618
grp["mean, small window"] = @benchmarkable mapwindow(mean, $img1d, (3,))
1719
grp["mean, large window"] = @benchmarkable mapwindow(mean, $img3d, (5,5,5))
1820
grp["expensive f"] = @benchmarkable mapwindow(x -> quantile(vec(x), 0.7), $img3d, (3,3,3))
1921
end
22+
23+
SUITE["2d"] = BenchmarkGroup()
24+
let grp = SUITE["2d"]
25+
imgF32 = rand(Float32, 100, 100)
26+
imgN0f8 = Array(rand(N0f8, 100, 100))
27+
imggrayF32 = Array(rand(Gray{Float32}, 100, 100))
28+
imggrayN0f8 = Array(rand(Gray{N0f8}, 100, 100))
29+
imgrgbF32 = Array(rand(RGB{Float32}, 100, 100))
30+
imgrgbN0f8 = Array(rand(RGB{N0f8}, 100, 100))
31+
kern3x3 = (centered([ 1/5 1/4 1/7;
32+
1/2 1/3 -1/11;
33+
-1/25 1/9 -1/7]),)
34+
kernsobel = KernelFactors.sobel()[1]
35+
kerniir = KernelFactors.IIRGaussian(Float32.((5.2, 1.3)))
36+
for (name, img) in zip(("F32", "N0f8", "GrayF32", "GrayN0f8", "RGBF32", "RGBN0f8"),
37+
(imgF32, imgN0f8, imggrayF32, imggrayN0f8, imgrgbF32, imgrgbN0f8))
38+
for (kname, kern) in zip(("dense", "factored"), (kern3x3, kernsobel))
39+
grp[kname*"_"*name] = @benchmarkable imfilter($img, $kern, "replicate", ImageFiltering.FIR())
40+
end
41+
end
42+
for (name, img) in zip(("F32", "N0f8", "GrayF32", "GrayN0f8", "RGBF32", "RGBN0f8"),
43+
(imgF32, imgN0f8, imggrayF32, imggrayN0f8, imgrgbF32, imgrgbN0f8))
44+
grp["IIRGaussian_"*name] = @benchmarkable imfilter($img, $kerniir, "replicate", ImageFiltering.IIR())
45+
end
46+
end

0 commit comments

Comments
 (0)