它目前仅在GPU设备上开发和测试。这包括离散GPU(NVidia,AMD)以及集成芯片(AMD APU和intel HD设备)。
ocl模块可以在“modules”目录下找到。在“modules / ocl / src”中,您可以找到围绕直接内核调用的cpp类的源代码。内核可以在“modules / ocl / src / kernel”中找到。样本可以在“samples / ocl”下找到。精度测试可以在“modules / ocl / test”中找到,性能测试在“module / ocl” / PERF“。
如果一个功能支持4通道运算符,那么它应该也支持3通道运算符,因为在oclMat中所有的三通道矩阵(即RGB图像)均由4通道矩阵表示。这意味着3通道图像具有最后一个通道未使用的4通道空间。
1.getDevice:返回设备列表;
2.setDevice:设置adevice并初始化它;
3. setBinpath:如果调用此函数并设置有效路径,OCL模块将首次将编译内核保存到地址,并重新加载二进制文件,可以在运行时节省编译时间;
4.getoclContext:返回指向opencl上下文的指针;
5. getoclCommandQueue:返回指向opencl命令队列的指针;
6.class :: oclMat:OpenCV C ++ 1-D或2-D密集数组类,oclMat是Mat的镜像,具有ocl特征的扩展;
7. oclMat :: convertTo:该方法将源像素值转换为目标数据类型,最终应用饱和转换,以避免可能的溢出;
8. oclMat :: copyTo:将矩阵复制到另一个;
9. oclMat :: setTo:将所有或部分数组元素设置为指定值;
10.absdiff:计算两个数组之间或数组和ascalar之间的每个元素绝对差;
11.add:计算两个数组之间或数组与标量之间的每个元素加法;
12.减去:计算两个数组之间或数组与标量之间的每个元素减法;
13.乘法:计算两个数组之间或数组与标量之间的每元素乘数;
14.除法:计算两个数组之间或数组与标量之间的每个元素的分隔;
15.bitwise_and:在两个数组之间或数组和标量之间按位计算元素 ;
16.bitwise_or:在两个数组之间或数组和标量之间计算每个元素的bitwise_or;
17.bitwise_xor:计算两个数组之间或数组与标量之间的每个元素的bitwise_xor;
18.bitwise_not:函数按位不计算源数组的每元素逐位反转;
19.cartToPolar:计算2d矢量的大小和角度;
20.极坐标:计算由相应元素和角度表示的每个2D矢量的笛卡尔坐标;
21.比较:执行两个数组的每个元素比较或数组和标量值;
22.exp:计算输入数组的每个元素的指数;
23.log:计算输入数组的每个元素的日志;
24.LUT:执行数组的查找表变换;
25.幅度:计算由x和y阵列的相应元素形成的2D矢量的大小;
26.翻转:以三种不同的方式(行和列索引为0)翻转数组;
27.meanStdDev:为每个通道独立计算阵列元素的平均值和标准偏差M,并通过输出参数返回;
28.合并:从多个单通道阵列组成多通道阵列;
29.分割:将多通道阵列分割成单独的单通道阵列;
30.规范:计算绝对阵列范数,绝对差异范数或相对差异范数;
31.相位:计算由x和y的相应元素形成的每个2D矢量的旋转角度;
32.pow:将输入数组的每个元素提升到p;
33.转置:转置矩阵;
34.dft(cv :: dft):执行浮点矩阵的前向或逆离散傅里叶变换(1D或2D);
35.gemm(cv :: gemm):执行广义矩阵乘法;
36.countNonZero:返回src中的非零元素数;
37.minMax:在整个数组或子数组中找到全局最小和最大值;
38.MaxMaxLoc:找到最小和最大元素值及其位置;
39. sum:返回每个通道的矩阵元素的总和;
40. sqrSum:返回每个通道的矩阵元素的平方和;
41.索贝尔:使用Sobel算子计算第一个x或y空间图像导数 ;
42.Scharr:使用Scharr算子计算第一个x或y空间图像导数;
43. GaussianBlur:将源图像与指定的高斯内核进行卷积;
44.boxFilter:使用框过滤器平滑图像;
45.拉普拉斯算子:通过使用Sobel算子计算第二个x和y的积分计算源图像的拉普拉斯算子;
46.卷积:与内核卷曲图像;
47.双边过滤器:对图像应用双边滤波器;
48.copyMakeBorder:在图像周围形成边框;
49.扩张:使用指定的结构化元素来扩展源图像,该结构元素确定采用最大值的像素邻域的形状 ;
50.侵蚀:使用指定的结构元素侵蚀源图像,该结构元素确定采用最小值的像素邻域的形状;
51.形态特征:腐蚀和膨胀的包装物;
52.pyrDown(cv :: pyrDown):平滑图像并对其进行缩减;
53.pyrUp(cv :: pyrUp):对图像进行上采样,然后平滑;
54.columnSum:计算一个垂直(列)和;
55.blendLinear:执行两个图像的线性混合;
56.角哈里斯:计算哈里斯角;
57.cornerMinEigenVal:计算MinEigenVal;
58.calcHist:计算一个或多个数组的直方图;
59.重映射:使用指定的地图转换源图像;
60.调整大小:调整图像大小
61.warpAffine:使用指定矩阵转换源图像;
62.warpPerspective:对图像应用透视变换;
63.cvtColor:将图像从一个颜色空间转换为另一个;
64.阈值:将固定电平阈值应用于单通道阵列;
65.buildWarpPlaneMaps:构建平面变形图;
66.buildWarpCylindricalMaps:构建圆柱形弯曲图;
67.buildWarpSphericalMaps:构建球面翘曲图;
67.buildWarpPerspectiveMaps(ocl :: warpPerspective):构建透视变换的转换图;
69. buildWarpAffineMaps(ocl :: warpAffine):构建仿射变换的转换图;
70.类::PyrLKOpticalFlow(cv :: calcOpticalFlowPyrLK):用于计算光流的类;
71.PyrLKOpticalFlow :: sparse:计算稀疏特征集的光流;
72.PyrLKOpticalFlow :: dense:计算密集的光流;
73. PyrLKOpticalFlow :: releaseMemory:释放内部缓冲区内存;
74.内插帧:使用提供的光流(位移场)的内插帧(图像);
75. class :: OclCascadeClassifier:用于对象检测的级联分类器;
76. OclCascadeClassifier :: oclHaarDetectObjects:通过列表矩形返回检测到的对象;
77. struct :: MatchTemplateBuf:为matchTemplate函数提供内存缓冲区的类,加上它允许调整一些特定的参数;
78. matchTemplate(cv :: matchTemplate):计算栅格模板和模板搜索的图像的近程图;
79. Canny(cv :: Canny):使用Canny算法找到图像的边缘;
80. class :: BruteForceMatcher_OCL_base(cv :: DescriptorMatcher,cv :: BFMatcher):强力描述符匹配器,对于第一集中的每个描述符,此匹配器通过尝试每个人来找到第二个集合中最接近的描述符;
81. BruteForceMatcher_OCL_base :: match:从具有traindescriptors的查询集中找出每个描述符的最佳匹配;
82. BruteForceMatcher_OCL_base :: makeGpuCollection:以适当的格式为matchCollection函数执行一个训练描述符和掩码的GPU集合;
83. BruteForceMatcher_OCL_base :: matchDownload:将矩阵获取到viamatchSingle或matchCollection到带有DMatch的向量;
84. BruteForceMatcher_OCL_base :: matchConvert:将获得viamatchSingle或matchCollection的矩阵转换为带有DMatch的向量;
85. BruteForceMatcher_OCL_base :: knnMatch:从具有列车描述符的查询集中找到每个描述符的最佳匹配;
86. BruteForceMatcher_OCL_base :: knnMatchDownload:下载矩阵获得viaknnMatchSingle或knnMatch2Collection到带有DMatch的向量;
87. BruteForceMatcher_OCL_base :: knnMatchConvert:将获得的viaknnMatchSingle或knnMatch2Collection的矩阵转换为具有DMatch的CPU向量;
88. BruteForceMatcher_OCL_base :: radiusMatch:对于每个查询描述符,找到距离小于给定阈值的最匹配;
89. BruteForceMatcher_OCL_base :: radiusMatchDownload:将矩阵获取到viaradiusMatchSingle或radiusMatchCollection到具有DMatch的向量;
90.BruteForceMatcher_OCL_base :: radiusMatchConvert:将获得的raradiusMatchSingle或radiusMatchCollection的矩阵转换为带有DMatch的向量;
91. struct :: HOGDescriptor:该类实现了对象检测器的直方图;
92. HOGDescriptor :: getDescriptorSize:返回分类所需的系数数;
93. HOGDescriptor :: getBlockHistogramSize:返回块直方图大小;
94. HOGDescriptor :: setSVMDetector:设置线性SVM分类器的系数;
95. HOGDescriptor :: getDefaultPeopleDetector:返回用于人员检测的类别的系数(默认窗口大小);
96. HOGDescriptor :: getPeopleDetector48x96:返回用于人员检测的类别的系数(对于48x96窗口);
97. HOGDescriptor :: getPeopleDetector64x128:返回用于人员检测的类别的系数(对于64x128窗口);
98. HOGDescriptor :: detect:执行没有多尺度窗口的对象检测;
99.HOGDescriptor :: detectMultiScale:使用多尺度窗口执行对象检测;
100.HOGDescriptor :: getDescriptors:返回为整个图像计算的块描述符;