当前位置: 首页 > 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算力小,对硬件配置要求不高。

缺点:

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

http://www.xdnf.cn/news/462763.html

相关文章:

  • Electron 主进程中使用Worker来创建不同间隔的定时器实现过程
  • c/c++消息队列库RabbitMQ的使用
  • golang -- 认识channel底层结构
  • LLM Text2SQL NL2SQL 实战总结
  • set, multiset ,unordered_set; map, multimap, unordered_map
  • 【向量维度如何选择?】
  • 深入探索向量数据库:构建智能应用的新基础
  • linux dbus
  • print()函数详解:输出文字、变量与格式化
  • Windows 安装 Redis 的几种方式
  • 设计模式(基于Python3)
  • Python课程及开源项目推荐
  • 宣纸阁项目测试报告
  • 流程编辑器Bpmn与LogicFlow学习
  • 2025长三角数学建模C题完整思路
  • Python多线程
  • 计算机网络:什么是电磁波以及有什么危害?
  • 谷歌量子计算机:开启计算新纪元
  • C# 活动窗体截图:基于 Win32 API 的实现
  • 有效的括号
  • 【蓝桥杯省赛真题49】python偶数 第十五届蓝桥杯青少组Python编程省赛真题解析
  • ROS--NAVI DWA
  • 【c语言】动态内存分配
  • MySQL 迁移至 Doris 最佳实践方案
  • 低功耗实现方法思路总结
  • 策略模式-枚举实现
  • 如何判断一个网站后端是用什么语言写的
  • 7.Pyecharts:全局配置项1
  • Python 翻译词典小程序
  • 平替BioLegend品牌-Elabscience FITC Anti-Mouse CD8a抗体(53-6.7)精准标记T细胞表面抗原