CUDA和OpenCV。转换表格Mat到GpuMat不起作用

时间:2016-01-18 13:26:28

标签: c++ opencv opencv3.0

我有一小段代码试图将Mat转换为GpuMat并反转。 当我尝试使用“上传”功能上传GpuMat中的Mat时,它会中断。如果我在调试中进行下一步,则写入GpuMat的大小,与Mat相同但不上传像素数据。 这是代码:

Mat initFrame;
Mat initconv;
Mat threshold;
imageCircle.copyTo(initFrame);
cvtColor(initFrame,initconv,CV_BGR2HSV);

gpu::GpuMat myFrame;
gpu::GpuMat myFrameLab;

myFrame.upload(initconv);

myFrame.download(threshold);
//gpu::cvtColor(myFrame,myFrameLab,CV_BGR2YCrCb);
imshow("INPUT",threshold);

更新

我读到我需要在GPU支持下构建Opencv。在这里,我不知道该怎么做。我在某个地方看到它在OpenCV目录中存在/gpu/built/..。我有2.4.9和3.1版本,但我在Opencv目录中找不到/gpu/build/...

1 个答案:

答案 0 :(得分:0)

它开始是一个老帖子,但我仍然想帮忙:

首先,要验证Cuda是否已安装且受支持,您必须调用该函数

cuda::getCudaEnabledDeviceCount();

如果安装和支持Cuda,那么它必须返回不同于0的东西 如果您像我一样使用Visual Studio 2015,通常您应该知道Cuda仅支持Visual Studio 2013和Visual Studio 2015 Update 1 在我关于使用Cuda的研究中,我遵循了本教程:
http://robbinmarcus.blogspot.fr/2016/02/cuda-in-visual-studio-2015.html
如果您需要帮助,请告诉我