OpenCV实现读取摄像头做实时边缘检测
下面是使用OpenCV实现读取摄像头并做实时边缘检测(灰度转换、高斯模糊、Canny边缘检测)的事例代码。
//包含头文件 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> //使用命名空间 using namespace cv; int main() { VideoCapture cap(0);//VideoCapture类用法:1.VideoCapture(const string& filename)打开视频文件;2.VideoCapture(int device)打开设备。 if (!cap.isOpened())//检测VideoCapture类是否打开成功 { return -1;//打开失败返回值 } //定义变量类 Mat mFrame; Mat mEdges; //定义控制变量 bool bStop = false;//控制变量初始化 while (!bStop)//开始 { cap >> mFrame; cvtColor(mFrame, mEdges, CV_BGR2GRAY);//图像转换为灰度 GaussianBlur(mEdges, mEdges, Size(7, 7), 1.5, 1.5);//高斯滤波 Canny(mEdges, mEdges, 0, 30, 3);//边缘检测 imshow("camera", mEdges);//显示 if (waitKey(30) >= 0)//检测用户按键 { bStop = true;//更改控制变量 } } return 0;//结束返回 }