Image Processing

Overview

// classes

class cv::cuda::CannyEdgeDetector;
class cv::cuda::TemplateMatching;

// global functions

void
cv::cuda::bilateralFilter(
    InputArray src,
    OutputArray dst,
    int kernel_size,
    float sigma_color,
    float sigma_spatial,
    int borderMode = BORDER_DEFAULT,
    Stream& stream = Stream::Null()
    );

void
cv::cuda::blendLinear(
    InputArray img1,
    InputArray img2,
    InputArray weights1,
    InputArray weights2,
    OutputArray result,
    Stream& stream = Stream::Null()
    );

Ptr<CannyEdgeDetector>
cv::cuda::createCannyEdgeDetector(
    double low_thresh,
    double high_thresh,
    int apperture_size = 3,
    bool L2gradient = false
    );

Ptr<TemplateMatching>
cv::cuda::createTemplateMatching(
    int srcType,
    int method,
    Size user_block_size = Size()
    );

void
cv::cuda::meanShiftFiltering(
    InputArray src,
    OutputArray dst,
    int sp,
    int sr,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    );

void
cv::cuda::meanShiftProc(
    InputArray src,
    OutputArray dstr,
    OutputArray dstsp,
    int sp,
    int sr,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    );

void
cv::cuda::meanShiftSegmentation(
    InputArray src,
    OutputArray dst,
    int sp,
    int sr,
    int minsize,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    );

Detailed Documentation

Global Functions

void
cv::cuda::bilateralFilter(
    InputArray src,
    OutputArray dst,
    int kernel_size,
    float sigma_color,
    float sigma_spatial,
    int borderMode = BORDER_DEFAULT,
    Stream& stream = Stream::Null()
    )

Performs bilateral filtering of passed image.

Parameters:

src Source image. Supports only (channles != 2 && depth() != CV_8S && depth() != CV_32S && depth() != CV_64F).
dst Destination imagwe.
kernel_size Kernel window size.
sigma_color Filter sigma in the color space.
sigma_spatial Filter sigma in the coordinate space.
borderMode Border type. See borderInterpolate for details. BORDER_REFLECT101 , BORDER_REPLICATE , BORDER_CONSTANT , BORDER_REFLECT and BORDER_WRAP are supported for now.
stream Stream for the asynchronous version.

See also:

bilateralFilter

void
cv::cuda::blendLinear(
    InputArray img1,
    InputArray img2,
    InputArray weights1,
    InputArray weights2,
    OutputArray result,
    Stream& stream = Stream::Null()
    )

Performs linear blending of two images.

Parameters:

img1 First image. Supports only CV_8U and CV_32F depth.
img2 Second image. Must have the same size and the same type as img1 .
weights1 Weights for first image. Must have tha same size as img1 . Supports only CV_32F type.
weights2 Weights for second image. Must have tha same size as img2 . Supports only CV_32F type.
result Destination image.
stream Stream for the asynchronous version.
Ptr<CannyEdgeDetector>
cv::cuda::createCannyEdgeDetector(
    double low_thresh,
    double high_thresh,
    int apperture_size = 3,
    bool L2gradient = false
    )

Creates implementation for cuda::CannyEdgeDetector.

Parameters:

low_thresh First threshold for the hysteresis procedure.
high_thresh Second threshold for the hysteresis procedure.
apperture_size Aperture size for the Sobel operator.
L2gradient Flag indicating whether a more accurate \(L_2\) norm \(=\sqrt{(dI/dx)^2 + (dI/dy)^2}\) should be used to compute the image gradient magnitude ( L2gradient=true ), or a faster default \(L_1\) norm \(=|dI/dx|+|dI/dy|\) is enough ( L2gradient=false ).
Ptr<TemplateMatching>
cv::cuda::createTemplateMatching(
    int srcType,
    int method,
    Size user_block_size = Size()
    )

Creates implementation for cuda::TemplateMatching.

The following methods are supported for the CV_8U depth images for now:

  • CV_TM_SQDIFF
  • CV_TM_SQDIFF_NORMED
  • CV_TM_CCORR
  • CV_TM_CCORR_NORMED
  • CV_TM_CCOEFF
  • CV_TM_CCOEFF_NORMED

The following methods are supported for the CV_32F images for now:

  • CV_TM_SQDIFF
  • CV_TM_CCORR

Parameters:

srcType Input source type. CV_32F and CV_8U depth images (1..4 channels) are supported for now.
method Specifies the way to compare the template with the image.
user_block_size You can use field user_block_size to set specific block size. If you leave its default value Size(0,0) then automatic estimation of block size will be used (which is optimized for speed). By varying user_block_size you can reduce memory requirements at the cost of speed.

See also:

matchTemplate

void
cv::cuda::meanShiftFiltering(
    InputArray src,
    OutputArray dst,
    int sp,
    int sr,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    )

Performs mean-shift filtering for each point of the source image.

It maps each point of the source image into another point. As a result, you have a new color and new position of each point.

Parameters:

src Source image. Only CV_8UC4 images are supported for now.
dst Destination image containing the color of mapped points. It has the same size and type as src .
sp Spatial window radius.
sr Color window radius.
criteria Termination criteria. See TermCriteria.
stream Stream for the asynchronous version.
void
cv::cuda::meanShiftProc(
    InputArray src,
    OutputArray dstr,
    OutputArray dstsp,
    int sp,
    int sr,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    )

Performs a mean-shift procedure and stores information about processed points (their colors and positions) in two images.

Parameters:

src Source image. Only CV_8UC4 images are supported for now.
dstr Destination image containing the color of mapped points. The size and type is the same as src .
dstsp Destination image containing the position of mapped points. The size is the same as src size. The type is CV_16SC2 .
sp Spatial window radius.
sr Color window radius.
criteria Termination criteria. See TermCriteria.
stream Stream for the asynchronous version.

See also:

cuda::meanShiftFiltering

void
cv::cuda::meanShiftSegmentation(
    InputArray src,
    OutputArray dst,
    int sp,
    int sr,
    int minsize,
    TermCriteria criteria = TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1),
    Stream& stream = Stream::Null()
    )

Performs a mean-shift segmentation of the source image and eliminates small segments.

Parameters:

src Source image. Only CV_8UC4 images are supported for now.
dst Segmented image with the same size and type as src (host memory).
sp Spatial window radius.
sr Color window radius.
minsize Minimum segment size. Smaller segments are merged.
criteria Termination criteria. See TermCriteria.
stream Stream for the asynchronous version.