我正在尝试对已经创建的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
有谁知道我在做什么导致此错误? 提前致谢
答案 0 :(得分:1)
我认为您的cpuGray
可能是一个空矩阵。函数registerPageLocked(cpuGray)
需要知道需要为cpuGray
页面锁定多少内存。确保cpuGray
不是空矩阵。 <{1}}已在
cpuGray
因此请确保cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY);
不为空。