opencv 运动检测 三帧差法

 三帧差法 优点:

实时性高

缺点:

1、运动物体本身颜色相近时,会出现较大的空洞。

2、无法应对光照骤变的情况

理论上:三帧差法 比 二帧差法更好一些(可在一定程度上消除帧间差分法的“双影”现象),但是也要结合实际情况而用。

1. 帧差法基本原理

帧差法的实现非常简单:

   如图可见,由目标运动引起的运动变化区域,包括运动目标在前后两帧中的共同位置(图中黑色区域)、在当前帧中新显露出的背景区域和新覆盖的背景区域三部分。

数学原理:

三帧差法的流程:

1 结果1 = (第二幅图像 - 第一幅图像) ∩ (第三幅图像 - 第二幅图像) 
2 结果2 = 滤波(结果1) 
3 结果3 = 形态学处理(结果2) 
4 结果4 = 二值化(结果3)

第一步:第二幅图像减去第一幅图像的值与第三幅图像减去第二幅图像的值作交集运算. 
 对第一步产生的结果做滤波处理. 
 对第二步产生的结果做形态学处理. 
对第三步产生的结果做二值化处理.

直接上代码:

#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main()
{//读入视频  VideoCapture capture("1.avi");  //Laboratory_raw.avi//VideoCapture capture(0);Mat tempframe, currentframe, previousframe, difframe,s3;Mat difframe2, difframe3;Mat frame;int framenum = 0;//读取一帧处理  while (true){if (!capture.isOpened()){cout << "read video failure" << endl;return -1;}//tempframe = capture.read(frame);  capture >> frame;imshow("原视频", frame);previousframe = frame.clone();   //第一帧capture >> frame;currentframe = frame.clone();   //第二帧capture >> frame;s3 = frame.clone();            //第三帧cvtColor(previousframe, previousframe, CV_BGR2GRAY);cvtColor(currentframe, currentframe, CV_BGR2GRAY);cvtColor(s3,s3, CV_BGR2GRAY); absdiff(currentframe, previousframe, difframe);//做差求绝对值   1-2  absdiff(previousframe, s3, difframe2);//做差求绝对值            2-3//准备做与运算,difframe3= difframe2^difframe// void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask=noArray());//dst = src1 & src2bitwise_and(difframe, difframe2, difframe3);  //threshold(difframe3, tempframe, 20, 255.0, CV_THRESH_BINARY);dilate(tempframe, tempframe, Mat());//膨胀  erode(tempframe, tempframe, Mat());//腐蚀imshow("运动目标", tempframe);waitKey(50);}//end while
}

运行结果:

希望对你有帮助。

opencv 运动检测 三帧差法相关推荐

  1. 相邻帧差法和三帧差法

    相邻帧差法和三帧差法 原文地址:https://blog.csdn.net/dcrmg/article/details/52234929 帧间差分法是通过对视频中相邻两帧图像做差分运算来标记运动物体的 ...

  2. 【目标追踪】三帧差法原理及实现

    三帧差法原理及实现 (一)帧差法原理及实现: (二)帧差法存在的问题: (三)三帧差法的原理: (四)三帧差法的实现代码: (五)视频中的目标追踪效果: 关注我的公众号: (一)帧差法原理及实现: 这 ...

  3. 目标检测:采用卡尔曼滤波、 帧差法 、三帧差法、 背景差分法、 meansift算法

    本程序主要包含五个算法 卡尔曼滤波. 帧差法 .三帧差法. 背景差分法. meansift算法的目标追踪跟进 并用Gui进行了系统的设计和更新 Mansift主要根据第一个数据的设计 得到目标框,然后 ...

  4. 视频目标跟踪算法matlab仿真,对比二帧差法,三帧差法,混合高斯法以及Vibe算法

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 1.1二帧差法 帧间差分法是一种通过对视频图像序列的连续两帧图像做差分运算获取运动目标轮廓的方法.当监控场景中出现异常目标运动 ...

  5. 前景检测算法(三)--帧差法

     原文:http://www.cnblogs.com/tornadomeet/archive/2012/05/01/2477629.html 前景检测算法_2(帧差法1) 帧差法是背景减图法中的一 ...

  6. 论文学习-卫星视频与目标追踪-1-融合KCF跟踪器和三帧差算法

    论文学习-卫星视频与目标追踪-1 大家好,近来一直在研究基于视频卫星的目标追踪领域.为了更好地梳理自己的论文学习过程,故采用博客的方式记录下来.接下来我会将此领域一些我觉得典型的有意义的论文,以我自己 ...

  7. 传统目标跟踪——帧差法

    目录 一.帧差法 二.代码 2.1 二帧差法 2.2 三帧差法 三.总结 一.帧差法 计算帧之间的差异,或考虑"背景帧"与其他帧之间的差异. 当视频中存在移动物体的时候,相邻帧(或 ...

  8. 数字图像处理拓展题目——利用Matlab实现动态目标检测 二帧差法、ViBe法、高斯混合模型法,可应用于学生递东西行为检测

    1.二帧差法实现动态目标检测 先上效果图: 利用GUI界面显示出来效果图为: 实现流程 1.利用matlab中的VideoReader函数读取视频流. 2.帧差法:获得视频帧数,用for循环对图像每相 ...

  9. Python与OpenCV(一)——基于帧差法的运动目标检测程序分析

    OpenCV提供了强大的图像处理功能,与Python的结合堪称完美... 这一次,我们试一下用帧差法来完成对运动目标的检测与跟踪. 帧差法的原理是这样的:由于摄像机采集的视频序列具有连续性的特点,所以 ...

  10. python识别重影验证码_python+opencv实现移动侦测(帧差法)

    本文实例为大家分享了python+opencv实现移动侦测的具体代码,供大家参考,具体内容如下 1.帧差法原理 移动侦测即是根据视频每帧或者几帧之间像素的差异,对差异值设置阈值,筛选大于阈值的像素点, ...

最新文章

  1. Redis的Errorlog或者启动日志(错误日志)的配置
  2. [网络安全自学篇] 二十四.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例
  3. 在Linux上运行Windows软件的4种以上方法
  4. 神抓拍!2020搞笑野生动物摄影大赛,哈哈哈哈哈笑到头掉
  5. PostgreSQL 字符串分隔函数(regexp_split_to_table、regexp_split_to_array)  发表于 2020-06-01 |  阅读次数: 394
  6. java byte(字节_Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutpu......
  7. Go在招聘中最吃香,安全工程师薪资涨幅最高 | 软件工程师年度报告出炉
  8. Java导出Excel 复杂表头
  9. 微型计算机的拼音,微型计算机拼音
  10. HEVC与AVC的区别与联系(十二),Android面试题集锦在这里
  11. android studio开发app设置登录界面
  12. python 股票行情系统_手把手教你用 Python 打造股票行情分析的 GUI
  13. 微信小程序中转义字符的处理
  14. 拯救行动 OpenJ_Bailian - 4116
  15. WSO2 XMl转JSON
  16. 《七哥说道》第十六章:程序员,江湖见
  17. excel白屏未响应_关于Excel联网状态下打开某些xls(xlsx)文件巨慢(白屏,假死) - Microsoft Community...
  18. 学WEB前端开发,自学还是培训靠谱
  19. 【问题处理】Word修改页边距后,目录没有右对齐
  20. Oauth2自定义access_token 生成策略

热门文章

  1. CAD的.net开发
  2. 【毕业设计】基于情感分析的网络舆情热点评估系统 - 大数据 python可视化 数据分析
  3. tomcat的access日志配置
  4. Mac屏幕截图软件SnapNDrag激活教程分享
  5. 水电图纸——安装配电箱,插座——3.8
  6. WIN7下安装IIS
  7. 组策略本地计算机策略导出,关于win10系统本地组策略备份和设置的详细步骤
  8. java反编译数组_JavaGuide/JAD反编译tricks.md at master · Github-Programer/JavaGuide · GitHub...
  9. QT利用UDP实现简单群聊系统
  10. spring 事务传播机制总结