OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
cv::cuda 命名空间参考

命名空间

命名空间  device
 

类  BackgroundSubtractorFGD
 该类通过构建和维护背景模型来区分前景和背景像素。 更多...
 
类  BackgroundSubtractorGMG
 背景/前景分割算法更多...
 
类  BackgroundSubtractorMOG
 基于高斯混合模型的背景/前景分割算法更多...
 
类  BackgroundSubtractorMOG2
 基于高斯混合模型的背景/前景分割算法更多...
 
类  BroxOpticalFlow
 使用 Brox 等人的光流算法计算两个图像光流的类 ([44])。 更多...
 
类  BufferPool
 用于 CUDA 流的缓冲池更多...
 
类  CannyEdgeDetector
 Canny 边缘检测器的基类。 : 更多...
 
类  CascadeClassifier
 用于对象检测的级联分类器类。支持 HAAR 和 LBP 级联。 : 更多...
 
类  CLAHE
 限制对比度自适应直方图均衡化的基类。 : 更多...
 
类  Convolution
 卷积(或互相关)运算符的基类。 : 更多...
 
类  CornernessCriteria
 角点特性准则计算的基类。 : 更多...
 
类  CornersDetector
 角点检测器的基类。 : 更多...
 
类  DenseOpticalFlow
 稠密光流算法的基础接口。 更多...
 
类  DensePyrLKOpticalFlow
 用于计算稠密光流的类。 更多...
 
类  DescriptorMatcher
 用于匹配关键点描述符的抽象基类。 更多...
 
类  DeviceInfo
 提供查询指定 GPU 属性功能的类。 更多...
 
类  DFT
 作为 cv::AlgorithmDFT 运算符基类。 : 更多...
 
类  DisparityBilateralFilter
 使用联合双边滤波优化视差图的类。 : 更多...
 
类  Event
 
结构体  EventAccessor
 能够从 cuda::Event 获取 cudaEvent_t 的类。 更多...
 
类  FarnebackOpticalFlow
 使用 Gunnar Farneback 算法计算稠密光流的类。 更多...
 
类  FastFeatureDetector
 使用 FAST 方法进行特征检测的封装类。 更多...
 
类  FastOpticalFlowBM
 
类  Feature2DAsync
 CUDA 异步 2D 图像特征检测器和描述符提取器的抽象基类。 更多...
 
结构体  FGDParams
 
类  Filter
 所有 CUDA 滤波器的通用接口 : 更多...
 
结构体  GpuData
 
类  GpuMat
 具有引用计数的 GPU 内存基础存储类。 更多...
 
类  GpuMatND
 
类  HOG
 该类实现了方向梯度直方图 ([66]) 目标检测器。 更多...
 
类  HostMem
 封装了来自 CUDA 的特殊内存类型分配函数的引用计数类。 更多...
 
类  HoughCirclesDetector
 圆检测算法的基类。 : 更多...
 
类  HoughLinesDetector
 直线检测算法的基类。 : 更多...
 
类  HoughSegmentDetector
 线段检测算法的基类。 : 更多...
 
类  ImagePyramid
 
类  LookUpTable
 使用查找表进行变换的基类。 更多...
 
类  NvidiaHWOpticalFlow
 使用 NVIDIA 光流 SDK 的光流算法基础接口。 更多...
 
类  NvidiaOpticalFlow_1_0
 使用 NVIDIA 光流硬件和光流 SDK 1.0 计算两个图像之间光流向量的类。 更多...
 
类  NvidiaOpticalFlow_2_0
 使用 NVIDIA 光流硬件和光流 SDK 2.0 计算两个图像之间光流向量的类。 更多...
 
类  OpticalFlowDual_TVL1
 Zach、Pock 和 Bischof 双对偶 TV-L1 光流方法的实现。 更多...
 
类  ORB
 实现 ORB (oriented BRIEF) 关键点检测器和描述符提取器的类。 更多...
 
类  SparseOpticalFlow
 稀疏光流算法的基础接口。 更多...
 
类  SparsePyrLKOpticalFlow
 用于计算稀疏光流的类。 更多...
 
类  StereoBeliefPropagation
 使用信念传播算法计算立体匹配的类。 : 更多...
 
类  StereoBM
 使用块匹配算法计算立体匹配(视差图)的类。 : 更多...
 
类  StereoConstantSpaceBP
 使用常量空间信念传播算法计算立体匹配的类。 : 更多...
 
类  StereoSGM
 该类实现了改进的 H. Hirschmuller 算法 [129]。限制和区别如下: 更多...
 
类  流 (Stream)
 该类封装了一个异步调用队列。 更多...
 
结构体  StreamAccessor
 能够从 cuda::Stream 获取 cudaStream_t 的类。 更多...
 
类  SURF_CUDA
 用于从图像中提取加速稳健特征 (SURF) 的类。 : 更多...
 
类  TargetArchs
 提供一组静态方法来检查 CUDA 模块是为哪种 NVIDIA* 显卡架构构建的类。 更多...
 
类  TemplateMatching
 模板匹配的基类。 : 更多...
 

枚举

enum  AlphaCompTypes {
  ALPHA_OVER ,
  ALPHA_IN ,
  ALPHA_OUT ,
  ALPHA_ATOP ,
  ALPHA_XOR ,
  ALPHA_PLUS ,
  ALPHA_OVER_PREMUL ,
  ALPHA_IN_PREMUL ,
  ALPHA_OUT_PREMUL ,
  ALPHA_ATOP_PREMUL ,
  ALPHA_XOR_PREMUL ,
  ALPHA_PLUS_PREMUL ,
  ALPHA_PREMUL
}
 
enum  ConnectedComponentsAlgorithmsTypes {
  CCL_DEFAULT = -1 ,
  CCL_BKE = 0
}
 连通分量算法。 更多...
 
enum  DemosaicTypes {
  COLOR_BayerBG2BGR_MHT = 256 ,
  COLOR_BayerGB2BGR_MHT = 257 ,
  COLOR_BayerRG2BGR_MHT = 258 ,
  COLOR_BayerGR2BGR_MHT = 259 ,
  COLOR_BayerBG2RGB_MHT = COLOR_BayerRG2BGR_MHT ,
  COLOR_BayerGB2RGB_MHT = COLOR_BayerGR2BGR_MHT ,
  COLOR_BayerRG2RGB_MHT = COLOR_BayerBG2BGR_MHT ,
  COLOR_BayerGR2RGB_MHT = COLOR_BayerGB2BGR_MHT ,
  COLOR_BayerBG2GRAY_MHT = 260 ,
  COLOR_BayerGB2GRAY_MHT = 261 ,
  COLOR_BayerRG2GRAY_MHT = 262 ,
  COLOR_BayerGR2GRAY_MHT = 263
}
 
enum  FeatureSet {
  FEATURE_SET_COMPUTE_10 = 10 ,
  FEATURE_SET_COMPUTE_11 = 11 ,
  FEATURE_SET_COMPUTE_12 = 12 ,
  FEATURE_SET_COMPUTE_13 = 13 ,
  FEATURE_SET_COMPUTE_20 = 20 ,
  FEATURE_SET_COMPUTE_21 = 21 ,
  FEATURE_SET_COMPUTE_30 = 30 ,
  FEATURE_SET_COMPUTE_32 = 32 ,
  FEATURE_SET_COMPUTE_35 = 35 ,
  FEATURE_SET_COMPUTE_50 = 50 ,
  GLOBAL_ATOMICS = FEATURE_SET_COMPUTE_11 ,
  SHARED_ATOMICS = FEATURE_SET_COMPUTE_12 ,
  NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13 ,
  WARP_SHUFFLE_FUNCTIONS = FEATURE_SET_COMPUTE_30 ,
  DYNAMIC_PARALLELISM = FEATURE_SET_COMPUTE_35
}
 提供 CUDA 计算特性的枚举。 更多...
 
enum  MomentsOrder {
  FIRST_ORDER_MOMENTS = 1 ,
  SECOND_ORDER_MOMENTS = 2 ,
  THIRD_ORDER_MOMENTS = 3
}
 图像矩的阶数。 更多...
 

函数

void abs (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素的绝对值。
 
void absdiff (InputArray src1, InputArray src2, OutputArray dst, Stream &stream=Stream::Null())
 计算两个矩阵(或矩阵与标量)的逐元素绝对差值。
 
void absdiffWithScalar (InputArray src1, Scalar src2, OutputArray dst, Stream &stream=Stream::Null())
 计算矩阵与标量的逐元素绝对差值。
 
Scalar absSum (InputArray src, InputArray mask=noArray())
 返回矩阵元素绝对值的和。
 
void add (InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-矩阵或矩阵-标量的和。
 
void addWeighted (InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1, Stream &stream=Stream::Null())
 计算两个数组的加权和。
 
void addWithScalar (InputArray src1, Scalar src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-标量的和。
 
void alphaComp (InputArray img1, InputArray img2, OutputArray dst, int alpha_op, Stream &stream=Stream::Null())
 使用每张图像中包含的 alpha 不透明度值合成两张图像。
 
void bilateralFilter (InputArray src, OutputArray dst, int kernel_size, float sigma_color, float sigma_spatial, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
 对传递的图像执行双边滤波。
 
void bitwise_and (InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行两个矩阵(或矩阵与标量)的逐元素按位与运算。
 
void bitwise_and_with_scalar (InputArray src1, Scalar src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行矩阵与标量的逐元素按位与运算。
 
void bitwise_not (InputArray src, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行逐元素按位取反运算。
 
void bitwise_or (InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行两个矩阵(或矩阵与标量)的逐元素按位或运算。
 
void bitwise_or_with_scalar (InputArray src1, Scalar src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行矩阵与标量的逐元素按位或运算。
 
void bitwise_xor (InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行两个矩阵(或矩阵与标量)的逐元素按位异或运算。
 
void bitwise_xor_with_scalar (InputArray src1, Scalar src2, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 执行矩阵与标量的逐元素按位异或运算。
 
void blendLinear (InputArray img1, InputArray img2, InputArray weights1, InputArray weights2, OutputArray result, Stream &stream=Stream::Null())
 对两张图像执行线性混合。
 
void buildWarpAffineMaps (InputArray M, bool inverse, Size dsize, OutputArray xmap, OutputArray ymap, Stream &stream=Stream::Null())
 构建仿射变换的变换映射。
 
void buildWarpAffineMaps (Mat M, bool inverse, Size dsize, GpuMat &xmap, GpuMat &ymap, Stream &stream=Stream::Null())
 
void buildWarpAffineMaps (UMat M, bool inverse, Size dsize, GpuMat &xmap, GpuMat &ymap, Stream &stream=Stream::Null())
 
void buildWarpPerspectiveMaps (InputArray M, bool inverse, Size dsize, OutputArray xmap, OutputArray ymap, Stream &stream=Stream::Null())
 构建透视变换的变换映射。
 
void buildWarpPerspectiveMaps (Mat M, bool inverse, Size dsize, GpuMat &xmap, GpuMat &ymap, Stream &stream=Stream::Null())
 
void buildWarpPerspectiveMaps (UMat M, bool inverse, Size dsize, GpuMat &xmap, GpuMat &ymap, Stream &stream=Stream::Null())
 
void calcAbsSum (InputArray src, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void calcHist (InputArray src, InputArray mask, OutputArray hist, Stream &stream=Stream::Null())
 计算由给定掩码限制的单通道 8 位图像的直方图。
 
void calcHist (InputArray src, OutputArray hist, Stream &stream=Stream::Null())
 计算单通道 8 位图像的直方图。
 
void calcNorm (InputArray src, OutputArray dst, int normType, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void calcNormDiff (InputArray src1, InputArray src2, OutputArray dst, int normType=NORM_L2, Stream &stream=Stream::Null())
 
void calcOpticalFlowBM (const GpuMat &prev, const GpuMat &curr, Size block_size, Size shift_size, Size max_range, bool use_previous, GpuMat &velx, GpuMat &vely, GpuMat &buf, Stream &stream=Stream::Null())
 使用块匹配算法计算两张图像的光流。
 
void calcSqrSum (InputArray src, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void calcSum (InputArray src, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void cartToPolar (InputArray x, InputArray y, OutputArray magnitude, OutputArray angle, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将笛卡尔坐标转换为极坐标。
 
void cartToPolar (InputArray xy, OutputArray magnitude, OutputArray angle, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将笛卡尔坐标转换为极坐标。
 
void cartToPolar (InputArray xy, OutputArray magnitudeAngle, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将笛卡尔坐标转换为极坐标。
 
void compare (InputArray src1, InputArray src2, OutputArray dst, int cmpop, Stream &stream=Stream::Null())
 比较两个矩阵(或矩阵与标量)的元素。
 
void compareWithScalar (InputArray src1, Scalar src2, OutputArray dst, int cmpop, Stream &stream=Stream::Null())
 比较矩阵与标量的元素。
 
void connectedComponents (InputArray image, OutputArray labels, int connectivity, int ltype, cv::cuda::ConnectedComponentsAlgorithmsTypes ccltype)
 计算二值图像的连通分量标记图像。
 
void connectedComponents (InputArray image, OutputArray labels, int connectivity=8, int ltype=CV_32S)
 
void connectivityMask (const GpuMat &image, GpuMat &mask, const cv::Scalar &lo, const cv::Scalar &hi, Stream &stream=Stream::Null())
 为广义漫水填充算法计算连通分量掩码。
 
void convertFp16 (InputArray _src, OutputArray _dst, Stream &stream=Stream::Null())
 将数组转换为半精度浮点数。
 
Moments convertSpatialMoments (Mat spatialMoments, const MomentsOrder order, const int momentsType)
 将从 cuda::spatialMoments 返回的空间图像矩转换为 cv::Moments
 
void copyMakeBorder (InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, Scalar value=Scalar(), Stream &stream=Stream::Null())
 在图像周围形成边框。
 
int countNonZero (InputArray src)
 统计矩阵中非零元素的个数。
 
void countNonZero (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 
Ptr< cuda::BackgroundSubtractorFGDcreateBackgroundSubtractorFGD (const FGDParams &params=FGDParams())
 创建 FGD 背景减除器。
 
Ptr< cuda::BackgroundSubtractorGMGcreateBackgroundSubtractorGMG (int initializationFrames=120, double decisionThreshold=0.8)
 创建 GMG 背景减除器。
 
Ptr< cuda::BackgroundSubtractorMOGcreateBackgroundSubtractorMOG (int history=200, int nmixtures=5, double backgroundRatio=0.7, double noiseSigma=0)
 创建高斯混合背景减除器。
 
Ptr< cuda::BackgroundSubtractorMOG2createBackgroundSubtractorMOG2 (int history=500, double varThreshold=16, bool detectShadows=true)
 创建 MOG2 背景减除器。
 
Ptr< FiltercreateBoxFilter (int srcType, int dstType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建一个归一化的 2D 盒式滤波器。
 
Ptr< FiltercreateBoxMaxFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建最大值滤波器。
 
Ptr< FiltercreateBoxMinFilter (int srcType, Size ksize, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建最小值滤波器。
 
Ptr< CannyEdgeDetectorcreateCannyEdgeDetector (double low_thresh, double high_thresh, int apperture_size=3, bool L2gradient=false)
 创建 cuda::CannyEdgeDetector 的实现。
 
Ptr< cuda::CLAHEcreateCLAHE (double clipLimit=40.0, Size tileGridSize=Size(8, 8))
 创建 cuda::CLAHE 的实现。
 
Ptr< FiltercreateColumnSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建一个垂直 1D 盒式滤波器。
 
void createContinuous (int rows, int cols, int type, OutputArray arr)
 创建一个连续矩阵。
 
Ptr< ConvolutioncreateConvolution (Size user_block_size=Size())
 创建 cuda::Convolution 的实现。
 
Ptr< FiltercreateDerivFilter (int srcType, int dstType, int dx, int dy, int ksize, bool normalize=false, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 创建一个通用的导数 (Deriv) 算子。
 
Ptr< DFTcreateDFT (Size dft_size, int flags)
 创建 cuda::DFT 的实现。
 
Ptr< cuda::DisparityBilateralFiltercreateDisparityBilateralFilter (int ndisp=64, int radius=3, int iters=1)
 创建 DisparityBilateralFilter 对象。
 
Ptr< FiltercreateGaussianFilter (int srcType, int dstType, Size ksize, double sigma1, double sigma2=0, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 创建一个高斯滤波器。
 
Ptr< GeneralizedHoughBallardcreateGeneralizedHoughBallard ()
 创建来自 [17] 的广义霍夫变换实现。
 
Ptr< GeneralizedHoughGuilcreateGeneralizedHoughGuil ()
 创建来自 [117] 的广义霍夫变换实现。
 
Ptr< CornersDetectorcreateGoodFeaturesToTrackDetector (int srcType, int maxCorners=1000, double qualityLevel=0.01, double minDistance=0.0, int blockSize=3, bool useHarrisDetector=false, double harrisK=0.04)
 创建 cuda::CornersDetector 的实现。
 
GpuMat createGpuMatFromCudaMemory (int rows, int cols, int type, size_t cudaMemoryAddress, size_t step=Mat::AUTO_STEP)
 从现有 GPU 内存创建 GpuMat 的绑定重载。
 
GpuMat createGpuMatFromCudaMemory (Size size, int type, size_t cudaMemoryAddress, size_t step=Mat::AUTO_STEP)
 
Ptr< CornernessCriteriacreateHarrisCorner (int srcType, int blockSize, int ksize, double k, int borderType=BORDER_REFLECT101)
 创建 Harris 角点特性准则的实现。
 
Ptr< HoughCirclesDetectorcreateHoughCirclesDetector (float dp, float minDist, int cannyThreshold, int votesThreshold, int minRadius, int maxRadius, int maxCircles=4096)
 创建 cuda::HoughCirclesDetector 的实现。
 
Ptr< HoughLinesDetectorcreateHoughLinesDetector (float rho, float theta, int threshold, bool doSort=false, int maxLines=4096)
 创建 cuda::HoughLinesDetector 的实现。
 
Ptr< HoughSegmentDetectorcreateHoughSegmentDetector (float rho, float theta, int minLineLength, int maxLineGap, int maxLines=4096, int threshold=-1)
 创建 cuda::HoughSegmentDetector 的实现。
 
Ptr< ImagePyramidcreateImagePyramid (InputArray img, int nLayers=-1, Stream &stream=Stream::Null())
 
Ptr< FiltercreateLaplacianFilter (int srcType, int dstType, int ksize=1, double scale=1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建一个拉普拉斯 (Laplacian) 算子。
 
Ptr< FiltercreateLinearFilter (int srcType, int dstType, InputArray kernel, Point anchor=Point(-1, -1), int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建一个不可分线性 2D 滤波器。
 
Ptr< LookUpTablecreateLookUpTable (InputArray lut)
 创建 cuda::LookUpTable 的实现。
 
Ptr< FiltercreateMedianFilter (int srcType, int windowSize, int partition=128)
 对源图像的每个点执行中值滤波。
 
Ptr< CornernessCriteriacreateMinEigenValCorner (int srcType, int blockSize, int ksize, int borderType=BORDER_REFLECT101)
 创建 2x2 导数协变矩阵最小特征值(角点特性准则)的实现。
 
Ptr< FiltercreateMorphologyFilter (int op, int srcType, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1)
 创建一个 2D 形态学滤波器。
 
void createOpticalFlowNeedleMap (const GpuMat &u, const GpuMat &v, GpuMat &vertex, GpuMat &colors)
 
Ptr< FiltercreateRowSumFilter (int srcType, int dstType, int ksize, int anchor=-1, int borderMode=BORDER_DEFAULT, Scalar borderVal=Scalar::all(0))
 创建一个水平 1D 盒式滤波器。
 
Ptr< FiltercreateScharrFilter (int srcType, int dstType, int dx, int dy, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 创建一个垂直或水平的 Scharr 算子。
 
Ptr< FiltercreateSeparableLinearFilter (int srcType, int dstType, InputArray rowKernel, InputArray columnKernel, Point anchor=Point(-1,-1), int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 创建一个可分线性滤波器。支持就地处理。
 
Ptr< FiltercreateSobelFilter (int srcType, int dstType, int dx, int dy, int ksize=3, double scale=1, int rowBorderMode=BORDER_DEFAULT, int columnBorderMode=-1)
 创建一个 Sobel 算子。
 
Ptr< cuda::StereoBeliefPropagationcreateStereoBeliefPropagation (int ndisp=64, int iters=5, int levels=5, int msg_type=CV_32F)
 创建 StereoBeliefPropagation 对象。
 
Ptr< cuda::StereoBMcreateStereoBM (int numDisparities=64, int blockSize=19)
 创建 StereoBM 对象。
 
Ptr< cuda::StereoConstantSpaceBPcreateStereoConstantSpaceBP (int ndisp=128, int iters=8, int levels=4, int nr_plane=4, int msg_type=CV_32F)
 创建 StereoConstantSpaceBP 对象。
 
Ptr< cuda::StereoSGMcreateStereoSGM (int minDisparity=0, int numDisparities=128, int P1=10, int P2=120, int uniquenessRatio=5, int mode=cv::cuda::StereoSGM::MODE_HH4)
 创建 StereoSGM 对象。
 
Ptr< TemplateMatchingcreateTemplateMatching (int srcType, int method, Size user_block_size=Size())
 创建 cuda::TemplateMatching 的实现。
 
void cvtColor (InputArray src, OutputArray dst, int code, int dcn=0, Stream &stream=Stream::Null())
 将图像从一种颜色空间转换为另一种。
 
void demosaicing (InputArray src, OutputArray dst, int code, int dcn=-1, Stream &stream=Stream::Null())
 将图像从拜耳 (Bayer) 模式转换为 RGB 或灰度图像。
 
bool deviceSupports (FeatureSet feature_set)
 检查当前设备是否支持给定的特性
 
void dft (InputArray src, OutputArray dst, Size dft_size, int flags=0, Stream &stream=Stream::Null())
 对浮点矩阵执行正向或反向离散傅里叶变换(1D 或 2D)。
 
void divide (InputArray src1, InputArray src2, OutputArray dst, double scale=1, int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-矩阵或矩阵-标量的除法。
 
void divideWithScalar (InputArray src1, Scalar src2, OutputArray dst, double scale=1, int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-标量的除法。
 
void drawColorDisp (InputArray src_disp, OutputArray dst_disp, int ndisp, Stream &stream=Stream::Null())
 对视差图进行着色。
 
void ensureSizeIsEnough (int rows, int cols, int type, OutputArray arr)
 确保矩阵的大小足够大且矩阵具有正确的类型。
 
void equalizeHist (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 对灰度图像进行直方图均衡化。
 
void evenLevels (OutputArray levels, int nLevels, int lowerLevel, int upperLevel, Stream &stream=Stream::Null())
 计算具有均匀分布的能级。
 
void exp (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素的指数。
 
void fastNlMeansDenoising (const GpuMat &src, GpuMat &dst, float h, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 
void fastNlMeansDenoising (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 使用非局部均值去噪算法 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising 执行图像去噪,并进行了多项计算优化。预期噪声为高斯白噪声。
 
void fastNlMeansDenoisingColored (const GpuMat &src, GpuMat &dst, float h_luminance, float photo_render, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 
void fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h_luminance, float photo_render, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 针对彩色图像修改的 fastNlMeansDenoising 函数。
 
void findMinMax (InputArray src, OutputArray dst, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void findMinMaxLoc (InputArray src, OutputArray minMaxVals, OutputArray loc, InputArray mask=noArray(), Stream &stream=Stream::Null())
 
void flip (InputArray src, OutputArray dst, int flipCode, Stream &stream=Stream::Null())
 围绕垂直、水平或两个轴翻转 2D 矩阵。
 
void gammaCorrection (InputArray src, OutputArray dst, bool forward=true, Stream &stream=Stream::Null())
 用于校正图像颜色伽马 (gamma) 的例程。
 
void gemm (InputArray src1, InputArray src2, double alpha, InputArray src3, double beta, OutputArray dst, int flags=0, Stream &stream=Stream::Null())
 执行广义矩阵乘法。
 
int getCudaEnabledDeviceCount ()
 返回已安装的启用 CUDA 的设备的数量。
 
int getDevice ()
 返回由 cuda::setDevice 设置或默认初始化的当前设备索引。
 
void graphcut (GpuMat &terminals, GpuMat &leftTransp, GpuMat &rightTransp, GpuMat &top, GpuMat &bottom, GpuMat &labels, GpuMat &buf, Stream &stream=Stream::Null())
 通过 2D 常规 4 连通图的图割(graph cuts)执行标记。
 
void graphcut (GpuMat &terminals, GpuMat &leftTransp, GpuMat &rightTransp, GpuMat &top, GpuMat &topLeft, GpuMat &topRight, GpuMat &bottom, GpuMat &bottomLeft, GpuMat &bottomRight, GpuMat &labels, GpuMat &buf, Stream &stream=Stream::Null())
 通过 2D 常规 8 连通图的图割执行标记。
 
void histEven (InputArray src, GpuMat hist[4], int histSize[4], int lowerLevel[4], int upperLevel[4], Stream &stream=Stream::Null())
 
void histEven (InputArray src, OutputArray hist, int histSize, int lowerLevel, int upperLevel, Stream &stream=Stream::Null())
 计算具有均匀分布直方图柱(bins)的直方图。
 
void histRange (InputArray src, GpuMat hist[4], const GpuMat levels[4], Stream &stream=Stream::Null())
 
void histRange (InputArray src, OutputArray hist, InputArray levels, Stream &stream=Stream::Null())
 计算直方图,其柱由 levels 数组决定。
 
void inRange (InputArray src, const Scalar &lowerb, const Scalar &upperb, OutputArray dst, Stream &stream=Stream::Null())
 检查数组元素是否位于两个标量之间。
 
void integral (InputArray src, OutputArray sum, Stream &stream=Stream::Null())
 计算积分图像。
 
void interpolateFrames (const GpuMat &frame0, const GpuMat &frame1, const GpuMat &fu, const GpuMat &fv, const GpuMat &bu, const GpuMat &bv, float pos, GpuMat &newFrame, GpuMat &buf, Stream &stream=Stream::Null())
 使用提供的光流(位移场)插值帧(图像)。
 
void labelComponents (const GpuMat &mask, GpuMat &components, int flags=0, Stream &stream=Stream::Null())
 执行连通分量标记。
 
void log (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素绝对值的自然对数。
 
void lshift (InputArray src, Scalar val, OutputArray dst, Stream &stream=Stream::Null())
 
void lshift (InputArray src, Scalar_< int > val, OutputArray dst, Stream &stream=Stream::Null())
 通过常量值逐像素对图像进行左移运算。
 
void magnitude (InputArray x, InputArray y, OutputArray magnitude, Stream &stream=Stream::Null())
 
void magnitude (InputArray xy, OutputArray magnitude, Stream &stream=Stream::Null())
 计算复矩阵元素的幅值。
 
void magnitudeSqr (InputArray x, InputArray y, OutputArray magnitude, Stream &stream=Stream::Null())
 
void magnitudeSqr (InputArray xy, OutputArray magnitude, Stream &stream=Stream::Null())
 计算复矩阵元素的平方幅值。
 
void max (InputArray src1, InputArray src2, OutputArray dst, Stream &stream=Stream::Null())
 计算两个矩阵(或矩阵与标量)的逐元素最大值。
 
void maxWithScalar (InputArray src1, Scalar src2, OutputArray dst, Stream &stream=Stream::Null())
 计算矩阵与标量的逐元素最大值。
 
void meanShiftFiltering (InputArray src, OutputArray dst, int sp, int sr, TermCriteria criteria=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1), Stream &stream=Stream::Null())
 为源图像的每个点执行均值漂移(mean-shift)滤波。
 
void 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 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())
 执行源图像的均值漂移分割并消除小分段。
 
void meanStdDev (InputArray mtx, OutputArray dst, Stream &stream=Stream::Null())
 
void meanStdDev (InputArray mtx, Scalar &mean, Scalar &stddev)
 
void meanStdDev (InputArray src, OutputArray dst, InputArray mask, Stream &stream=Stream::Null())
 计算矩阵元素的平均值和标准差。
 
void meanStdDev (InputArray src, Scalar &mean, Scalar &stddev, InputArray mask)
 
void merge (const GpuMat *src, size_t n, OutputArray dst, Stream &stream=Stream::Null())
 由几个单通道矩阵组成一个多通道矩阵。
 
void merge (const std::vector< GpuMat > &src, OutputArray dst, Stream &stream=Stream::Null())
 
void min (InputArray src1, InputArray src2, OutputArray dst, Stream &stream=Stream::Null())
 计算两个矩阵(或矩阵与标量)的逐元素最小值。
 
void minMax (InputArray src, double *minVal, double *maxVal, InputArray mask=noArray())
 查找全局最小和最大矩阵元素并返回其值。
 
void minMaxLoc (InputArray src, double *minVal, double *maxVal, Point *minLoc, Point *maxLoc, InputArray mask=noArray())
 查找全局最小和最大矩阵元素,并返回其值及其位置。
 
void minWithScalar (InputArray src1, Scalar src2, OutputArray dst, Stream &stream=Stream::Null())
 计算矩阵与标量的逐元素最小值。
 
Moments moments (InputArray src, const bool binaryImage=false, const MomentsOrder order=MomentsOrder::THIRD_ORDER_MOMENTS, const int momentsType=CV_64F)
 计算光栅化形状的所有三阶以内矩。
 
void mulAndScaleSpectrums (InputArray src1, InputArray src2, OutputArray dst, int flags, float scale, bool conjB=false, Stream &stream=Stream::Null())
 执行两个傅里叶光谱的逐元素乘法并缩放结果。
 
void mulSpectrums (InputArray src1, InputArray src2, OutputArray dst, int flags, bool conjB=false, Stream &stream=Stream::Null())
 执行两个傅里叶光谱的逐元素乘法。
 
void multiply (InputArray src1, InputArray src2, OutputArray dst, double scale=1, int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-矩阵或矩阵-标量的逐元素乘积。
 
void multiplyWithScalar (InputArray src1, Scalar src2, OutputArray dst, double scale=1, int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-标量的逐元素乘积。
 
void nonLocalMeans (const GpuMat &src, GpuMat &dst, float h, int search_window=21, int block_size=7, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
 
void nonLocalMeans (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
 执行纯非局部均值去噪,没有任何简化,因此速度不快。
 
double norm (InputArray src1, InputArray src2, int normType=NORM_L2)
 返回两个矩阵的差异。
 
double norm (InputArray src1, int normType, InputArray mask=noArray())
 返回矩阵的范数(或两个矩阵的差)。
 
void normalize (InputArray src, OutputArray dst, double alpha, double beta, int norm_type, int dtype, InputArray mask=noArray(), Stream &stream=Stream::Null())
 归一化数组的范数或数值范围。
 
int numMoments (const MomentsOrder order)
 返回小于或等于最大图像矩阶数 order 的图像矩数量。
 
void phase (InputArray x, InputArray y, OutputArray angle, bool angleInDegrees=false, Stream &stream=Stream::Null())
 计算复矩阵元素的极角(相位)。
 
void phase (InputArray xy, OutputArray angle, bool angleInDegrees=false, Stream &stream=Stream::Null())
 计算复矩阵元素的极角(相位)。
 
void polarToCart (InputArray magnitude, InputArray angle, OutputArray x, OutputArray y, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将极坐标转换为笛卡尔坐标。
 
void polarToCart (InputArray magnitude, InputArray angle, OutputArray xy, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将极坐标转换为笛卡尔坐标。
 
void polarToCart (InputArray magnitudeAngle, OutputArray xy, bool angleInDegrees=false, Stream &stream=Stream::Null())
 将极坐标转换为笛卡尔坐标。
 
void pow (InputArray src, double power, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素的幂。
 
void printCudaDeviceInfo (int device)
 
void printShortCudaDeviceInfo (int device)
 
void projectPoints (const GpuMat &src, const Mat &rvec, const Mat &tvec, const Mat &camera_mat, const Mat &dist_coef, GpuMat &dst, Stream &stream=Stream::Null())
 
void pyrDown (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 平滑图像并对其进行下采样。
 
void pyrUp (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 对图像进行上采样,然后对其进行平滑处理。
 
void rectStdDev (InputArray src, InputArray sqr, OutputArray dst, Rect rect, Stream &stream=Stream::Null())
 计算积分图像的标准差。
 
void reduce (InputArray mtx, OutputArray vec, int dim, int reduceOp, int dtype=-1, Stream &stream=Stream::Null())
 将矩阵降维为向量。
 
void registerPageLocked (Mat &m)
 锁住矩阵的内存页并将其映射到设备。
 
void remap (InputArray src, OutputArray dst, InputArray xmap, InputArray ymap, int interpolation, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 对图像应用通用的几何变换。
 
void reprojectImageTo3D (GpuMat disp, GpuMat &xyzw, Mat Q, int dst_cn=4, Stream &stream=Stream::Null())
 
void reprojectImageTo3D (InputArray disp, OutputArray xyzw, InputArray Q, int dst_cn=4, Stream &stream=Stream::Null())
 将视差图像重新投影到 3D 空间。
 
void resetDevice ()
 显式销毁并清理当前进程中与当前设备关联的所有资源。
 
void resize (InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR, Stream &stream=Stream::Null())
 调整图像大小。
 
void rotate (InputArray src, OutputArray dst, Size dsize, double angle, double xShift=0, double yShift=0, int interpolation=INTER_LINEAR, Stream &stream=Stream::Null())
 图像绕原点 (0,0) 旋转,然后进行平移。
 
void rshift (InputArray src, Scalar val, OutputArray dst, Stream &stream=Stream::Null())
 
void rshift (InputArray src, Scalar_< int > val, OutputArray dst, Stream &stream=Stream::Null())
 通过常量值逐像素对图像进行右移运算。
 
static void scaleAdd (InputArray src1, double alpha, InputArray src2, OutputArray dst, Stream &stream=Stream::Null())
 将缩放后的数组加到另一个数组上 (dst = alpha*src1 + src2)
 
void setBufferPoolConfig (int deviceId, size_t stackSize, int stackCount)
 
void setBufferPoolUsage (bool on)
 BufferPool 管理(必须在 Stream 创建之前调用)
 
void setDevice (int device)
 设置一个设备并为当前线程对其进行初始化。
 
void setGlDevice (int device=0)
 设置 CUDA 设备并为具有 OpenGL 互操作性的当前线程对其进行初始化。
 
void solvePnPRansac (const Mat &object, const Mat &image, const Mat &camera_mat, const Mat &dist_coef, Mat &rvec, Mat &tvec, bool use_extrinsic_guess=false, int num_iters=100, float max_dist=8.0, int min_inlier_count=100, std::vector< int > *inliers=NULL)
 从 3D-2D 点对应关系中查找物体姿态。
 
void spatialMoments (InputArray src, OutputArray moments, const bool binaryImage=false, const MomentsOrder order=MomentsOrder::THIRD_ORDER_MOMENTS, const int momentsType=CV_64F, Stream &stream=Stream::Null())
 计算光栅化形状的所有三阶以内空间矩。
 
void split (InputArray src, GpuMat *dst, Stream &stream=Stream::Null())
 将多通道矩阵的每个平面复制到一个数组中。
 
void split (InputArray src, std::vector< GpuMat > &dst, Stream &stream=Stream::Null())
 
void sqr (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素的平方值。
 
void sqrIntegral (InputArray src, OutputArray sqsum, Stream &stream=Stream::Null())
 计算平方积分图像。
 
Scalar sqrSum (InputArray src, InputArray mask=noArray())
 返回矩阵元素的平方和。
 
void sqrt (InputArray src, OutputArray dst, Stream &stream=Stream::Null())
 计算每个矩阵元素的平方根。
 
void subtract (InputArray src1, InputArray src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-矩阵或矩阵-标量的差值。
 
void subtractWithScalar (InputArray src1, Scalar src2, OutputArray dst, InputArray mask=noArray(), int dtype=-1, Stream &stream=Stream::Null())
 计算矩阵-标量的差值。
 
Scalar sum (InputArray src, InputArray mask=noArray())
 返回矩阵元素的和。
 
void swapChannels (InputOutputArray image, const int dstOrder[4], Stream &stream=Stream::Null())
 就地(in-place)交换图像的颜色通道。
 
double threshold (InputArray src, OutputArray dst, double thresh, double maxval, int type, Stream &stream=Stream::Null())
 对数组的每个元素应用固定阈值操作。
 
void transformPoints (const GpuMat &src, const Mat &rvec, const Mat &tvec, GpuMat &dst, Stream &stream=Stream::Null())
 
void transpose (InputArray src1, OutputArray dst, Stream &stream=Stream::Null())
 矩阵转置。
 
void unregisterPageLocked (Mat &m)
 取消矩阵内存映射并使其再次可分页。
 
void warpAffine (InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 对图像应用仿射变换。
 
void warpAffine (InputArray src, OutputArray dst, Mat M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 
void warpAffine (InputArray src, OutputArray dst, UMat M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 
void warpPerspective (InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 对图像应用透视变换。
 
void warpPerspective (InputArray src, OutputArray dst, Mat M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 
void warpPerspective (InputArray src, OutputArray dst, UMat M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, Scalar borderValue=Scalar(), Stream &stream=Stream::Null())
 
流 (Stream) wrapStream (size_t cudaStreamMemoryAddress)
 绑定重载以从现有 CUDA 运行时 API 流指针 (cudaStream_t) 中存储的地址创建 Stream 对象。
 

函数文档 (Function Documentation)

◆ createMedianFilter()

Ptr< Filter > cv::cuda::createMedianFilter ( int srcType,
int windowSize,
int partition = 128 )

对源图像的每个点执行中值滤波。

参数
srcType源图像的类型。如果 CUDA_VERSION < 11,仅支持 CV_8UC1。如果 CUDA_VERSION >= 11,支持 CV_8UC1、CV_8UC3、CV_8UC4、CV_16UC1、CV_16UC3、CV_16UC4、CV_32FC1、CV_32FC3 或 CV_32FC4。
windowSize用于滤波的内核大小。使用 (windowSize x windowSize) 滤波器。
partition指定工作负载的并行粒度。仅在 CUDA_VERSION < 11 时使用。

输出使用中值滤波公式过滤后的图像。

如果使用 CUDA 11 或更高版本编译,则使用基于小波的算法,详情请参阅:https://cgenglab.github.io/en/publication/sigga22_wmatrix_median/ Yuji Moroto, Nobuyuki Umetani, 2022, "Constant Time Median Filter Using 2D Wavelet Matrix", ACM Transactions on Graphics, Volume 41, Issue 6。

对于早期版本的 CUDA,有关所用算法的详细信息,请参阅:Green, O., 2017. "Efficient scalable median filtering using histogram-based operations", IEEE Transactions on Image Processing, 27(5), pp.2217-2228。

注意
如果在 CUDA Stream 中应用,必须为每个 Stream 创建一个独特的滤波器实例。不支持在多个流之间共享单个实例,由于流特定的内部状态,这可能会导致未定义的行为。