List of Supported Functions with Limitations and Other Notes

Hundreds of functions in MATLAB® and dozens of functions in Image Processing Toolbox™ run automatically on a GPU if you supply a gpuArray argument. Whenever any of these functions is called with at least one gpuArray as an input argument, the function executes on the GPU and generates a gpuArray as the result. You can mix inputs using both gpuArray and MATLAB arrays in the same function call; the MATLAB arrays are transferred to the GPU for the function execution.

The following table lists all the Image Processing Toolbox functions that have been enabled to run on a GPU. In most cases, the functions support the same syntaxes and operate the same, but in some cases there are certain differences. This table lists these limitations, if any.

FunctionRemarks/Limitations
bwdistInput images must be 2-D and have less than 232 elements. Euclidean is the only distance metric supported.
bwlabel

bwlookup

bwmorph
corr2
edgeCanny method is not supported on the GPU.
histeq
im2double
im2int16
im2single
im2uint8
im2uint16
imabsdiff
imadjust

imbothat

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional.

imclose

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional.

imcomplement

imdilate

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional

The PACKOPT syntaxes are not supported on the GPU.

imerode

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional

The PACKOPT syntaxes are not supported on the GPU.

imfillInputs must be 2-D, supporting only the 2-D connectivities (4 and 8). Does not support the interactive hole filling syntax.

imfilter

Input kernel must be 2-D
imgaussfilt
imgaussfilt3
imgradient
imgradientxy
imhistWhen running on a GPU, imhist does not display the histogram. To display the histogram, use stem(binLocations,counts).
imlincomb
imnoise

imopen

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional.

imreconstructInputs must be 2-D, supporting only the 2-D connectivities (4 and 8).
imregdemonsThe parameter 'DisplayWaitbar' is not supported on the GPU.
imregionalmaxInputs must be 2-D, supporting only the 2-D connectivities (4 and 8).
imregionalminInputs must be 2-D, supporting only the 2-D connectivities (4 and 8).
imresizegpuArray input must be of type single or double. Only bicubic interpolation is supported on GPU and the function always performs antialiasing.

imrotate

The 'bicubic' interpolation mode used in the GPU implementation of this function differs from the default (CPU) bicubic mode. The GPU and CPU versions of this function are expected to give slightly different results.

imshow

imtophat

gpuArray input must be of type uint8 or logical and the structuring element must be flat and two-dimensional.

imwarp

Only affine2d, affine3d, and projective2d transformations are supported. Only 'nearest' and 'linear' interpolation types are supported. Displacement fields are not supported.

iradonThe GPU implementation of this function supports only nearest-neighbor and linear interpolation methods.
mat2gray
mean2
medfilt2Padding options are not supported on the GPU.
normxcorr2

padarray

radon
rgb2gray
rgb2ycbcr
regionpropsgpuArray input must be a 2-D logical matrix or a 2-D label matrix. The connected component structure (CC) input is not supported. The following properties are not supported: 'ConvexArea', 'ConvexHull', 'ConvexImage', 'EulerNumber', 'FilledArea', 'FilledImage', and 'Solidity'. 'struct' is the only return type supported.

std2

stdfiltThe filtering neighborhood must be two-dimensional.
stretchlim
ycbcr2rgb