1- using ImageFiltering
1+ using ImageFiltering, ImageCore
22using PkgBenchmark
33using BenchmarkTools
44using 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 ))
1921end
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