//添加头文件
#include<opencv2/core/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main ()
{
//打开一个默认的相机
VideoCapture capture(0);
//检查是否成功打开
if(!capture.isOpened())
return -1;
Mat edges;
while(1)
{
Mat frame;
capture>>frame;//从相机读取新一帧
cvtColor(frame,edges,CV_BGR2GRAY);//变为灰度图
blur(edges,edges,Size(3,3));//均值滤波降噪
Canny(edges,edges, 5 , 38 , 3);//canny算子
imshow("被canny后的视频", edges);//显示
waitKey(30);
//法2:
//if(waitKey(30)>=0)//延时30ms
//break;
}
return 0;
}
<效果>:
<官网用法实例>:
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
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;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
《OpenCV3编程入门》—作者:毛星云