部分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):使用高斯濾波器平滑影象;