我使用OCL模块测试OpenCV函数resize()。为此,我使用选项WITH_OPENCL构建了OpenCV 3.4.1的静态库。为了测试,我使用以下代码:
cv::Size sizeSrcCV = cv::Size(p->m_sizeSrc.cx, p->m_sizeSrc.cy);
cv::Size sizeDstCV = cv::Size(p->m_sizeDst.cx, p->m_sizeDst.cy);
cv::Mat srcMat(sizeSrcCV, CV_8UC3, p->m_psrcBuf);
cv::UMat dstUMat;
cv::resize(srcMat.getUMat(cv::ACCESS_FAST), dstUMat, sizeDstCV, 0, 0, CV_INTER_NN);
cv::imshow("Test", dstUMat); //Intermittent video?????
我使用fps 30播放(通过DirectShow图形)视频片段1920x1020。在opencv resize()之后,我得到一帧960x540。 Process Explorer显示GPU加载。但输出视频是断断续续的,为什么????
如果使用OCL(cv :: ocl :: setUseOpenCL(false);)关闭,则输出视频很好。
我的视频车:NVIDIA Geforce GTX 650; 操作系统:MS Windows 10; VS2017。