1

我正在尝试对已创建的 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

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

4

1 回答 1

1

我认为你cpuGray可能是一个空矩阵。该函数registerPageLocked(cpuGray)需要知道有多少内存需要被页面锁定cpuGray。确保它cpuGray不是一个空矩阵。cpuGray被初始化在

cv::cvtColor (cpuColor, cpuGray, CV_BGR2GRAY);

所以确保它cpuColor不为空。

于 2013-05-21T22:25:19.660 回答