opencv调用摄像头采集图像+配合canny边缘检测

时间:2021-11-28 20:11:49

http://blog.csdn.net/hezhen_nku/article/details/72910338

跟上文相比只是把“1.avi”换成0就可以了。

1.VideoCapture capture;

capture.open(0);

2.VideoCapture capture (0);


while(1)

{

Mat frame;//定义一个Mat变量,用于存储每一帧图像

capture>>frame;//读取当前帧

imshow("读取视频",frame);//显示当前帧

waitKey(30);//延时30ms

}


可以配合canny边缘检测

#include "opencv2/opencv.hpp"

using namespace cv;


int main()

{

VideoCapture capture(0);

Mat edges;


while(1)

{

Mat frame;//定义一个Mat变量,用于存储每一帧图像

capture>>frame;//读取当前帧


cvtColor(frame,edges,CV_BGR2GRAY);//转化rgb图像为灰度图

//这一句对应的是opencv2版本

//如果是opencv3,则是cvtColor(frame,edges,COLOR_BGR2GRAY);


blur(edges,edges,Size(7,7));//使用3x3内核来降噪,2x3+1=7,不知道为什么这么算

//上句进行了模糊


Canny(edges,edges,0,30,3);//边缘检测

imshow("被canny后的视频",edges);//显示经过处理以后的当前帧

imshow("读取视频",frame);//显示当前帧

waitKey(30);//延时30ms

}

return 0;


}