If I understand your question correctly, then for even cores you are right that this is an agreement to center the core so that there is another pattern in front of the new zero.
So, for a kernel with a width of 4, the centered indices will be -2 -1 0 +1 , as you say above.
However, this is really just a convention - asymmetric convolution is very rarely used in any case, and the exact nature of the asymmetry (left / right, etc.) has nothing to do with the โcorrectโ result. I would suggest that the reason most implementations behave this way is because they can give comparable results with the same inputs.
When performing convolution in the frequency domain, the core is filled in the same way as the image size, and you have already stated that you are performing convolution in the spatial domain.
I am much more intrigued why you need to use an even sized kernel.
source share