利用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;
}