光流法的理解

光流法的理解光流法是比较经典的运动估计方法,本文不仅叙述简单明了,而且附代码,故收藏.在空间中,运动可以用运动场描述。而在一个图像平面上,物体的运动往往是通过图像序列中不同图象灰度分布的不同体现的。从而,空间中的运动场转移到图像上就表示为光流场,光流场反映了图像上每一点灰度的变化趋势。光流可以看作带有灰度的像素点在图像平面运动产生的瞬时速度场。下面我们推导光流方程:假设E(x,y,t)为(x,y)点在时刻t的…

大家好,又见面了,我是你们的朋友全栈君。光流法是比较经典的运动估计方法,本文不仅叙述简单明了,而且附代码,故收藏.

在空间中,运动可以用运动场描述。而在一个图像平面上,物体的运动往往是通过图像序列中不同图象灰度分布的不同体现的。从而,空间中的运动场转移到图像上就表示为光流场,光流场反映了图像上每一点灰度的变化趋势。

光流可以看作带有灰度的像素点在图像平面运动产生的瞬时速度场。下面我们推导光流方程:

假设E(x,y,t)为(x,y)点在时刻t的灰度(照度)。设t+dt时刻该点运动到(x+dx,y+dy)点,他的照度为E(x+dx,y+dy,t+dt)。我们认为,由于对应同一个点,所以

E(x,y,t) = E(x+dx,y+dy,t+dt)   —— 光流约束方程

将上式右边做泰勒展开,并令dt->0,则得到:Exu+Eyv+Et = 0,其中:

Ex = dE/dx   Ey = dE/dy   Et = dE/dt   u = dx/dt   v = dy/dt

上面的Ex,Ey,Et的计算都很简单,用离散的差分代替导数就可以了。光流法的主要任务就是通过求解光流约束方程求出u,v。但是由于只有一个方程,所以这是个病态问题。所以人们提出了各种其他的约束方程以联立求解。但是由于我们用于摄像机固定的这一特定情况,所以问题可以大大简化。

摄像机固定的情形

在摄像机固定的情形下,运动物体的检测其实就是分离前景和背景的问题。我们知道对于背景,理想情况下,其光流应当为0,只有前景才有光流。所以我们并不要求通过求解光流约束方程求出u,v。我么只要求出亮度梯度方向的速率就可以了,即求出sqrt(u*u+v*v)。

而由光流约束方程可以很容易求到梯度方向的光流速率为 V = abs(Et/sqrt(Ex*Ex+Ey*Ey))。这样我们设定一个阈值T。

V(x,y) > T 则(x,y)是前景 ,反之是背景

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163537.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ureport2 mysql_springboot整合UReport2「建议收藏」

    ureport2 mysql_springboot整合UReport2「建议收藏」###1、首先新建一个springboot项目###可以用idea直接新建,也可以在spring-boot官方提供的生成器生成项目,生成地址是:[https://start.spring.io/][https_start.spring.io]###2、配置pom.xml###org.springframework.bootspring-boot-starter-jdbcmysqlmysql…

    2025年7月30日
    3
  • oracle模糊查询方法_oracle模糊查询下划线

    oracle模糊查询方法_oracle模糊查询下划线在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,模糊查询是必不可少的。那么在Oracle中模糊查询是如何实现的呢? 一、我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果;在Where子句中,可以对datetime、char、varchar字段类型的列用Like关键字配合通配符来实现模糊查询,以下是可使用的通配符:(1)%:零或者多个字符,

    2022年4月19日
    219
  • hibernate之二级缓存「建议收藏」

    hibernate之二级缓存「建议收藏」hibernate之二级缓存缓存的作用:通过缓存,可以减少与数据库的交互,提高数据库访问性能。即把需要的数据存储起来,不需要每次都请求,主要目地减少服务器压力。Hibernate缓存一般分三类:一级缓存(Session对象):Hibernate的内置缓存,必需的,默认启动,不能被卸载。由于Session对象的生命周期通常对应一个数据库事务,因此它的缓存是事务范围的缓存。在一级缓存中,持…

    2022年5月24日
    38
  • 代理服务器基本知识[通俗易懂]

    代理服务器基本知识[通俗易懂]代理服务器系列(一):基础知识2005年9月10日世界网络教研组编一、什么是代理服务器?代理服务器英文全称是ProxyServer,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,需送出Request信号来得到回答,然后对方再把信息以bit方

    2022年4月30日
    57
  • 在select标签中添加a标签

    在select标签中添加a标签

    2021年11月3日
    139
  • opennebula kvm 创建VM oned报错日志

    opennebula kvm 创建VM oned报错日志

    2021年8月30日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号