---
title: Convolution
framework: accelerate
role: collectionGroup
role_heading: API Collection
path: accelerate/convolution
---

# Convolution

Apply a convolution kernel to an image.

## Overview

Overview Convolution is a common image-processing technique that changes the value of a pixel according to the values of its surrounding pixels. Many common image filters, such as blurring, detecting edges, sharpening, and embossing, derive from convolution. Kernels form the basis of convolution operations. Kernels are arrays or matrices of weights that indicate the influence of a pixel’s neighbors on its final value. To calculate the value of each transformed pixel, a convolution operation adds the products of each surrounding pixel value with the corresponding kernel value. During a convolution operation, the kernel passes over every pixel in the image, repeating this procedure, and then applies the effect to the entire image.

## Topics

### Convolving an 8-bit image with 32-bit weights

- [vImageConvolveFloatKernel_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvefloatkernel_argb8888(_:_:_:_:_:_:_:_:_:_:_:).md)

### Convolving with separable filter kernels

- [vImageSepConvolve_Planar8(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_planar8(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageSepConvolve_Planar16U(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_planar16u(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageSepConvolve_Planar16F(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_planar16f(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageSepConvolve_PlanarF(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_planarf(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageSepConvolve_Planar8to16U(_:_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_planar8to16u(_:_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageSepConvolve_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagesepconvolve_argb8888(_:_:_:_:_:_:_:_:_:_:_:_:).md)

### Convolving without bias

- [vImageConvolve_Planar8(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_planar8(_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolve_Planar16F(_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_planar16f(_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolve_PlanarF(_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_planarf(_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolve_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_argb8888(_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolve_ARGB16F(_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_argb16f(_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolve_ARGBFFFF(_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolve_argbffff(_:_:_:_:_:_:_:_:_:_:).md)

### Convolving with bias

- [vImageConvolveWithBias_Planar8(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_planar8(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveWithBias_Planar16F(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_planar16f(_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveWithBias_PlanarF(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_planarf(_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveWithBias_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_argb8888(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveWithBias_ARGB16F(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_argb16f(_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveWithBias_ARGBFFFF(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvewithbias_argbffff(_:_:_:_:_:_:_:_:_:_:_:).md)

### Convolving with multiple kernels

- [vImageConvolveMultiKernel_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvemultikernel_argb8888(_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageConvolveMultiKernel_ARGBFFFF(_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimageconvolvemultikernel_argbffff(_:_:_:_:_:_:_:_:_:_:_:).md)

### Convolving with high-speed box and tent filters

- [vImageBoxConvolve_Planar8(_:_:_:_:_:_:_:_:_:)](accelerate/vimageboxconvolve_planar8(_:_:_:_:_:_:_:_:_:).md)
- [vImageBoxConvolve_ARGB8888(_:_:_:_:_:_:_:_:_:)](accelerate/vimageboxconvolve_argb8888(_:_:_:_:_:_:_:_:_:).md)
- [vImageTentConvolve_Planar8(_:_:_:_:_:_:_:_:_:)](accelerate/vimagetentconvolve_planar8(_:_:_:_:_:_:_:_:_:).md)
- [vImageTentConvolve_ARGB8888(_:_:_:_:_:_:_:_:_:)](accelerate/vimagetentconvolve_argb8888(_:_:_:_:_:_:_:_:_:).md)

### Deconvolving

- [vImageRichardsonLucyDeConvolve_Planar8(_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagerichardsonlucydeconvolve_planar8(_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageRichardsonLucyDeConvolve_PlanarF(_:_:_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagerichardsonlucydeconvolve_planarf(_:_:_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageRichardsonLucyDeConvolve_ARGB8888(_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagerichardsonlucydeconvolve_argb8888(_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:_:).md)
- [vImageRichardsonLucyDeConvolve_ARGBFFFF(_:_:_:_:_:_:_:_:_:_:_:_:_:_:)](accelerate/vimagerichardsonlucydeconvolve_argbffff(_:_:_:_:_:_:_:_:_:_:_:_:_:_:).md)

## See Also

### Convolution and Morphology

- [Blurring an image](accelerate/blurring-an-image.md)
- [Adding a bokeh effect to images](accelerate/adding-a-bokeh-effect-to-images.md)
- [Morphology](accelerate/morphology.md)
