我尝试读取相机帧并通过cv::namedWindow
使用cv::cuda::GpuMat
.
这是我的 C++ 代码:
cv::namedWindow("frame", cv::WINDOW_OPENGL);
cv::resizeWindow("frame", FRAME_WIDTH, FRAME_HEIGHT);
while (true) {
cv::Mat frame;
cv::cuda::GpuMat frame_gpu;
camera.read(frame);
frame_gpu.upload(frame);
cv::imshow("frame", frame_gpu);
//frame_gpu.download(frame);
if (cv::waitKey(1) == 27) {
break;
}
}
cv::destroyAllWindows();
如果我关闭窗口,我会收到此错误:
OpenCV Error: The function/feature is not implemented (You should explicitly call download method for cuda::GpuMat object) in getMat_, file /home/nvidia/opencv-3.2.0/modules/core/src/matrix.cpp, line 1276
terminate called after throwing an instance of 'cv::Exception'
what(): /home/nvidia/opencv-3.2.0/modules/core/src/matrix.cpp:1276: error: (-213) You should explicitly call download method for cuda::GpuMat object in function getMat_
Aborted (core dumped)
如果我键入Esc
key 来结束逻辑,它不会引发任何异常。
为什么我会收到此错误,我该如何解决?