基于背景差法的运动目标检测(车辆检测),Matlab实现

        博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188

        个人主页:Matlab_ImagePro-CSDN博客

        原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则的事。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        本次分享的是基于背景差法的运动目标检测(车辆检测)算法,用matlab实现。(有疑问或者想交流细节的QQ:3249726188

        一、案例背景介绍

         运动目标检测也是图像处理领域一个常见的课题,接下来,博主将介绍常见的运动目标检测、跟踪相关的算法。这次介绍的运动目标检测领域的其中一个经典算法:基于背景差法的运动目标检测(车辆检测)算法。

       二、算法模型原理介绍

         背景差法是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法。背景差分法是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法,其性能依赖于所使用的背景建模技术。在基于背景差分方法的运动目标检测中,背景图像的建模和模拟的准确程度,直接影响到检测的效果。不论任何运动目标检测算法,都要尽可能的满足任何图像场景的处理要求,但是由于场景的复杂性以及各种环境干扰和噪声的存在,如光照的突然变化、实际背景图像中有些物体的波动、摄像机的抖动、运动物体进出场景对原场景的影响等,使得背景的建模和模拟变得比较困难。背景差分法检测运动目标速度快,检测准确,易于实现,其关键是背景图像的获取。在实际应用中,静止背景是不易直接获得的,同时,由于背景图像的动态变化,需要通过视频序列的帧间信息来估计和恢复背景,即背景重建,所以要选择性的更新背景。常见的背景建模方法有:

        (1)中值法背景建模:顾名思义,就是在一段时间内,取连续N帧图像序列,把这N帧图像序列中对应位置的像素点灰度值按从小到大排列,然后取中间值作为背景图像中对应像素点的灰度值;

        (2)均值法背景建模:均值法建模算法非常简单,就是对一些连续帧取像素平均值。这种算法速度很快,但对环境光照变化和一些动态背景变化比较敏感。其基本思想是,在视频图像中取连续N帧,计算这N帧图像像素灰度值的平均值来作为背景图像的像素灰度值;

        (3)卡尔曼滤波器模型:该算法把背景认为是一种稳态的系统,把前景图像认为是一种噪声,用基于Kalman滤波理论的时域递归低通滤波来预测变化缓慢的背景图像,这样既可以不断地用前景图像更新背景,又可以维持背景的稳定性消除噪声的干扰;

        (4)单高斯分布模型:其基本思想是,将图像中每一个像素点的灰度值看成是一个随机过程X,并假设该点的某一像素灰度值出现的概率服从高斯分布,用数学形式表示为:

        (5)多高斯分布模型:将背景图像的每一个像素点按多个高斯分布的叠加来建模,每种高斯分布可以表示一种背景场景,这样的话,多个高斯模型混合使用就可以模拟出复杂场景中的多模态情形。​

        一句话概括,各种背景建模方法就是为了获取适应对应视频的背景帧,方便后续获取视频帧中的运动物体。本次案例的测试视频前面是静态背景,可以直接获取对应背景帧或者用中值法提取。

        三、算法流程

        1、读取视频文件,直接获取前面静态背景作为背景帧(或用中值法提取背景帧),并灰度化处理

        2、逐一读取视频帧,灰度化后,与背景帧相互做差值,得到两个背景差帧

        3、对两个背景差帧二值化,并叠加,得到背景差的初步目标二值图

        4、对初步二值图进行形态学膨胀、腐蚀、去噪等处理,得到最终的目标二值图

        5、根据目标二值图对运动物体进行定位,检测完成。

        算法原理不算复杂,下面看看matlab的实现效果。

        四、matlab实现效果

        1、获取背景帧

        2、获取目标帧图像

        3、差值处理

        4、二值化处理

        5、初步二值图

        6、形态学处理,得到最终二值图

        上述是整个检测过程,下面看看整个视频帧处理的效果:

        

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

专注、专一于Matlab图像处理学习、交流、代做

QQ:3249726188

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机视觉】二、图像形成——实验:2D变换编辑器2.0(Pygame)

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)2D变换编辑器0. 项目结构1. Package: guibutton.pywindow.py1. __init__(self, width, height, title)2. add_buttons(self)3. clear(self)4. dr…

npm run dev命令的执行顺序和原理

当我们在开发vue、react等项目的时候经常会用npm run *命令,那么当我们执行这个命令的时候具体都做了些什么呢?接下来我们就来详细探索一下 当执行npm run dev命令时,npm会按照以下步骤进行操作: 1. 查找并执行脚本: …

Docker 安装 Skywalking以及UI界面

关于Skywalking 在现代分布式系统架构中,应用性能监控(Application Performance Monitoring, APM)扮演着至关重要的角色。本文将聚焦于一款备受瞩目的开源APM工具——Apache Skywalking,通过对其功能特性和工作原理的详细介绍&am…

【C++ leetcode 】双指针问题

1. 183. 移动零 题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 题目链接 . - 力扣(LeetCode) 画图 和 文字 分…

基于深度学习LSTM+NLP情感分析电影数据爬虫可视化分析推荐系统(深度学习LSTM+机器学习双推荐算法+scrapy爬虫+NLP情感分析+数据分析可视化)

文章目录 基于深度学习LSTMNLP情感分析电影数据爬虫可视化分析推荐系统(深度学习LSTM机器学习双推荐算法scrapy爬虫NLP情感分析数据分析可视化)项目概述深度学习长短时记忆网络(Long Short-Term Memory,LSTM)机器学习协…

golang常用库之-golang常用库之-ladon包 | 基于策略的访问控制

文章目录 golang常用库之-ladon包 | 基于策略的访问控制概念使用策略 条件 Conditions自定义conditionLadon Condition使用示例 持久化访问控制(Warden) 结合 Gin 开发一个简易 ACL 接口参考 golang常用库之-ladon包 | 基于策略的访问控制 https://github.com/ory/ladon Lado…

NPM 仓库的超集 JSR 来了!

引言 今天在 Deno 博客中看到了一篇文章,介绍了一个叫 JSR 的包管理注册中心,简单尝试了一下觉得还不错,本文将结合原文章和个人体验对 JSR 进行一个详细的介绍。 在现如今的前端开发中,包管理注册中心 (如 npmjs.com) 扮演着至…

Javaweb学习记录(一)Maven

Maven是一款Java项目管理工具,下面将介绍Maven的实际作用和相关的操作 Maven项目依赖的添加 在Maven项目中添加依赖,通过dependencies标签添加所有依赖,所有依赖都添加在里面,而单个依赖就使用dependency标签添加进项目&#xf…

Github 2024-03-17 php开源项目日报 Top9

根据Github Trendings的统计,今日(2024-03-17统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9Blade项目2Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次关…

电脑充电器能充手机吗?如何给手机充电?

电脑充电器可以给手机充电吗? 电脑充电器可以给手机充电,但前提是电脑充电器的功率输出与手机的功率匹配且接口匹配。 假设电脑充电器的输出功率为5V/2A,手机也支持5V/2A的输入功率。 只要接口匹配,就可以使用电脑充电器给手机充…

kafka无法消费数据

进入zookeeper客户端,将brokers节点下的topics节点下的__consumer_offsets删除就可。 1.在启动zookeeper的前提下,打开./zkCli.sh docker exec -it zookeeper bash //只登录容器,不登录 zkCli./bin/zkCli.sh //执行脚本新建一个Cli…

移动性能测试 iOS17 性能测试脚本

已经 2024 年 3 月中旬了,ios17 版本出来也已经快半年了。 我看到业界主流开源的 ios 性能测试工具都没有还没支持 ios17。包括 tidevice,py-ios-device,solox。 又因为有大佬开源了可以和 ios17 通信的 pymobiledevice3。 所以我这里组装了下…

记录-gitlab-安装在k8s中的一些注意点

一、已有cert-manager的时候如何配置? 1、首先需要创建一个ClusterIssuer apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata:name: letsencrypt-staging spec:acme:# You must replace this email address with your own.# Lets Encrypt will use thi…

Mapper.xml映射文件

Mapper.xml映射文件&#xff1a; <select> resultType如果返回的是集合&#xff0c;那么应该设置为集合包含的类型而不是集合本身的类型 如果参数类型是pojo类型&#xff0c;参数名必须是pojo中的属性名 <insert> session.commit(); session factory.openSessio…

微信开发者工具如何使用?使用注意事项

&#xff08;1&#xff09;单位如何进行换算&#xff1f; 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px &#xff08;2&#xff09;如何新建文件&#xff1f; 1> 点开app.json 2> 在“pages/index/index”后面接“&#xff0c;pages/自定义文件夹名/自定义文件名”…

万界星空科技商业开源MES,技术支持+项目合作

商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境&#xff1a;jdk11tomcatmysql8springbootmaven 可以免费使用&#xff0c;需要源码价格便宜&#xff0c;私信我获取。 一、系统概述&#xff1a; MES制造执…

LinkedList源码解析和设计思路

一、 继承体系 LinkedList类位于java.util包中&#xff0c;它实现了List接口和Deque接口&#xff0c;LinkedList可以被当做链表、双端队列使用&#xff0c;并且继承自AbstractSequentialList类。在继承关系中&#xff0c;它的父类是AbstractSequentialList&#xff0c;而Abstr…

go语言请求http接口示例 并解析json

本例请求了天气api接口 对接流程 注册一个账号, 对接免费实况天气接口阅读接口文档 http://tianqiapi.com/index/doc?versionday请求接口解析json 开发流程 创建一个 json.go 文件需要引入的包 import ("encoding/json""fmt""io/ioutil"&q…

设计模式--访问者模式(Visitor Pattern)

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它可以让你在不改变类的情况下&#xff0c;增加作用于一组对象上的新操作。 访问者模式主要包含以下几个角色&#xff1a; Visitor&#xff08;访问者&#xff09;&#xff1a;这是一个接…

Spring炼气之路(炼气二层)

一、bean的配置 1.1 bean的基础配置 id&#xff1a; bean的id&#xff0c;使用容器可以通过id值获取对应的bean&#xff0c;在一个容器中id值唯一 class&#xff1a; bean的类型&#xff0c;即配置的bean的全路径类名 <bean id"bookDao" class "com.zhang…