gives the convolution of image with kernel ker.

Details and Options

  • ImageConvolve performs the convolution operation on an image. It is a spatial filtering function used to apply any finite-dimensioned filter, also known as a finite impulse response (FIR) filter, to an image.
  • ImageConvolve works with 2D and 3D images, operating separately on each channel.
  • The convolution kernel ker is given as a two-dimensional numerical matrix, a one-channel image or a multichannel image with the same number of channels as image.
  • ImageConvolve[image,ker] by default gives an image of the same dimensions as image.
  • ImageConvolve takes a Padding option. The default setting is Padding->"Fixed".
  • With a setting Padding->None, ImageConvolve[image,ker] normally gives an image smaller than image.
  • ImageConvolve gives an image of a real type.

Background & Context

  • ImageConvolve performs the convolution operation on an image. Convolution is an integral (or its discrete analog) that expresses the amount of overlap of one function as it is shifted over another. Convolution therefore blends one function or image with another and can be used to perform many useful operations on images such as smoothing, feature extraction, and differentiation.
  • The smoothing function that is shifted over an image to perform convolution is a matrix known as a kernel, and many different kinds of kernels are possible and useful depending on context. GaussianFilter and MeanFilter are special cases of ImageConvolve that use a Gaussian and the mean value in a given range, respectively, as their kernels.
  • ImageConvolve is a local operation, meaning it produces output pixel values based only upon the pixel values in its neighborhood as determined by the kernel. It is also a linear one, meaning it is convolution-based and replaces each pixel by a linear combination of its neighbors.
  • The converse operation to ImageConvolve is ImageDeconvolve. The function ListConvolve performs the operation of convolution on lists (as opposed to images).


open allclose all

Basic Examples  (2)

Smooth an image by convolving with a square kernel:

Click for copyable input

Convolve a grayscale image with a Sobel mask to detect vertical edges:

Click for copyable input

Scope  (5)

Options  (4)

Applications  (3)

Properties & Relations  (3)

See Also

ImageDeconvolve  ListConvolve  ImageCorrelate  GaussianFilter  GradientFilter  DiskMatrix  BoxMatrix  GaussianMatrix  ImageEffect


Introduced in 2008
| Updated in 2012