public void TestConvolve() { var img = Shape(3, 4, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f); var kernel = Shape(2, 3, 1.0f, 0.0f, 0.0f, 2.0f, 3.0f, 1.0f); var expected = Shape(3, 4, 10.0f, 14.0f, 21.0f, 19.0f, 23.0f, 30.0f, 40.0f, 44.0f, 51.0f, 58.0f, 62.0f, 69.0f); var res = new NativeImage <float>(3, 4); ImageOperations.Convolve(img, kernel, res); Assert.True(BitmapEquals(res, expected)); ImageOperations.Convolve_Optimized(img, kernel, res); Assert.True(BitmapEquals(res, expected)); ImageOperations.Convolve_Avx(img, kernel, res); Assert.True(BitmapEquals(res, expected)); }
[Benchmark] public void Convolve() => ImageOperations.Convolve(img1, kernel, res);