opencv3读取摄像头视频并预处理

利用opencv3.3.0编写一个在windows系统下运行的读取摄像头视频的程序,并且做了灰度化、二值化、模糊。当然不需要的话,将处理函数注释即可。

// duqushipin.cpp: 定义控制台应用程序的入口点。


//--------------------------------------【程序说明】-------------------------------------------
//      程序说明:《OpenCV3编程入门》OpenCV3版书本配套示例程序07
//      程序描述:使用VideoCapture类调用摄像头读入视频并显示
//      开发测试所用操作系统: Windows 10 64bit
//      开发测试所用IDE版本:Visual Studio 2017
//      开发测试所用OpenCV版本: 3.3.0 beta

//------------------------------------------------------------------------------------------------

//---------------------------------【头文件、命名空间包含部分】----------------------------
//      描述:包含程序所使用的头文件和命名空间
//-------------------------------------------------------------------------------------------------
//

#include "stdafx.h"
#include "core/core.hpp"  
#include <opencv2/imgproc/imgproc.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <iostream>  
#include <set>
#include <opencv2\opencv.hpp>  
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//      描述:控制台应用程序的入口函数,我们的程序从这里开始
//-------------------------------------------------------------------------------------------------
int main()
{
    //【1】从摄像头读入视频
    VideoCapture capture(0);
    Mat edges;


    namedWindow("预处理后的视频", 0);
    //【2】循环显示每一帧
    while (1)
    {
        //读入图像
        Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
        capture >> frame;  //读取当前帧
        cvtColor(frame, edges, CV_BGR2GRAY);//灰度化

        //二值化
        threshold(edges, edges, 120, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

        //使用3*3内核来降噪
    //  blur(edges, edges, Size(3, 3));//进行模糊

        //进行canny边缘检测并显示
    //  Canny(edges, edges, 0, 30, 3);

        imshow("预处理后的视频", edges);  //显示当前帧
        if (waitKey(30) >= 0)
            break;

    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/mao_hui_fei/article/details/79968866