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。