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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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 .
- rowBorderMode – Pixel extrapolation method in the vertical direction. For details, see borderInterpolate().
- columnBorderMode – Pixel extrapolation method in the horizontal direction.
|
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)
-
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.
|