windows - Intermitterende video efter cv: resize () ved hjælp af OCL

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg tester OpenCV-funktionen resize () ved hjælp af OCL modul. For det byggede jeg den static libs af OpenCV 3.4.1 med optionen WITH\_OPENCL. Til testning bruger jeg følgende kode:


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?????


Jeg spiller (via DirectShow-graf) et videoklip 1920x1020 med fps 30. Efter opencv resize () får jeg en ramme 960x540. Process Explorer viser mig GPU-indlæsning. Men output videoen er intermitterende, hvorfor ????


Hvis du slukker med OCL (cv :: ocl :: setUseOpenCL (false);), er outputvideoen godt.


Min video cart: NVIDIA Geforce GTX 650;
OS: MS Windows 10;
VS2017.

Bedste reference