1.读取视频,使用VideoCapture类对象(还可以实现视频播放速度调节)。
将VideoCapture capture("D://1.avi");改成VideoCapture capture(0),即可调用摄像头。
frame:帧
framework:框架
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
//头文件要记得导入
using namespace cv;
int main()
{
VideoCapture capture("D://1.avi");
while(1)
{
Mat frame;
capture >> frame;
imshow("读取视频", frame);
waitKey(100);
}
return 0;
}
2.对摄像头图像进行实时裁边
待解决问题:blur函数的size应该如何确定。
Canny函数的参数应该如何选定
帧如何写入到视频中并保存
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/videoio/videoio_c.h>
//头文件要记得导入
using namespace cv;
int main()
{
VideoCapture capture(0);
Mat edges, frame;
while (1)
{
//摄像头读入图像
capture >> frame;
//转成灰度
cvtColor(frame, edges, COLOR_BGR2GRAY);
//3x3内核均值滤波来降噪(2x3+1=7)
blur(edges, edges, Size(7, 7));
//Canny算子检测边缘
Canny(edges, edges, 0, 30, 3);
imshow("Canny后的视频", edges);
waitKey(30);
}
return 0;
}