Perform conv2 on a batch of images

6 vues (au cours des 30 derniers jours)
Jonathan
Jonathan le 7 Août 2015
Modifié(e) : Jonathan le 7 Août 2015
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?

Réponse acceptée

David Young
David Young le 7 Août 2015
convn does exactly what you describe, given a 3-D array and a 2-D kernel.
  1 commentaire
Jonathan
Jonathan le 7 Août 2015
Modifié(e) : Jonathan le 7 Août 2015
Yes, thanks, you are correct. From the docs, it sounded like both kernel and array would need to be of the same dimension.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 7 Août 2015
You can use pagefun() with conv2 with a gpuarray
  1 commentaire
Jonathan
Jonathan le 7 Août 2015
Does not work yet with pagefun. However, convn does do the same thing.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by