1. 程式人生 > >部分opencv中的GPU加速函式(中文翻譯)

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