#include <opencv2/opencv.hpp>
#include <opencv2/tracking.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
VideoCapture capture;
capture.open("D:/vcprojects/images/sample.mp4");
if (!capture.isOpened())
{
printf("could not load video data...\n");
return -1;
}
// UMat方式读取视频,转为灰度显示-自动启用GPU计算
// 如果显卡支持OpenCL
UMat frame, gray;
namedWindow("UMat Demo", CV_WINDOW_AUTOSIZE);
while (capture.read(frame))
{
cvtColor(frame, gray, COLOR_BGR2GRAY);
imshow("UMat Demo", gray);
char c = waitKey(100);
if (c == 27)
{
break;
}
}
// 释放资源
capture.release();
waitKey(0);
return 0;
}
From: OpenCV3.x中UMat对象介绍与使用