Kernel-based image convolution