public void ConvolutionWithIdentityKernel_OutputEqualsInput_3x3() { var kernel = new Kernel2D <short>(Kernels.Short.Identity3x3); var convolution = new Convolution2D <short>(kernel, 1, 1); convolution.Convolve(m_InputImage, m_IntermediateImage); // TODO - iterate through, check padding ? convolution.Dispose(); }
public void ConvolutionWithIdentityKernel_OutputEqualsInput_1x1() { var kernel = new Kernel2D <short>(Kernels.Short.Identity1x1); var convolution = new Convolution2D <short>(kernel, 1, 0); convolution.Convolve(m_InputImage, m_IntermediateImage); m_InputImage.Buffer.AssertDeepEqual(m_IntermediateImage.Buffer); convolution.Dispose(); }
public void ConvolutionWith_1x1Stride_1x1Pad(int width, int height, float[,] kernelInput, float[] input, float[] expectedInput) { var kernel = new Kernel2D <float>(kernelInput, Allocator.Temp); var convolution = new Convolution2D <float>(kernel, 1, 1); var image = new Image <float>(input, width, height, Allocator.Temp); var outWidth = width - convolution.Padding.x * 2; var outHeight = height - convolution.Padding.y * 2; var expected = new Image <float>(expectedInput, width, height, Allocator.Temp); var output = new Image <float>(outWidth, outHeight, Allocator.Temp); convolution.Convolve(image, output); output.Print(); expected.AssertEqualWithin(output); convolution.Dispose(); image.Dispose(); output.Dispose(); expected.Dispose(); }
public void Execute() { Convolution.Convolve(Input, Output); }