# ImageConvolve

ImageConvolve[image,ker]

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 or a one-channel image.
• ImageConvolve[image,ker] by default gives an image of the same dimensions as image.
• With a setting , 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).

# Examples

open allclose all

## Basic Examples(2)

Smooth an image by convolving with a square kernel:

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

## Scope(5)

### Data(2)

Convolve a binary image:

Smooth a 3D image:

### Parameters(3)

Blur an image with a horizontal kernel:

Use a vertical kernel:

Blur a 3D image in the vertical direction only:

Blur in the horizontal direction only:

## Options(4)

By default, a "Fixed" padding is used:

No padding results in a smaller image:

## Applications(3)

Apply horizontal blur:

Find edges using Robert's method:

## Properties & Relations(3)

Convolution with a constant filter has an effect equivalent to mean filtering:

Relation with ListConvolve:

ImageConvolve gives an image of a real type:

Wolfram Research (2008), ImageConvolve, Wolfram Language function, https://reference.wolfram.com/language/ref/ImageConvolve.html (updated 2012).

#### Text

Wolfram Research (2008), ImageConvolve, Wolfram Language function, https://reference.wolfram.com/language/ref/ImageConvolve.html (updated 2012).

#### CMS

Wolfram Language. 2008. "ImageConvolve." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2012. https://reference.wolfram.com/language/ref/ImageConvolve.html.

#### APA

Wolfram Language. (2008). ImageConvolve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ImageConvolve.html

#### BibTeX

@misc{reference.wolfram_2024_imageconvolve, author="Wolfram Research", title="{ImageConvolve}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/ImageConvolve.html}", note=[Accessed: 20-September-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_imageconvolve, organization={Wolfram Research}, title={ImageConvolve}, year={2012}, url={https://reference.wolfram.com/language/ref/ImageConvolve.html}, note=[Accessed: 20-September-2024 ]}