http://lh2078.blog.163.com/blog/static/568113722010711705926/
多年来在从事视频监控技术研究的过程中,一直需要这样一个平台,一方面可以提供众多成熟的检测、跟踪、轨迹分析算法,另一方面具备良好的编程接口,这样就可以将自己的算法很方便的嫁接进这个系统,测试和对比各种算法的优劣性能。而OpenCV 视频监控模块(Video Surveilance)恰恰提供了这样一个功能强大的平台,在下文中简称为VS。
从Intel OpenCV1.0开始,辅助库CVAUX中增加了VS模块内容,直至OpenCV2.1版本,该模块都相对稳定的存在。在OpenCV1.0和1.1版本中,VS的代码存在于CVAUX中,(OpenCV\cvaux\src\vs)。然而OpenCV提供相关资料相当少,在帮助中甚至只字未提,这也是VS长期未被许多研发人员关注的原因之一。仅有的几篇文档说明(OpenCV\docs\vidsurv)分别是:Blob_Tracking_Modules.doc,Blob_Tracking_Tests.doc和TestSeq.doc,也只对几个基础的接口类和简单的使用方法进行了说明。相关的例程(OpenCV\samples\c)也只有:bgfg_codebook.cpp,bgfg_segm.cpp,blobtrack.cpp。应该说可供参考的资源是非常有限的。
值得庆幸的,也是OpenCV最大的优势就是其开源性。通过深入剖析VS的源代码,我们可以理清整个VS框架的脉络,探索其中的算法原理和实现方法,为我所用。在长期的研究学习和应用实践过程中,整理了一些学习笔记,在这里同广大爱好者共同探讨和学习。