Table Of Contents

Previous topic

cudafilters. CUDA-accelerated Image Filtering

Next topic

cudaimgproc. CUDA-accelerated Image Processing

Image Filtering

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

cuda::Filter

class cuda::Filter

Common interface for all CUDA filters

class CV_EXPORTS Filter : public Algorithm
{
public:
    virtual void apply(InputArray src, OutputArray dst, Stream& stream = Stream::Null()) = 0;
};

cuda::Filter::apply

Applies the specified filter to the image.

C++: void cuda::Filter::apply(InputArray src, OutputArray dst, Stream& stream=Stream::Null()) = 0
Parameters:
  • src – Input image.
  • dst – Output image.
  • stream – Stream for the asynchronous version.

cuda::createBoxFilter

Creates a normalized 2D box filter.

C++: Ptr<Filter> cuda::createBoxFilter(int srcType, int dstType, Size ksize, Point anchor=Point(-1,-1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
Parameters:
  • srcType – Input image type. Only CV_8UC1 and CV_8UC4 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()

cuda::createLinearFilter

Creates a non-separable linear 2D filter.

C++: Ptr<Filter> cuda::createLinearFilter(int srcType, int dstType, InputArray kernel, Point anchor=Point(-1,-1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
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()

cuda::createLaplacianFilter

Creates a Laplacian operator.

C++: Ptr<Filter> cuda::createLaplacianFilter(int srcType, int dstType, int ksize=1, double scale=1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
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()

cuda::createSeparableLinearFilter

Creates a separable linear filter.

C++: Ptr<Filter> cuda::createSeparableLinearFilter(int srcType, int dstType, InputArray rowKernel, InputArray columnKernel, Point anchor=Point(-1,-1), int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
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()

cuda::createDerivFilter

Creates a generalized Deriv operator.

C++: Ptr<Filter> 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)
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.

cuda::createSobelFilter

Creates a Sobel operator.

C++: Ptr<Filter> cuda::createSobelFilter(int srcType, int dstType, int dx, int dy, int ksize=3, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
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()

cuda::createScharrFilter

Creates a vertical or horizontal Scharr operator.

C++: Ptr<Filter> cuda::createScharrFilter(int srcType, int dstType, int dx, int dy, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
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()

cuda::createGaussianFilter

Creates a Gaussian filter.

C++: Ptr<Filter> cuda::createGaussianFilter(int srcType, int dstType, Size ksize, double sigma1, double sigma2=0, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
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()

cuda::createMorphologyFilter

Creates a 2D morphological filter.

C++: Ptr<Filter> cuda::createMorphologyFilter(int op, int srcType, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1)
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 and CV_8UC4 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()

cuda::createBoxMaxFilter

Creates the maximum filter.

C++: Ptr<Filter> cuda::createBoxMaxFilter(int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
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.

cuda::createBoxMinFilter

Creates the minimum filter.

C++: Ptr<Filter> cuda::createBoxMinFilter(int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
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.

cuda::createRowSumFilter

Creates a horizontal 1D box filter.

C++: Ptr<Filter> cuda::createRowSumFilter(int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
Parameters:
  • srcType – Input image type. Only CV_8UC1 type is supported for now.
  • sumType – 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.

cuda::createColumnSumFilter

Creates a vertical 1D box filter.

C++: Ptr<Filter> cuda::createColumnSumFilter(int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
Parameters:
  • srcType – Input image type. Only CV_8UC1 type is supported for now.
  • sumType – 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.