帧间差分算法

第一步:从摄像头采集视频成一帧一帧的图像

函数vecdiocapture capture(0/1);if(!capture.isopen());打开摄像头如果失败就输出“OPEN CAMERA FAIL”

第二步:把当前帧的图像灰度化cvtColor();然后取当前帧的图像与上一帧的图像做差subtract();并且绝对值abs();然后把取完绝对值的图片位深从16变为8  convertTo()最后还要进行阈值化threshold();大于阈值的就赋予该点255否则赋予0 .。

第三步:通过迭代器方法遍历阈值化后的图像的每一个像素点:

cv::Mat_<uchar>::iterator it = resule_grayimg.begin<uchar>();
   cv::Mat_<uchar>::iterator itend = resule_grayimg.end<uchar>();
   for (; it != itend; ++it)
   {
    if ((*it)>0) counter += 1;//二值化后,像素点是0或者255
   }//如果像素点不为零就累计counter加一。

第四步:通过判断counter像素点的个数判断摄像头拍摄的物体是否由移动,当有移动时相邻两帧图像的差值的绝对值就会大于零,改变量越大差值的绝对值越大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值