OpenCV CUDA:GpuMat无法上传

时间:2016-04-13 20:28:35

标签: c++ opencv

我正在尝试使用OpenCV 3.1中的CUDA上传到GPU:

Mat testImg = Mat::zeros(Size(640,480), CV_8UC3);
GpuMat gpuImg = GpuMat(testImg);

在一个简单的程序中,这是有效的。但是我有一个庞大的项目,即使在主要功能的开头,也有两条线无法执行。我调试了它并进入gpu_mat.cu直到第222行create(mat.size(), mat.type());: [从gpu_mat.cu第213行开始](此文件的完整代码:https://github.com/Itseez/opencv/blob/master/modules/core/src/cuda/gpu_mat.cu

/////////////////////////////////////////////////////upload

void cv::cuda::GpuMat::upload(InputArray arr) {
    Mat mat = arr.getMat();

    CV_DbgAssert( !mat.empty() );

    create(mat.size(), mat.type()); //programm goes until here; this function does not return; the program just hangs here

    CV_CUDEV_SAFE_CALL( cudaMemcpy2D(data, step, mat.data, mat.step, cols * elemSize(), rows, cudaMemcpyHostToDevice) ); 
}

rows mat的值为640,cols的值为480。有人有解决方案吗?我差点陷入绝望。

0 个答案:

没有答案