一个同UMat读取视频并灰度化完整的例子[转]


#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对象介绍与使用

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/83582810