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

由于项目需要,翻译了一部分可以用于我现在项目的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):使用高斯滤波器平滑图像;

猜你喜欢

转载自blog.csdn.net/pc9803/article/details/78393042