1.帧间差分法
假设有两帧不同时间采集的图像,检测运动的最简单方法是计算图像差值。即所谓的相邻帧差法或者三帧差法。

帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰度变化为非0,这样就能大致计算出移动物体的位置、轮廓和移动路径等。

帧间差分法的优点是算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应各种动态环境,稳定性较好。缺点是不能提取出对象的完整区域,对象内部有“空洞”,只能提取出边界,边界轮廓比较粗,往往比实际物体要大。对快速运动的物体,容易出现鬼影的现象,甚至会被检测为两个不同的运动物体,对慢速运动的物体,当物体在前后两帧中几乎完全重叠时,则检测不到物体。

除这些不确定性之外,差值计算最重要的局限性是运动自身信息不足。也就是说,我们不能确切的看到图像点是如何运动的。要描述图像中点进行移动的方法,需要学习一下像素位置在每帧图像上是如何变化的。

2.光流
在不同时间拍摄同一个场景时,三维元素被映射到图像中的对应像素。因此,如果图像特征没有被遮挡,它们应该互相有关联,而且运动可以被看作是一组图像平面上的位移。该位移所对应的是场景中目标的投射移动,这称为光流。
如果有了一帧图像以及其光流,就可以得到图像序列的下一帧图像。因此,光流就像是一个速度矢量,是时间单位上像素的移动,简单记为像素/帧。通过查找图像中对用特诊就可以得到光流。

下面这一段来自我i智能博主的目标检测光流法(一):对光流法的认识

所谓光流,是计算机视觉研究领域的术语,直观的认识就是提供一个对运动物体的的描述,因此也常用于运动物体的检测与识别。现实生活中,我们之所以能感受到物体的动与不动,就是因为这个物体在前后两个时间点上出现在了不同的位置,我们人脑自动根据这个偏差就可以知道物体是运动了还是没有运动,是变远了还是变近了等等。那么基于这种思想下的运动目标检测,就诞生了光流。

所以可以看出,光流不但可以检测出物体是否存在运动,运动的方向、角度也是可以计算出来的。光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。简单来说就是上面说的那样,在一个连续时间点前后,比较一下这两个时刻的图像有什么不同,把这个不同通过一种方式计算出来就是光流了。

通常一个视频是由摄像机等装置拍出来的,视频其实就是一系列图像帧的组合,每一帧如果挑出来其实就是一副图像。那么既然是摄像机拍出来的,就存在摄像机运动与不运动的情况了,如果摄像机不运动(比如一些监控场所的摄像头),那么光流检测出来的运动就是物体的运动了,假设摄像机运动,那么光流检测出来的运动可就是物体的运动加上摄像机的运动的合成运动了,这种情况通常是不希望看到了,会给运动目标检测带来一定的影响,所有有时候通常要先把摄像机的运动给去掉。

光流的计算方法可以分为以下几类:
(1)基于区域或基于特征的匹配方法
(2)基于频域的方法
(3)基于梯度的方法

目前较为多的几种计算光流的方法有:

(1)Lucas-Kanada方法,这种方法是较早也是较为经典的一种方法。是一种基于局部特征计算光流的方法。

Wiki百科上的介绍

里面有讲解该算法相关的三篇文章:
Lucas B and Kanade T. An Iterative Image Registration Technique with an Application to Stereo Vision. Proc. Of 7th International Joint Conference on Artificial Intelligence (IJCAI), pp.674-679.是81年发表的。

Bruce D. Lucas (1984) Generalized Image Matching by the Method of Differences (doctoral dissertation)

J. Y. Bouguet, (2001) . Pyramidal implementation of the affine lucas kanade feature tracker description of the algorithm. Intel Corporation, 5.

基于光流法研究有三个前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
(3)保持空间一致性;即,同一子图像的像素点具有相同的运动
关于L-K方法的详细过程可以看论文,也可以看下面几个博客对论文里面公式的提要:

Lucas–Kanade光流算法

(2)Horn-Schunck方法。这是一种全局性质下计算光流的方法,该方法运算较慢,

Wiki百科上的介绍
里面有相关公式推导与论文的介绍,感兴趣可以详细研究。
除此之外还有一些方法:
Buxton方法,一种基于边缘运动的图像序列模型的方法。
Glyn W. Humphreys and Vicki Bruce (1989). Visual Cognition. Psychology Press.ISBN 0-86377-124-6.

Black-Jepson方法。相关论文。

上述这些计算光流的方法在opencv与一些研究机构开发的matlab中都有集成,后续将分别简单他们的用法。

//————————————————————分割线——————————————————————————-
关于光流法介绍,也可以看这篇博客光流Optical Flow介绍与OpenCV实现
光流场是图片中每个像素都有一个x方向和y方向的位移,所以在上面那些光流计算结束后得到的光流flow是个和原来图像大小相等的双通道图像。那怎么可视化呢?

孟塞尔颜色系统(MunsellColor System)
它是美国艺术家阿尔伯特孟塞尔(Albert H. Munsell,1858-1918)在1898年创制的颜色描述系统。

孟塞尔颜色系统的空间大致成一个圆柱形:

南北轴=明度(value),从全黑(1)到全白(10)。

经度=色相(hue)。把一周均分成五种主色调和五种中间色:红(R)、红黄(YR)、黄(Y)、黄绿(GY)、绿(G)、绿蓝(BG)、蓝(B)、蓝紫(PB)、紫(P)、紫红(RP)。相邻的两个位置之间再均分10份,共100份。

距轴的距离=色度(chroma),表示色调的纯度。其数值从中间(0)向外随着色调的纯度增加,没有理论上的上限(普通的颜色实际上限为10左右,反光、荧光等材料可高达30)。由于人眼对各种颜色的的敏感度不同,色度不一定与每个色调和明度组合相匹配。

具体颜色的标识形式为:色相+明度+色度。
//————————————————————————————————————–

下面是计算机视觉特征提取与图像处理那本书上的介绍,公式太多了,就不一一敲上来了,把主要公式推导介绍的几页上传上来。
1.

2.

3.

4.

5.

6.

原理部分就到这里,后面主要是代码的实现,主要都是对于网上一些资源的整合。

opencv-描述图像运动(前篇)相关推荐

  1. OpenCV中图像特征提取与描述

    目录 图像特征提取与描述 图像的特征 Harris和Shi-Tomas算法 Harris角点检测 Shi-Tomasi角点检测 小结 SIFT/SURF算法 SIFT原理 基本流程 尺度空间极值检测 ...

  2. 【OpenCV 例程200篇】76. OpenCV 实现图像傅里叶变换

    [OpenCV 例程200篇]76. OpenCV 实现图像傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  3. 【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积

    [OpenCV 例程200篇]54. OpenCV 实现图像二维卷积 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  4. OpenCV-Python实战(番外篇)——OpenCV实现图像卡通化

    OpenCV-Python实战(番外篇)--OpenCV实现图像卡通化 前言 图像卡通化 完整代码 更多卡通化效果展示 相关链接 前言 在博文<OpenCV-Python实战(4)--OpenC ...

  5. 利用OpenCV进行图像的轮廓检测

    简 介: 本文对于OpenCV中的轮廓检测算法进行了讨论,可以看到一些基于轮廓检测的应用.接着对四种不同的提取方式的结果进行了讨论.你还了解了如何将轮廓进行绘制的方法. 关键词: 轮廓检测,二值化 § ...

  6. agx 安装ros opencv_史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门...

    一.Python OpenCV 入门 欢迎阅读系列教程,内容涵盖 OpenCV,它是一个图像和视频处理库,包含 C ++,C,Python 和 Java 的绑定. OpenCV 用于各种图像和视频分析 ...

  7. 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门

    推荐下我自己建的人工智能Python学习群:[809160367],群里有我整理的一份关于pytorch.python基础,图像处理opencv\自然语言处理.机器学习.数学基础等资源库,想学习人工智 ...

  8. openCV中图像滤波之低通滤波

    一.简介 滤波是信号和图像处理中的一种基本操作,目的是选择性提取图像中某些方面的内容,例如,滤波可以去除图像中的噪声,提取有用的视觉特征,对图像进行重采样等.下面介绍几个有关滤波的重要概念: 一幅图像 ...

  9. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

最新文章

  1. 下次迟到的借口有了!牛津大学发现时钟越准确,产生的熵越高
  2. 菜刀php木马_php网站安全防止各类一句话木马的攻击
  3. 神经网络到底是如何实现分类的---共振参考系假设
  4. 运行 YunYang1994/tensorflow-yolov3 所遇到的一些问题记录
  5. linux 内存 段,Linux内存储器管理之分段机制
  6. systemverilog数据类型
  7. 子集和问题 算法_LeetCode刷题实战90:子集 II
  8. 【GBK、UTF-8、ISO8859-1】三种编码方式总结及实例
  9. jQuery LigerUI 初次发布一睹为快(提供Demo下载)
  10. 0/1背包——动态规划
  11. 数据可视化——tableau 数据报表样例(报表模板)二
  12. Ubuntu卸载Anaconda步骤
  13. python3中26个英文字母排序_26个英文字母按排列顺序
  14. windows,打印机无打印任务,仍不断打印
  15. LeetCode 299 猜数字游戏
  16. linux、centOS虚拟机出现entering emergency mode解决方案
  17. Gizmo for Linux 1.1.0.39
  18. 进入BeOS的花花世界 系列二
  19. 2021_lg_03.SQL实战:如何用sql计算用户留存问题
  20. 电力英语及计算机成绩查询入口官网,考试成绩查询入口

热门文章

  1. android自动路由,android 网关 路由 设置
  2. 如何进入PageAdmin CMS 安装界面
  3. python高中教材-高中Python校本课程的设计与实施
  4. NASM中section,align,vstart,$,$$的理解
  5. IT方面书籍下载整理
  6. 教你轻松修改PPT中剪贴画颜色
  7. 2021年6月单页落地页阿狸子订单管理系统豪华版无加密版本
  8. 部分ABAQUS版本数据无法正常输出到Excel的一种解决办法
  9. Android-扫描更新媒体库(图库相册)
  10. F12窗口设置视频播放速度,想要多快要多快