close

如果已經熟系如何使用 OpenCV 的話,那要使用 OpenCV 來做簡單的 GPGPU 並不難。OpenCV 的 CUDA 支援全部做在「gpu」這個模組(官方文件)裡面,而東西則都在「cv::gpu」這個 namespace 下,使用的時候則是要 include「opencv2/gpu/gpu.hpp」這個 header 檔。

至於程式要怎麼寫呢?基本上,由於顯示卡的記憶體是獨立的,所以它的使用概念大致上還是三個步驟:

  1. 把資料從 CPU 複製到 GPU
  2. 在 GPU 上進行處理、計算
  3. 把結果從 GPU 複製回 CPU

而 OpenCV 在資料型別上,則是另外提供了 cv::gpu::GpuMat 這個類似 cv::Mat 的型別,用來管理 GPU 上的資料。如果要把一個 cv::Mat 物件的資料複製到 cv::gpu::GpuMat 也相當簡單,只要在建立 cv::gpu::GpuMat 物件的時候,把 cv::Mat 物件當參數給他就可以了。下面就是個簡單的例子:

cv::Mat mSource = cv::imread( argv[1] );
cv::gpu::GpuMat  mGSource( mSource );
arrow
arrow
    全站熱搜

    大玩家闖天涯 發表在 痞客邦 留言(0) 人氣()