OpenCV 2.4.4与CUDA:registerPageLocked失败

时间:2013-05-21 21:29:00

标签: opencv cuda gpu-programming

我正在尝试对已经创建的Mat进行页面锁定。 请考虑以下示例代码:

...
Mat cpuGray;
GpuMat gpuGray;
cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY);
registerPageLocked(cpuGray);
gpuStream.enqueueUpload(cpuGray, gpuGray);
...

在运行时,它失败了:

OpenCV Error: Gpu API call (invalid argument) in registerPageLocked, file ../gpu/src/matrix_operations.cpp, line 194
terminate called after throwing an instance of 'cv::Exception'
  what():  ../gpu/src/matrix_operations.cpp:194: error: (-217) invalid argument in function registerPageLocked
Aborted

有谁知道我在做什么导致此错误? 提前致谢

1 个答案:

答案 0 :(得分:1)

我认为您的cpuGray可能是一个空矩阵。函数registerPageLocked(cpuGray)需要知道需要为cpuGray页面锁定多少内存。确保cpuGray不是空矩阵。 <{1}}已在

中初始化
cpuGray

因此请确保cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY); 不为空。