opencv與cuda的結合使用

2021-06-17 20:48:40 字數 468 閱讀 2735

opencv的gpu模組提供了有cuda實現的很多並行函式,但有時候需要自己寫並行函式並與已有的opencv函式結合使用,而opencv是乙個開源的函式庫,我們可以很輕鬆的看到其內部的實現機制,可以根據他已有的函式比葫蘆畫瓢來寫乙個自己的cuda並行函式。

所需要使用的gpu的關鍵的類有:gpumat 和 ptrstepsz這兩個類。 其中gpumat主要是用於將記憶體中的資料上傳到現存中,而ptrstepsz是用做gpu核函式的引數。

1、首先,設計自己的核函式,引數可以是自己定義的型別也可以是ptrstepsz,一般選擇後者,因為opencv過載了gpumat強制型別轉換函式。

2、呼叫,初始化自己的gpumat使用upload函式,然後用強制型別轉換,將其轉為ptrstepsz<**>型別,設定grid和block,最後呼叫核函式, 結束後呼叫cudafree釋放自己申請的資源。

3、最後呼叫gpumat的download函式,返回自己處理完的矩陣。

如何結合OPENCV2 2 和 CUDA

然後開始配置opencv2.2,勾選with cuda,點configure,這時候一般會找不到npp,需要手動配置其路徑 找到cuda npp library root dir,修改其路徑為npp的根目錄,比如我為d sdk。上面兩項 cuda npp include和cuda npp libra...

CUDA總結1 OpenCV與CUDA簡介

因為演算法的需要,正常的cpu演算法速度不夠需要進行加速,opencv中正好加入了gpu計算的模組,opencv中有兩種gpu的加速方式,一種是通用標準的opencl,另一種是nvidia的cuda加速。opencl是蘋果公司提出的一種通用標準,多種平台支援的標準。cuda是nvidia提出的平行計...

keras與tensorboard結合使用

使用tensorboard將keras的訓練過程顯示出來 動態的 直觀的 是乙個絕好的主意,特別是在有架設好的vps的基礎上,這篇文章就是一起來實現這個過程。一 主要原理 keras的在訓練 fit 的過程中,顯式地生成log日誌 使用tf的tensorboard來解析這個log日誌,並且通過 的形...