1. meanShift
    1. 我们有一堆点(比如直方图反向投影得到的点),和一个小的圆形窗口,我们要完成的任务就是将这个窗口移动到最大灰度密度处
    2. 示意图
    3. cv39_meanshift.py
  2. Camshift
    1. 与 Meanshift 基本一样,但是返回的结果是一个带旋转角度的矩形 (这是我们的结果),以及这个矩形的参数
    2. cv39_camshift.py
  3. 光流
    1. 概念
      1. 目标对象或者摄像机的移动造成的图像对象 在连续两帧图像中的移动被称为光流。
    2. 应用领域
      1. 由运动重建结构
      2. 视频压缩
      3. Video Stabilization
    3. 光流基于的假设
      1. 在连续的两帧图像之间(目标对象的)像素的灰度值不改变
      2. 相邻的像素(3x3)具有相同的运动
    4. opencv中的光流 cv2.calcOpticalFlowPyrLK()
      1. 使用函数 cv2.goodFeatureToTrack() 来确定要跟踪的点
      2. 在视频的第一帧图像中检测一些 Shi-Tomasi 角点
      3. 使用 LucasKanade 算法迭代跟踪这些角点
      4. 给函数 cv2.calcOpticlaFlowPyrLK() 传入前一帧图像和其中的点,以及下一帧图像
      5. cv40_opticalflow.py
    5. opencv中稠密光流
      1. 计算图像中的所有点的光流
  4. 背景消除
    1. BackgroundSubtractorMOG
      1. 算法原理
        1. 1. 以混合高斯模型为基础的前景/背景分割算法
        2. 2. 使用 K(K=3 或 5)个高斯分布混合对背景像素进行建模
        3. 3. 使用这些颜色(在整个视频中)存在时间的长短作为混合 的权重。背景的颜色一般持续的时间最长,而且更加静止
      2. 使用
        1. 有些可选参数,比如要进行建模场景的时间长度, 高斯混合成分的数量,阈值等。将他们全部设置为默认值
        2. 然后在整个视频中我们是需要使用 backgroundsubtractor.apply() 就可以得到前景的掩模
      3. cv41_BackgroundSubtractorMOG.py
    2. BackgroundSubtractorMOG2
      1. 算法原理
        1. 它为每一个像素选择一个合适数目的高斯分布。 (上一个方法中我们使用是 K 高斯分布)。
        2. 就会对由于亮度等发生变化引起的场景变化产生更好的适应
    3. BackgroundSubtractorGMG
      1. 算法原理
        1. 结合了静态背景图像估计和每个像素的贝叶斯分割
        2. 使用前面很少的图像(默认为前 120 帧)进行背景建模
        3. 使用了概率前景估计算法(使用贝叶斯估计鉴定前景)
        4. 是一种自适应的估计,新观察到的对象比旧的对象具 有更高的权重,从而对光照变化产生适应
      2. cv41_BackgroundSubtractorGMG.py