当前位置: 首页 > news >正文

帧差法识别

定义:

视频通过闪过x帧画面来实现,帧差法就是利用两帧之间的差异找出。也就是移动目标识别

帧差法识别步骤:

1、灰度处理:将多通道变成双通道压缩图像数据。

    cvtColor(before_frame,before_gray,CV_RGB2GRAY);cvtColor(after_frame,after_gray,CV_RGB2GRAY);

2、侦差计算

absdiff(before_gray,after_gray,diff_frame);

3、二值化处理:将图片变成黑色和白色两种

    /** 25:灰度值在25以上为1,在25以下为0*/threshold(diff_frame,diff_frame,25,255,CV_THRESH_BINARY);

4、降噪:去除噪点

        开运算:先腐蚀再膨胀,用来消除小物体(图像周边白点)。

        关键代码

    // 腐蚀Mat ele1=getStructuringElement(MORPH_RECT,Size(3,3));erode(diff_frame,diff_frame,ele1);// 膨胀Mat ele2=getStructuringElement(MORPH_RECT,Size(20,20));dilate(diff_frame,diff_frame,ele2);

        闭运算:先膨胀再腐蚀,用于排除小型黑洞(图像内部黑点)。

5、多边拟合:将相邻的点连成一块区域(绘制矩形的坐标)

6、获取坐标点,绘制矩形

    // 5、多边拟合:将相邻的点连成一块区域(绘制矩形的坐标)// 原始的轮廓点集合vector<vector<Point>> contours;// 它能在二值图像diff_frame中检测出物体的轮廓findContours(diff_frame,contours,CV_RETR_EXTERNAL,CHAIN_APPROX_SIMPLE,Point(0,0));// 创建一个与 contours 大小相同的向量,用于存储每个轮廓的简化多边形表示vector<vector<Point>> contours_poly(contours.size());// 创建一个与 contours 大小相同的向量,用于存储每个简化多边形的外接矩形vector<Rect> boundRect(contours.size());// 6、获取坐标点,绘制矩形int x,y,w,h;int num=contours.size();for(int i=0;i<num;i++){// 将复杂的轮廓曲线简化为近似的多边形approxPolyDP(Mat(contours[i]),contours_poly[i],3,true);// 计算外接矩形boundRect[i]=boundingRect(Mat(contours_poly[i]));x=boundRect[i].x;y=boundRect[i].y;w=boundRect[i].width;h=boundRect[i].height;rectangle(res_frame,Point(x,y),Point(x+w,y+h),Scalar(0,255,0));}

优点:

        开销小,占用内存和CPU算力小,对硬件配置要求不高。

缺点:

        检测时对画面要求高,且监测方要固定。

相关文章:

  • Ubuntu下配置VScode出现#include错误请更新includePath的解决方法
  • Servlet原理
  • 织梦Dedecms模板文件名介绍与说明
  • Qt信号槽机制与UI设计完全指南:从基础原理到实战应用
  • 基于windows环境Oracle主备切换之后OGG同步进程恢复
  • CSP-J/S初赛知识点:计算机网络与Internet基本概念知识点
  • GCC 使用说明
  • maven报错 You have to use a classifier to attach supplemental artifacts
  • EtherCAT转EtherNet/IP解决方案-泗博网关CEI-382
  • AI、机器学习、深度学习:一文厘清三者核心区别与联系
  • SSM项目集成redis、Linux服务器安装redis
  • idea启动报错:java: 警告: 源发行版 11 需要目标发行版 11(亲测解决)
  • InforSuite AS 可以发布django和vue项目是否可行
  • L - Strange Mirroring (思维)
  • 大模型浪潮下,黑芝麻智能高性能芯片助力汽车辅助驾驶变革
  • maven dependencyManagement标签作用
  • MyBatis XML配置和入门使用
  • <C++> MFC自动关闭对话框(MessageBoxTimeout)
  • Java对象的GC回收年龄的研究
  • 反病毒反垃圾U-Mail邮件系统从容应对
  • 车主质疑零跑汽车撞车后AEB未触发、气囊未弹出,4S店:其把油门当刹车
  • 证监会发布《上市公司募集资金监管规则》,6月15日起施行
  • 苏轼“胡为适南海”?
  • 德国总理默茨发表首份政府声明:将提升国防能力,全力发展经济
  • 北斗专访|特赞科技范凌:现在AI主要是“说话”,接下来要“干活”了
  • 2025年上海好护士揭晓,上海护士五年增近两成达12.31万人