1. 程式人生 > >UMat UMat

UMat UMat

OpenCV2

基於CPU的讀寫視訊一幀影象程式碼如下:

cv::Mat inMat, outMat;
vidInput >> inMat;
cv::cvtColor(inMat, outMat, cv::COLOR_RGB2GRAY);
vidOutput << outMat;

基於OpenCL的GPU方式讀寫視訊一幀影象程式碼如下:

cv::Mat inMat, outMat;
vidInput >> inMat;
cv::ocl::oclMat inOclMat(inMat);
cv::ocl::oclMat outOclMat;
cv::ocl::cvtColor(inOclMat, outOclMat, cv::COLOR_RGB2GRAY);
outMat = outOclMat;
vidOutput << outMat;

OpenCV3

通過使用UMat物件,OpenCV會自動在支援OpenCL的裝置上使用GPU運算,在不支援OpenCL的裝置仍然使用CPU運算,這樣就避免了程式執行失敗,而且統一了介面。

cv::UMat inMat, outMat;
vidInput >> inMat;
cv::cvtColor(inMat, outMat, cv::COLOR_RGB2GRAY);
vidOutput << outMat;

From: ........