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