您的位置:首页 > 运维架构

部分opencv中的GPU加速函数(中文翻译)

2017-10-30 14:58 861 查看
由于项目需要,翻译了一部分可以用于我现在项目的opencv函数,记录于此,原始英文文档来自于http://blog.csdn.net/mtt_sky/article/details/42607839。

getCudaEnableDeviceCount:返回已安装CUDA设备的数量;

2. setDevice:设置adevice并为当前线程初始化它;

3. getDevice:返回当前设备索引设置或默认初始化;

4. resetDevice:在当前进程中显式地销毁和清除与当前设备相关联的所有资源;

5. FeatureSet:枚举提供GPU计算功能;

class :: TargetArchs:提供一组静态方法的类,以检查GPU模块构建的NVIDIA卡架构;

class :: DeviceInfo:提供查询指定GPU属性的功能的类;

8. DeviceInfo :: name:返回设备名称;

9. DeviceInfo :: majorVersion:返回主要的计算能力版本;

10. DeviceInfo :: minorVersion:返回次要计算能力版本;

11. DeviceInfo :: multiProcessorCount:返回流处理器的数量;

12. DeviceInfo :: freeMemory:以字节为单位返回可用内存量;

13. DeviceInfo :: totalMemory:以字节为单位返回总内存量;

14. DeviceInfo :: supports:提供有关GPU功能支持的信息;

15. DeviceInfo :: isCompatible:检查GPU模块和设备的兼容性;

16. DeviceInfo :: deviceID:返回从0开始的GPU设备的系统索引;

struct :: PtrStepSz:轻量级封装GPU上的投影存储器并传递给nvcc编译代码(CUDA内核);

struct :: PtrStep:结构类似于gpu :: PtrStepSz,但只包含一个指针和行步;

19. class :: GpuMat:用于GPU内存的基本存储类,具有引用计数。其接口匹配Mat界面;

createContinuous:在GPU内存中创建连续矩阵;

21. ensureSizeIsEnough:确保矩阵的大小足够大,矩阵具有适当的类型;

registerPageLocked:page-locked矩阵的内存并将其映射到设备;

23. unregisterPageLocked:取消映射矩阵的内存,并使其可再次可页面;

class :: CudaMem:具有引用计数的类包装来自CUDA的特殊内存类型分配函数。它的接口也是Mat() - 但是具有额外的内存类型参数;

25. CudaMem :: createMatHeader:创建一个头,而不引用计数到gpu :: CudaMem数据;

26. CudaMem :: createGpuMatHeader:将CPU内存映射到GPU地址空间,并创建gpu :: GpuMat头,而不引用计数;

27. CudaMem :: canMapHostMemory:如果当前硬件支持地址空间映射和ALLOC_ZEROCOPY内存分配,则返回true;

class :: Stream:这个类封装了一个异步调用队列。一些功能使用附加的gpu :: Stream参数重载;

29. Stream :: queryIfComplete:如果当前流队列完成,则返回true,否则返回false;

Stream :: waitForCompletion:阻止当前CPU线程,直到流中的所有操作完成;

Stream :: enqueueDownload:将数据从设备复制到主机;

Stream :: enqueueUpload:将数据从主机复制到设备;

33. Stream :: enqueueCopy:将数据从设备复制到设备;

Stream :: enqueueMemSet:将设备内存初始化或设置为一个值;

Stream :: enqueueConvert:根据类型将矩阵类型从float转换为uchar;

Stream :: enqueueHostCallback:在流中的所有当前排队的项目已经完成之后,在主机上添加要调用的回调函数;

struct :: StreamAccessor:能够从gpu :: Stream获取cuda Stream_t并在stream_accessor.hpp中声明的类,因为它是唯一依赖于CUDA Runtime API的公头;

gemm(cv :: gemm):执行广义矩阵乘法;

转置(cv :: transpose):转置矩阵;

flip(cv :: flip):在垂直,水平或两个轴上翻转2D矩阵;

LUT(cv :: LUT):使用给定的查找表将源矩阵转换为目标矩阵:dst(I)= lut(src(I));

42. merge(cv :: merge):从多个单通道矩阵中创建多通道矩阵;

split(cv :: split):将多通道矩阵的每个平面复制到数组中;

幅度(cv ::幅度):计算复杂矩阵元素的大小;

amplitudeSqr:计算复矩阵元素的平方;

阶段(cv :: phase):计算复矩阵元素的极角;

cartToPolar(cv :: cartToPolar):将笛卡尔坐标转换为极坐标;

polarToCart(cv :: polarToCart):将极坐标转换为笛卡尔坐标;

规范化(cv :: normalize):规范数组的范数或值范围;

50. add(cv :: add):计算矩阵矩阵或矩阵标量和;

减去(cv :: subtract):计算矩阵矩阵或矩阵标量差;

乘法(cv :: multiply):计算矩阵矩阵或矩阵标量的每元素乘积;

divide(cv :: divide):计算矩阵矩阵或矩阵标量划分;

addWeighted(cv :: addWeighted):

90. threshold(cv :: threshold):对每个数组元素应用固定级别的阈值;

调整大小(cv :: resize):调整图像大小

92. warpAffine(cv :: warpAffine):对图像应用仿射变换;

93. buildWarpAffineMats(gpu :: warpAffine,gpu :: remap):构建仿射变换的转换图;

94. warpPerspective(cv :: warpPerspective):将透视变换应用于图像;

95. buildWarpPerspectiveMaps(gpu :: warpPerspective,gpu :: remap):构建透视变换的转换图;

旋转(gpu :: warpAffine):围绕原点(0,0)旋转图像,然后将其移动;

copyMakeBorder(cv :: copyMakeBorder):在图像周围形成边框;

Canny(cv :: Canny):使用Canny算法在图像中找到边;

117.HoughLines(cv :: HoughLines):使用经典的霍夫变换找到二进制图像中的行;

118.HoughLinesDownload(gpu :: HoughLines):将结果从gpu :: HoughLines下载到主机内存;

HoughCircles(cv :: HoughCircles):使用霍夫变换在灰度图像中找到圆;

HoughCirclesDownload(gpu :: HoughCircles):将结果从gpu :: HoughCircles下载到主机内存;

126. minMax(cv :: minMaxLoc):找到全局最小和最大矩阵元素并返回它们的值;

127. minMaxLoc(cv :: minMaxLoc):找到全局最小值和最大矩阵元素,并返回它们的值与位置;

boxFilter(cv :: boxFilter):使用标准化的框过滤器平滑图像;

178. blur(cv :: blur,gpu :: boxFilter):作为标准化框过滤器的同义词;

Sobel(cv :: Sobel):将广义Sobel算子应用于图像;

194. GaussianBlur(cv :: GaussianBlur):使用高斯滤波器平滑图像;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: