opencv 2.4如何读取摄像头的操作

/*
 * FGBGTest.cpp
 *
 *  Created on: May 7, 2012
 *      Author: Andrew B. Godbehere
 */
/*
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

static void help()
{
    std::cout <<
    "\nA program demonstrating the use and capabilities of a particular BackgroundSubtraction\n"
    "algorithm described in A. Godbehere, A. Matsukawa, K. Goldberg, \n"
    "\"Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive\n"
    "Audio Art Installation\", American Control Conference, 2012, used in an interactive\n"
    "installation at the Contemporary Jewish Museum in San Francisco, CA from March 31 through\n"
    "July 31, 2011.\n"
    "Call:\n"
    "./BackgroundSubtractorGMG_sample\n"
    "Using OpenCV version " << CV_VERSION << "\n"<<std::endl;
}

int main(int argc, char** argv)
{
    help();

    initModule_video();
    setUseOptimized(true);
    setNumThreads(8);

    Ptr<BackgroundSubtractorGMG> fgbg = Algorithm::create<BackgroundSubtractorGMG>("BackgroundSubtractor.GMG");
    if (fgbg.empty())
    {
        std::cerr << "Failed to create BackgroundSubtractor.GMG Algorithm." << std::endl;
        return -1;
    }

    fgbg->set("initializationFrames", 20);
    fgbg->set("decisionThreshold", 0.7);

    VideoCapture cap;
    if (argc > 1)
        cap.open(argv[1]);
    else
        cap.open(0);

    if (!cap.isOpened())
    {
        std::cerr << "Cannot read video. Try moving video file to sample directory." << std::endl;
        return -1;
    }

    Mat frame, fgmask, segm,edges;

    namedWindow("FG Segmentation", WINDOW_NORMAL);

    for (;;)
    {
        cap >> frame;

        if (frame.empty())
            break;


	cvtColor(frame,edges, CV_BGR2GRAY);  
    GaussianBlur(edges, edges,Size(7,7),1.5,1.5);  
    Canny(edges, edges,0,90,3);  
    imshow("qq",edges);  


	/*
        (*fgbg)(frame, fgmask);

        frame.copyTo(segm);
        add(frame, Scalar(100, 100, 0), segm, fgmask);

        imshow("FG Segmentation", segm);
		*/
/*
        int c = waitKey(30);
        if (c == 'q' || c == 'Q' || (c & 255) == 27)
            break;
    }

    return 0;
}

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值