Image Filtering

Overview

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

// classes

class cv::cuda::Filter;

// global 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)
    );

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

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

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

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
    );

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

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

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)
    );

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

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

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

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
    );

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
    );

Detailed Documentation

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

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

Global 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.

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

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.
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.
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.
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.
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

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

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

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

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.
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

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

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