opencvgpu編譯
① opencv_python4.1如何GPU加速,需不需要重新編譯之類的
需要重新編譯opencv 的,最後getCudaEnabledDeviceCount();這個函數返回值大於零才行 // first.cpp : 定義控制台應用程序的入口點。 // #include "stdafx.h" #include #include "opencv2/opencv.hpp" #include "opencv2/gpu/gpu.hpp" #pragma co..
② GPU編程常識求助:cg、opencv、opengl、cuda、glsl等
你好,
首先,cg,opengl,glsl都是跟計算機圖形有關的。cg基本是做渲染的,opengl是一個開源圖形庫,和微軟的direct3D是一樣的。glsl是shading language ,專門用來寫shader的,在GPGPU( general purpose GPU)概念出來之前,好多人用glsl來做並行計算。
其次,CUDA和OpenCL是兩個專門做GPU運算的庫。CUDA非常好用,它有自己的NVCC編譯器,和各個系統都兼容很好,但是僅限於用於NVIDIA自己的顯卡。OpenCL雖然任何顯卡都可以使用,但是它的GPU的代碼要放到單獨的一個文本文件中編譯,操作上要比CUDA要復雜。
最後,其實CUDA和OpenCL學那個多一樣,因為並行運算的思想是一樣的。推薦你兩本書:
Programming Massively Parallel Processors 2nd(入門)
CUDA Programming A Developer-'s Guide to Parallel Computing with GPUs (高級一點)
謝謝,望採納
③ Opencv2.4.5 CUDA5.0 的gpu配置問題
這個是說你的OpenCV庫是編譯的不支持CUDA或者說不支持GPU加速的版本
④ 請教一個關於ubuntu下openCV程序編譯出錯的問題
用下面的這個命令是可以編譯通過的,但有倆個警告
arm-linux-g++ -o opencv_test.o test.c -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lpthread -lrt
運行上面的命令之前,要將 opencv2 這個目錄復制到 opencv下,這倆個目錄都在 /usr/local/include/ 下。
g++ `pkg-config opencv --cflags --libs opencv` -o DisplayImage DisplayImage.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread
⑤ 為什麼opencv用GPU實現比用CPU實現的慢
OpenCV的一些函數,如SURF,OpticalFlow,houghlines,提供了GPU加速版本,但是使用起來挺麻煩的,而且貌似效果沒有宣傳的那麼好,你的這個程序應該是無GPU的。
⑥ opencv怎麼開啟GPU加速
需要重新編譯opencv 的,最後getCudaEnabledDeviceCount();這個函數返回值大於零才行
// first.cpp : 定義控制台應用程序的入口點。
//
#include "stdafx.h"
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"
#pragma comment(lib,"opencv_gpu2410.lib")
#pragma comment(lib,"opencv_core2410.lib")
using namespace std;
using namespace cv;
using namespace cv::gpu;
int main()
{
int i;
try
{
cout << getCudaEnabledDeviceCount();
}
catch(const cv::Exception& ex)
{
cout << "Error:" << ex.what() <<endl;
}
system("PAUSE");
return 0;
}
⑦ Windows下opencv調用GPU的問題
要用gpu不是非要使用cmake編譯,exe安裝版本就行。但是opencv只支持NVIDIA的CUDA技術,AMD顯卡無解。不僅如此,NVIDIA的顯卡也不是全部都支持CUDA的,具體哪些顯卡晶元支持,需要到官網查詢一下。在使用opencv的GPU加速之前,應該還需要安裝NVIDIA的CUDA運行環境才行。說實話,我之前測試過gpu,可能是顯卡不是很高端,運行效能並不高,因為將數據從內存搬運到顯存、運算完後再從顯存搬運回內存是非常耗時的。運算過程提高的那點效能基本都被數據搬運消化掉了。
⑧ opencv如何編譯cuda vs2010
一、生成項目文件
假設我們已經將OpenCV-2.4.0源代碼放到「C:\Program Files\OpenCV\src」目錄下,安裝完成cmake,並將ntel tbb可執行目錄添加到系統環境變數,並使變數生效,相關部分參考博文:使用OpenCV-2.4.0.exe文件編譯x86或x64平台Visual Studio2005/2008/2010目標文件。
運行cmake,如圖1所示,然後單擊「Where is the source code:」右側的「Browse Source」,瀏覽到「C:/ProgramFiles/OpenCV/src」文件夾,單擊「where to build the binaries:」右側的「Browse Build」,瀏覽到「C:/Program Files/OpenCV/vs2005」文件夾(vs2005文件夾是我自己創建的)。
然後單擊左下方的「Configure」按鈕,這時會彈出「cmake-gui」窗口,在「Specify the generator for this project」下拉菜單選擇「Visual Studio 8 2005」、「Usedefault native compilers」後,單擊「Finish」按鈕,如圖2所示。
完成以上操作後勾選「BUILD_EXAMPLES」、「CUDA_BUILD_CBUIN」、「CUDA_VERBOSE_BUILD」、「WITH_TBB」和「WITH_CUBLAS」 、「WITH_CUDA」,注意這里千萬不要勾選「CUDA_BUILD_EMULATION」選項,不然會報錯的,如下所示。
[plain] view plainprint?
01.CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Moles/FindCUDA.cmake:616 (message):
02. CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must
03. disable it to proceed. You have version 4.2.
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Moles/FindCUDA.cmake:616 (message):
CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must
disable it to proceed. You have version 4.2.
這是因為在從CUDA 4.0開始NPP(NVIDIA Performance Primitives library,英偉達基本性能庫)就是CUDA tookit的一部分面不再單獨提供了。
配置tbb相關目錄(包含目錄、可執行目錄和庫目錄),詳情參考本人博文:使用OpenCV-2.4.0.exe文件編譯x86或x64平台Visual Studio2005/2008/2010目標文件。這里不再贅述。
單擊「Configure」按鈕,所有紅色行已經變為白色,在下方的信息我們會看到如下信息:
[plain] view plainprint?
Other third-party libraries:
Use IPP: NO
Use TBB: YES (ver 4.0 interface 6004)
Use Cuda: YES (ver 4.2)
Use Eigen: NO
NVIDIA CUDA: (ver 4.2)
Use CUFFT: YES
Use CUBLAS: YES
NVIDIA GPU arch: 11 12 13 20 21
NVIDIA PTX archs: 11 12 13 20 21
NVIDIA GPU features: 11 12 13 20 20 20
Other third-party libraries:
Use IPP: NO
Use TBB: YES (ver 4.0 interface 6004)
Use Cuda: YES (ver 4.2)
Use Eigen: NO
NVIDIA CUDA: (ver 4.2)
Use CUFFT: YES
Use CUBLAS: YES
NVIDIA GPU arch: 11 12 13 20 21
NVIDIA PTX archs: 11 12 13 20 21
NVIDIA GPU features: 11 12 13 20 20 20
特別注意,有兩條為「Use TBB: YES (ver 4.0 interface 6004)」和「Use Cuda: YES (ver 4.2)」的字樣,證明我們已經將intel tbb和CUDA正確配置。
最後點擊Generate,下方的信息裡面會有一條為「Generating done」的字樣(如圖3所示),而且我們已經成功生成項目文件。
⑨ 如何使用opencv的gpu模塊
1.主機代碼執行;2.傳輸數據到GPU;3.確定grid,block大小;
4.調用內核函數,GPU運行程序;5.傳輸結果到CPU;6.繼續主機代碼執行。
下圖是兩個向量相加的簡單示常式序和處理流圖。
注意的問題:cu,cpp文件的組織
內核函數和其wrapper函數置於cu文件中。
在cpp文件聲明wrapper函數,並調用wrapper函數。
wrapper函數的聲明定義需加extern "C"。
OpenCV中GPU模塊的使用
使用的步驟與CUDA的基本使用方法類似,只是OpenCV中GPU模塊,已經封裝的內核函數的調用,其使用步驟如下:
1.驗證OpenCV是否已啟用GPU模塊。
2.上傳待處理數據到GPU (Mat --> GpuMat)。
3.調用OpenCV支持的GPU的處理函數。
4.下載處理結果到CPU (GpuMat ---> Mat)。
其示常式序如下,完成顏色轉換,BGR2GRAY。