使用OpenCv的videoinput

时间:2013-09-22 09:59:26

标签: c++ opencv directshow video-capture

我正在寻找一种简单的方法来使用OpenCv的视频输入,因为我从网上读了很多资料,但我仍然很困惑。

我从2.3版本中读到它是OpenCv的一部分。 这是什么意思?

我包含了“highgui.hpp”并声明了“videoInput VI”(带有HAVE_DSHOW HAVE_VIDEOINPUT已定义),但未识别错误'videoInput'。

然后我收录了一个我在网上找到的“videoinput.h”文件 “错误LNK2001:simbolo esterno”public:__ thiscall videoInput :: ~videoInput(void)“(?? 1videoInput @@ QAE @ XZ)non risolto”

我还要下载库吗? 我认为它应该更简单,因为它是“OpenCv的一部分”。

1 个答案:

答案 0 :(得分:0)

如果您想阅读和处理视频帧,我建议您使用VideoCapture类。

以下是边缘检测器的示例:

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap("videofilename"); // open the video file
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    Mat edges;
    namedWindow("edges",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from the video
        cvtColor(frame, edges, CV_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges);
        if(waitKey(30) >= 0) break;
    }
    return 0;
}