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