MATLAB: Bug with conv2

convolutionimage processing

image_2019_10_24T18_30_29_919Z.png
Here is a sample convolution performed with the built in function conv2. Unless I am completely crazy, this is not even close to the correct answer? Based on that image and kernel, I was expecting the output to be: [3 5 4; 9 0 6; 1 7 3]. Does anyone know of issues with conv2, or have insight to share?

Best Answer

The above output from conv2 with the argument as 'valid' is expected.
If you are computing in the paper the kernel needs to be flipped and then slid over the image I.
The resultant kernel will be
0 0 0
0 0 0
0 0 1
Then the output will be,
3 7 8
7 2 9
3 8 0