OpenCV: Image Filtering

| OpenCV 3.4.2 Open Source Computer Vision

Classes | Functions
Image Filtering
Core functionality » OpenGL interoperability » CUDA-accelerated Computer Vision

## Classes
class | cv::cuda::Filter
| Common interface for all CUDA filters : More...

## Functions
Ptr< Filter > | cv::cuda::createBoxFilter (int srcType, int dstType, Size ksize, Point anchor=Point(-1,-1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates a normalized 2D box filter. More...
Ptr< Filter > | cv::cuda::createBoxMaxFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates the maximum filter. More...
Ptr< Filter > | cv::cuda::createBoxMinFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates the minimum filter. More...
Ptr< Filter > | cv::cuda::createColumnSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates a vertical 1D box filter. More...
Ptr< Filter > | cv::cuda::createDerivFilter (int srcType, int dstType, int dx, int dy, int ksize, bool normalize=false, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
| Creates a generalized Deriv operator. More...
Ptr< Filter > | cv::cuda::createGaussianFilter (int srcType, int dstType, Size ksize, double sigma1, double sigma2=0, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
| Creates a Gaussian filter. More...
Ptr< Filter > | cv::cuda::createLaplacianFilter (int srcType, int dstType, int ksize=1, double scale=1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates a Laplacian operator. More...
Ptr< Filter > | cv::cuda::createLinearFilter (int srcType, int dstType, InputArray kernel, Point anchor=Point(-1,-1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates a non-separable linear 2D filter. More...
Ptr< Filter > | cv::cuda::createMorphologyFilter (int op, int srcType, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1)
| Creates a 2D morphological filter. More...
Ptr< Filter > | cv::cuda::createRowSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
| Creates a horizontal 1D box filter. More...
Ptr< Filter > | cv::cuda::createScharrFilter (int srcType, int dstType, int dx, int dy, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
| Creates a vertical or horizontal Scharr operator. More...
Ptr< Filter > | cv::cuda::createSeparableLinearFilter (int srcType, int dstType, InputArray rowKernel, InputArray columnKernel, Point anchor=Point(-1,-1), int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
| Creates a separable linear filter. More...
Ptr< Filter > | cv::cuda::createSobelFilter (int srcType, int dstType, int dx, int dy, int ksize=3, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
| Creates a Sobel operator. More...

## Detailed Description

Functions and classes described in this section are used to perform various linear or non-linear filtering operations on 2D images.

Note
  - An example containing all basic morphology operators like erode and dilate can be found at opencv_source_code/samples/gpu/morphology.cpp

## Function Documentation

## ◆ createBoxFilter()

Ptr<Filter> cv::cuda::createBoxFilter | ( | int | srcType,
|  | int | dstType,
|  | Size | ksize,
|  | Point | anchor = `Point(-1,-1)`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates a normalized 2D box filter.

Parameters

  srcType | Input image type. Only CV_8UC1, CV_8UC4 and CV_32FC1 are supported for now.
  dstType | Output image type. Only the same type as src is supported for now.
  ksize | Kernel size.
  anchor | Anchor point. The default value Point(-1, -1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

See also
  boxFilter

## ◆ createBoxMaxFilter()

Ptr<Filter> cv::cuda::createBoxMaxFilter | ( | int | srcType,
|  | Size | ksize,
|  | Point | anchor = `Point(-1, -1)`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates the maximum filter.

Parameters

  srcType | Input/output image type. Only CV_8UC1 and CV_8UC4 are supported.
  ksize | Kernel size.
  anchor | Anchor point. The default value (-1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

## ◆ createBoxMinFilter()

Ptr<Filter> cv::cuda::createBoxMinFilter | ( | int | srcType,
|  | Size | ksize,
|  | Point | anchor = `Point(-1, -1)`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates the minimum filter.

Parameters

  srcType | Input/output image type. Only CV_8UC1 and CV_8UC4 are supported.
  ksize | Kernel size.
  anchor | Anchor point. The default value (-1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

## ◆ createColumnSumFilter()

Ptr<Filter> cv::cuda::createColumnSumFilter | ( | int | srcType,
|  | int | dstType,
|  | int | ksize,
|  | int | anchor = `-1`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates a vertical 1D box filter.

Parameters

  srcType | Input image type. Only CV_8UC1 type is supported for now.
  dstType | Output image type. Only CV_32FC1 type is supported for now.
  ksize | Kernel size.
  anchor | Anchor point. The default value (-1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

## ◆ createDerivFilter()

Ptr<Filter> cv::cuda::createDerivFilter | ( | int | srcType,
|  | int | dstType,
|  | int | dx,
|  | int | dy,
|  | int | ksize,
|  | bool | normalize = `false`,
|  | double | scale = `1`,
|  | int | rowBorderMode = `BORDER_DEFAULT`,
|  | int | columnBorderMode = `-1`
| ) |  |

Creates a generalized Deriv operator.

Parameters

  srcType | Source image type.
  dstType | Destination array type.
  dx | Derivative order in respect of x.
  dy | Derivative order in respect of y.
  ksize | Aperture size. See getDerivKernels for details.
  normalize | Flag indicating whether to normalize (scale down) the filter coefficients or not. See getDerivKernels for details.
  scale | Optional scale factor for the computed derivative values. By default, no scaling is applied. For details, see getDerivKernels .
  rowBorderMode | Pixel extrapolation method in the vertical direction. For details, see borderInterpolate.
  columnBorderMode | Pixel extrapolation method in the horizontal direction.

## ◆ createGaussianFilter()

Ptr<Filter> cv::cuda::createGaussianFilter | ( | int | srcType,
|  | int | dstType,
|  | Size | ksize,
|  | double | sigma1,
|  | double | sigma2 = `0`,
|  | int | rowBorderMode = `BORDER_DEFAULT`,
|  | int | columnBorderMode = `-1`
| ) |  |

Creates a Gaussian filter.

Parameters

  srcType | Source image type.
  dstType | Destination array type.
  ksize | Aperture size. See getGaussianKernel for details.
  sigma1 | Gaussian sigma in the horizontal direction. See getGaussianKernel for details.
  sigma2 | Gaussian sigma in the vertical direction. If 0, then \(\texttt{sigma2}\leftarrow\texttt{sigma1}\) .
  rowBorderMode | Pixel extrapolation method in the vertical direction. For details, see borderInterpolate.
  columnBorderMode | Pixel extrapolation method in the horizontal direction.

See also
  GaussianBlur

## ◆ createLaplacianFilter()

Ptr<Filter> cv::cuda::createLaplacianFilter | ( | int | srcType,
|  | int | dstType,
|  | int | ksize = `1`,
|  | double | scale = `1`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates a Laplacian operator.

Parameters

  srcType | Input image type. Supports CV_8U , CV_16U and CV_32F one and four channel image.
  dstType | Output image type. Only the same type as src is supported for now.
  ksize | Aperture size used to compute the second-derivative filters (see getDerivKernels). It must be positive and odd. Only ksize = 1 and ksize = 3 are supported.
  scale | Optional scale factor for the computed Laplacian values. By default, no scaling is applied (see getDerivKernels ).
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

See also
  Laplacian

## ◆ createLinearFilter()

Ptr<Filter> cv::cuda::createLinearFilter | ( | int | srcType,
|  | int | dstType,
|  | InputArray | kernel,
|  | Point | anchor = `Point(-1,-1)`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates a non-separable linear 2D filter.

Parameters

  srcType | Input image type. Supports CV_8U , CV_16U and CV_32F one and four channel image.
  dstType | Output image type. Only the same type as src is supported for now.
  kernel | 2D array of filter coefficients.
  anchor | Anchor point. The default value Point(-1, -1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

See also
  filter2D

## ◆ createMorphologyFilter()

Ptr<Filter> cv::cuda::createMorphologyFilter | ( | int | op,
|  | int | srcType,
|  | InputArray | kernel,
|  | Point | anchor = `Point(-1, -1)`,
|  | int | iterations = `1`
| ) |  |

Creates a 2D morphological filter.

Parameters

  op | Type of morphological operation. The following types are possible: MORPH_ERODE erode MORPH_DILATE dilate MORPH_OPEN opening MORPH_CLOSE closing MORPH_GRADIENT morphological gradient MORPH_TOPHAT "top hat" MORPH_BLACKHAT "black hat"
  srcType | Input/output image type. Only CV_8UC1, CV_8UC4, CV_32FC1 and CV_32FC4 are supported.
  kernel | 2D 8-bit structuring element for the morphological operation.
  anchor | Anchor position within the structuring element. Negative values mean that the anchor is at the center.
  iterations | Number of times erosion and dilation to be applied.

See also
  morphologyEx

## ◆ createRowSumFilter()

Ptr<Filter> cv::cuda::createRowSumFilter | ( | int | srcType,
|  | int | dstType,
|  | int | ksize,
|  | int | anchor = `-1`,
|  | int | borderMode = `BORDER_DEFAULT`,
|  | Scalar | borderVal = `Scalar::all(0)`
| ) |  |

Creates a horizontal 1D box filter.

Parameters

  srcType | Input image type. Only CV_8UC1 type is supported for now.
  dstType | Output image type. Only CV_32FC1 type is supported for now.
  ksize | Kernel size.
  anchor | Anchor point. The default value (-1) means that the anchor is at the kernel center.
  borderMode | Pixel extrapolation method. For details, see borderInterpolate .
  borderVal | Default border value.

## ◆ createScharrFilter()

Ptr<Filter> cv::cuda::createScharrFilter | ( | int | srcType,
|  | int | dstType,
|  | int | dx,
|  | int | dy,
|  | double | scale = `1`,
|  | int | rowBorderMode = `BORDER_DEFAULT`,
|  | int | columnBorderMode = `-1`
| ) |  |

Creates a vertical or horizontal Scharr operator.

Parameters

  srcType | Source image type.
  dstType | Destination array type.
  dx | Order of the derivative x.
  dy | Order of the derivative y.
  scale | Optional scale factor for the computed derivative values. By default, no scaling is applied. See getDerivKernels for details.
  rowBorderMode | Pixel extrapolation method in the vertical direction. For details, see borderInterpolate.
  columnBorderMode | Pixel extrapolation method in the horizontal direction.

See also
  Scharr

## ◆ createSeparableLinearFilter()

Ptr<Filter> cv::cuda::createSeparableLinearFilter | ( | int | srcType,
|  | int | dstType,
|  | InputArray | rowKernel,
|  | InputArray | columnKernel,
|  | Point | anchor = `Point(-1,-1)`,
|  | int | rowBorderMode = `BORDER_DEFAULT`,
|  | int | columnBorderMode = `-1`
| ) |  |

Creates a separable linear filter.

Parameters

  srcType | Source array type.
  dstType | Destination array type.
  rowKernel | Horizontal filter coefficients. Support kernels with size <= 32 .
  columnKernel | Vertical filter coefficients. Support kernels with size <= 32 .
  anchor | Anchor position within the kernel. Negative values mean that anchor is positioned at the aperture center.
  rowBorderMode | Pixel extrapolation method in the vertical direction For details, see borderInterpolate.
  columnBorderMode | Pixel extrapolation method in the horizontal direction.

See also
  sepFilter2D

## ◆ createSobelFilter()

Ptr<Filter> cv::cuda::createSobelFilter | ( | int | srcType,
|  | int | dstType,
|  | int | dx,
|  | int | dy,
|  | int | ksize = `3`,
|  | double | scale = `1`,
|  | int | rowBorderMode = `BORDER_DEFAULT`,
|  | int | columnBorderMode = `-1`
| ) |  |

Creates a Sobel operator.

Parameters

  srcType | Source image type.
  dstType | Destination array type.
  dx | Derivative order in respect of x.
  dy | Derivative order in respect of y.
  ksize | Size of the extended Sobel kernel. Possible values are 1, 3, 5 or 7.
  scale | Optional scale factor for the computed derivative values. By default, no scaling is applied. For details, see getDerivKernels .
  rowBorderMode | Pixel extrapolation method in the vertical direction. For details, see borderInterpolate.
  columnBorderMode | Pixel extrapolation method in the horizontal direction.

See also
  Sobel