MATLAB: Perform conv2 on a batch of images

conv2MATLABpagefunParallel Computing Toolbox

I have a set of 2D images for which I would like to convolve each image separately with a kernel. This is particularly important for GPU acceleration because doing the convolution one at a time with a for loop is much slower.
Ideally, conv2(A,B) would be written such as A can be a 3D matrix (m x n p), where p is the number of separate 2D arrays to perform the convolution with B on.
Is there any way in Matlab to do such a thing currently, or would I need to write my own mex function?

Best Answer

convn does exactly what you describe, given a 3-D array and a 2-D kernel.