帧差法识别

定义:

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

帧差法识别步骤:

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

cpp 复制代码
    cvtColor(before_frame,before_gray,CV_RGB2GRAY);
    cvtColor(after_frame,after_gray,CV_RGB2GRAY);

2、侦差计算

cpp 复制代码
absdiff(before_gray,after_gray,diff_frame);

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

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

4、降噪:去除噪点

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

关键代码

cpp 复制代码
    // 腐蚀
    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、获取坐标点,绘制矩形

cpp 复制代码
    // 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算力小,对硬件配置要求不高。

缺点:

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

相关推荐
澪-sl6 分钟前
基于CNN的人脸关键点检测
人工智能·深度学习·神经网络·计算机视觉·cnn·视觉检测·卷积神经网络
羊小猪~~22 分钟前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
摸爬滚打李上进40 分钟前
重生学AI第十六集:线性层nn.Linear
人工智能·pytorch·python·神经网络·机器学习
HuashuiMu花水木41 分钟前
PyTorch笔记1----------Tensor(张量):基本概念、创建、属性、算数运算
人工智能·pytorch·笔记
lishaoan771 小时前
使用tensorflow的线性回归的例子(四)
人工智能·tensorflow·线性回归
AI让世界更懂你1 小时前
【ACL系列论文写作指北15-如何进行reveiw】-公平、公正、公开
人工智能·自然语言处理
牛客企业服务2 小时前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
视觉语言导航2 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
**梯度已爆炸**3 小时前
自然语言处理入门
人工智能·自然语言处理
ctrlworks3 小时前
楼宇自控核心功能:实时监控设备运行,快速诊断故障,赋能设备寿命延长
人工智能·ba系统厂商·楼宇自控系统厂家·ibms系统厂家·建筑管理系统厂家·能耗监测系统厂家