opencv怎么开启GPU加速

Jay猿 2014-05-27 02:20:15
我在网上搜索了很多关于OPENCV用GPU加速的例子,是用cmake编译opencv,勾选上with cuda,可是实际上我做了,编译后就无法使用了。有人说不需要重新编译的,只要设置一下cuda环境,可是我不知道具体怎么做,单独用cuda编译时没有问题的,可是用opencv的getCudaEnabledDeviceCount返回值却总是0。我已经做了很多努力,希望知道正确的操作是怎样的,是不是我在编译中有什么问题,我希望自己能克服这个困难,并能给予更多和我遇到同样问题的人帮助。
...全文
16019 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jay猿 2017-01-24
  • 打赏
  • 举报
回复
我在网上下载了一个,直接就能用了,感谢各位的帮助,很有用。
超凡三眼仔 2016-12-11
  • 打赏
  • 举报
回复
需要使用CMAKE联合编译OPENCV和CUDA
hujingshuang 2016-12-01
  • 打赏
  • 举报
回复
引用 10 楼 hust_bochu_xuchao 的回复:
[quote=引用 4 楼 wangyaninglm 的回复:] 需要重新编译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;
}


请你那里有编译好的包含gpu modul的opencv249-2413的库吗 跪求一份,不胜感激啊[/quote] 我前几天刚编译好,不知道你的是什么配置,我的是win10 + vs2013 + opencv2.4.13 + CUDA8.0.44 + tbb44_20160803oss_win + GTX950M + CMake3.4.3,编译比较顺利,没有出问题,目前也能正常使用。
  • 打赏
  • 举报
回复
引用 4 楼 wangyaninglm 的回复:
需要重新编译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;
}


请你那里有编译好的包含gpu modul的opencv249-2413的库吗 跪求一份,不胜感激啊
qq_25537607 2016-07-24
  • 打赏
  • 举报
回复
http://johnhany.net/2015/10/windows7-compile-opencv3-with-cuda/#comment-789 这个博客有用。
shangwuhencc 2015-12-03
  • 打赏
  • 举报
回复
我也遇到了,目的也是开启opencv的GPU模块,所以就重编译opencv,版本是2.4.11,然后在vs2010里面生成库的时候,总是会缺少,一开始是highgui的dll没有生成,出现error LNK2019,后来反复试了好几次,就变成了无法生成gpu那个dll了
super_qian 2015-10-28
  • 打赏
  • 举报
回复
您的问题解决了吗?我和你遇到了同样的问题
Jay猿 2014-11-03
  • 打赏
  • 举报
回复
我试过很多次,自己编译的都没有成功,哪个返回值总是显示为0,后来我从别人那里下载的返回了大于0的值,在调用时GpuMat和Mat赋值之间就提示未定义,发布的例子也没有通过。。。官方例程有不少也没走通,比如IplImage* iplImg = cvLoadImage("greatwave.jpg", 1); Mat mtx(iplImg);这个就没有走通 提示error C2664: “cv::Mat::Mat(const cv::Mat &)”: 不能将参数 1 从“IplImage *”转换为“const cv::Mat &” 1> 原因如下: 无法从“IplImage *”转换为“const cv::Mat” 1> 无构造函数可以接受源类型,或构造函数重载决策不明确
姿迷姿乐 2014-10-17
  • 打赏
  • 举报
回复
4楼说的对。。
shiter 2014-10-13
  • 打赏
  • 举报
回复
需要重新编译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;
}


cs_xiaoyuzhang 2014-06-04
  • 打赏
  • 举报
回复
是不是单独用cuda 的例子可以运行,但是用opencv 的就不行呢 如果是这样,就是你cuda配置的问题 网上很多cuda配置的文章 可以搜搜看一下。
Jay猿 2014-05-30
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
你显卡不支持cuda吧
我的显卡是GT650 ,我用显卡编写了cuda程序,效果还是可以的,单独用opencv也没有问题,cudagetdevice显示有设备,可是opencv里面的就没有显示有可用设备。
__cc__ 2014-05-29
  • 打赏
  • 举报
回复
你显卡不支持cuda吧

4,499

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧