基本原理是基于摄像头采集到的图像进行图像处理,来识别动态物体。
首先呢,得先获取到摄像头采集到的图像
//打开摄像头
int _stdcall OpenCamera()
{
capture.open(0);
bgsubtractor = createBackgroundSubtractorMOG2(500, 36, false);
if (!capture.isOpened())
{
return 0;
}
else
{
return 1;
}
}
int _stdcall getMat(Mat* mt)
{
//VideoCapture capture(0);//从摄像头读入视频 默认列表从第一个摄像头开始读
if (!capture.isOpened())
{
return 0;
}
else
{
Mat edges; //定义一个Mat变量,用于存储每一帧的图像
capture >> edges; //读取当前帧
size_t with = edges.rows;//宽
size_t height = edges.cols;//高
size_t proportion = 60;
*mt = edges(Range(proportion, with - proportion), Range(0, height));
//cvtColor(*mt, edges, CV_BGR2GRAY);//彩色转换成灰度
//blur(edges, edges, Size(7, 7));//模糊化
//Canny(edges, edges, 0, 30, 3);//边缘化
return 1;
}
至此我们就已经拿到了摄像头所拍摄的图像,具体需要什么样的图像数据,可以根据项目自行修改