帧差法——动态检测——统计车流量

帧差法原理

帧间差分法是一种通过对视频图像序列的连续两帧图像做差分运算获取运动目标轮廓的方法。当监控场景中出现异常目标运动时,相邻两帧图像之间会出现较为明显的差别,两帧相减,求得图像对应位置像素值差的绝对值,判断其是否大于某一阈值,进而分析视频或图像序列的物体运动特性。

实现流程

实现效果


动态检测函数代码

Mat MoveDetect(Mat frame1, Mat frame2) {Mat result = frame2.clone();Mat gray1, gray2;cvtColor(frame1, gray1, CV_BGR2GRAY);cvtColor(frame2, gray2, CV_BGR2GRAY);Mat diff;absdiff(gray1, gray2, diff);//两幅图做差imshow("absdiss", diff);threshold(diff, diff, 25, 255, CV_THRESH_BINARY);//二值化diffMat element = getStructuringElement(MORPH_RECT, Size(3, 3));//返回指定形状与尺寸得结构元素Mat element2 = getStructuringElement(MORPH_RECT, Size(19, 19));erode(diff, diff, element);//腐蚀函数medianBlur(diff, diff, 3);//中值滤波dilate(diff, diff, element2);//膨胀函数 vector<vector<Point>> contours;vector<Vec4i> hierarcy;findContours(diff, contours, hierarcy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));//查找轮廓vector<vector<Point>>contours_poly(contours.size());vector<Rect> boundRect(contours.size()); //定义外接矩形集合 int x0 = 0, y0 = 0, w0 = 0, h0 = 0;for (int i = 0; i<contours.size(); i++){approxPolyDP(Mat(contours[i]), contours_poly[i], 3, true);//对图像轮廓点进行多边形拟合:轮廓点组成的点集,输出的多边形点集,精度(即两个轮廓点之间的距离),输出多边形是否封闭boundRect[i] = boundingRect(Mat(contours_poly[i]));if (boundRect[i].width>90 && boundRect[i].width<180 && boundRect[i].height>90 && boundRect[i].height<180) {//轮廓筛选 (90 180)x0 = boundRect[i].x;y0 = boundRect[i].y;w0 = boundRect[i].width;h0 = boundRect[i].height;rectangle(result, Point(x0, y0), Point(x0 + w0, y0 + h0), Scalar(0, 255, 0), 2, 8, 0);if ((y0 + h0 / 2 + 1) >= 198 && (y0 + h0 / 2 - 1) <= 202) {//经过这条线(区间),车辆数量+1CarNum++;}}line(result, Point(0, 200), Point(720, 200), Scalar(0, 0, 255), 1, 8);//画红线Point org(0, 35);putText(result, "CarNum=" + intToString(CarNum), org, CV_FONT_HERSHEY_SIMPLEX, 0.8f, Scalar(0, 255, 0), 2);}return result;
}

完整代码及实验使用视频请到资源处下载

链接: https://download.csdn.net/download/weixin_46958585/12708964.

帧差法——动态检测——统计车流量相关推荐

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

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

  2. 目标检测、追踪梳理:帧差法、光流法、背景减除法

    (0)总览 运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像(背景层)中提取出来.通常情况下,目标分类.跟踪和行为理解等后处理过程仅仅考虑图像中对应于运动目标的像素区域(前景层),因此 ...

  3. 【opencv】(11) 背景建模,帧差法、混合高斯模型,实战:行人检测,附python完整代码和数据集

    各位同学好,今天和大家分享一下opencv背景建模相关操作.主要介绍两种背景建模方法,帧差法和混合高斯模型. 案例简介:现有一份路口摄像机拍摄的行人流视频,通过背景建模方法,区分背景和前景,完成行人识 ...

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

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

  5. 运动目标检测之帧差法

    原理简介: 所谓帧差法也就是对连续图像帧做差分运算,其结果与定义好的阈值比较,若大于阈值则为运动目标值为1,否则值为0 . 帧差法一般分为两帧差分和三帧差分. 两帧差分: 取连续的两帧序列,用后一帧减 ...

  6. matlab帧间差分法前景提取_matlab采用帧差法实现运动目标检测

    帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法,它可以很好地适用于存在多个运动目标和摄像机移动的情况.当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差别,两 ...

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

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

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

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

  9. Python实现视频运动目标检测——帧差法

    Python实现视频运动目标检测--帧差法 在许多场景中,我们需要对视频中的运动目标进行检测.而在这个过程中,帧差法是一种常用的方法.本文将详细阐述Python如何利用帧差法实现视频运动目标检测. 首 ...

  10. ​基于matlab的目标检测 背景差分法和帧差法

    本程序实现了图像传感器的叶子抖动研究系统,利用背景差分.帧差法实现了此系统. 结果如下: 点击帧差法,显示如下: 部分程序见: gui_Singleton = 1; gui_State = struc ...

最新文章

  1. 面向对象编程的乐趣(TextBox.Text=)
  2. 使用 Termux 查看连接到手机热点的ip地址
  3. 跨链(2)跨链技术“哈希锁定(Hash-locking)”
  4. beetl 时间输出格式化
  5. myPassword
  6. 基于 OpenCV 的图像阴影去除,你会吗?
  7. Python 之 获取Host Esxi 主机信息
  8. windbg调试环境变量记录
  9. 第二章 原理图绘制与检查
  10. 聚焦技术实战!MDCC 2016 移动开发者大会盛大开幕
  11. Office文档忘保存了?办公必学技能:快速找回未保存的文档
  12. 《信号与系统》解读 第1章 信号与系统概述-1:信号与系统的描述和分析方法
  13. 输入某年某月某日,判断这一天是星期几
  14. 赵望野:前端工程师的困惑
  15. 网络图库Cytoscape.js的使用(一):初始化配置
  16. 支付宝电脑网页支付接口的调用
  17. 2010年西北工业大学机试第二题
  18. ResNet 残差网络、残差块
  19. 成像系统(一):A Review of Indocyanine Green Fluorescent Imaging in Surgery
  20. 企业级SaaS私有化部署的机会和挑战

热门文章

  1. 两个平面的位置关系和判定方程组解_高一数学必修二平面知识点详解
  2. windows 安装 telnet 工具
  3. opencl编程简单的入门知识
  4. 回调函数透彻理解Java
  5. 基于VISSIM和Python的二次开发基础—多时段配时控制
  6. 监控视频统一汇聚集中录像存储方案
  7. 【软件工程】重要知识点
  8. Ubuntu 自动关机命令
  9. eclipse中文版
  10. 2020五一建模:C题 饲料混合加工问题 题解