Image Filtering#

Detailed Description#

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

Note

Classes#

Name

Description

class cv::cuda::Filter

Common interface for all CUDA filters : View details

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

#include <opencv2/cudafilters.hpp>

Creates a normalized 2D box filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

boxFilter

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.

createBoxMaxFilter()#

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

#include <opencv2/cudafilters.hpp>

Creates the maximum filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

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

#include <opencv2/cudafilters.hpp>

Creates the minimum filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

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

#include <opencv2/cudafilters.hpp>

Creates a vertical 1D box filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

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 )

#include <opencv2/cudafilters.hpp>

Creates a generalized Deriv operator.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

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 )

#include <opencv2/cudafilters.hpp>

Creates a Gaussian filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

GaussianBlur

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.

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

#include <opencv2/cudafilters.hpp>

Creates a Laplacian operator.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

Laplacian

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.

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

#include <opencv2/cudafilters.hpp>

Creates a non-separable linear 2D filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

filter2D

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.

createMorphologyFilter()#

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

#include <opencv2/cudafilters.hpp>

Creates a 2D morphological filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

morphologyEx

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.

createRowSumFilter()#

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

#include <opencv2/cudafilters.hpp>

Creates a horizontal 1D box filter.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

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 )

#include <opencv2/cudafilters.hpp>

Creates a vertical or horizontal Scharr operator.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

Scharr

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.

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 )

#include <opencv2/cudafilters.hpp>

Creates a separable linear filter. In-place processing is supported.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

sepFilter2D

Parameters

  • srcType — Source array type.

  • dstType — Destination array type.

  • rowKernel — Horizontal filter coefficients. Support kernels with size <= 32 . noArray() is supported to ignore the row filtering.

  • columnKernel — Vertical filter coefficients. Support kernels with size <= 32 . noArray() is supported to ignore the column filtering.

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

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 )

#include <opencv2/cudafilters.hpp>

Creates a Sobel operator.

Note

If applied in a CUDA Stream, a distinct filter instance must be created for each Stream. Sharing a single instance across multiple streams is unsupported and may lead to undefined behavior due to stream-specific internal state.

See also

Sobel

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.