OpenCV 视频监控(Video Surveilance)的架构

OpenCV VS与普通OpenCV函数不同在于:普通cxcore、cv函数均是C函数,而VS是利用C++的接口、多态、继承等技术构建起来的体系,由一些类、结构、全局函数组成。所以要学习和使用VS,要有较强的C++基础。“勿在浮沙筑高台”,如果不懂接口、多态、继承等C++的基本技术,还是去恶补一下再回来。

OpenCV 视频监控(Video Surveilance)的架构 - 海水和火焰 - 视频监控 形态学 OpenCV

打开opencv.dsw工程,可以在CVAUX下看到许多结构和类定义,VS部件多数以CvBlob开头,如图所示。这么庞杂的数据结构和类,理清头绪并不是一件容易的事情。我简单的归纳了一个UML图,虽然有很多不完善,但是可以方便读者们从全局看清VS的架构。

类似于MFC中的CObject,VS中的所有的类都有一个共同的父类CvVSModule,主要提供参数的读写、拷贝等功能。另外还有几个算法接口类,分别是:CvFGDetector,CvBlobDetector ,CvBlobTracker,CvBlobTrackGen,CvBlobTrackPostProc,CvBlobTrackAnalysis,分别代表:前景检测、新目标检测、目标跟踪、轨迹生成、跟踪后处理、轨迹分析等几组算法的接口,这些类是绝大多数VS类的父类。另外还有一个CvBlobTrackerAuto接口,其功能是对以上算法的链接、调度,即对整个算法流程的控制。

    VS中的很多类并没有直接提供给用户使用,多数只提供一个全局函数作为唯一的用户接口,这种思想也大量应用于COM技术中,是模式设计中类工厂的思想。感兴趣的读者可以查阅模式设计方面的图书和资料。
OpenCV 视频监控(Video Surveilance)的架构 - 海水和火焰 - 视频监控 形态学 OpenCV
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值