背景建模技术(三):背景减法库(BGS Library)的基本框架与入口函数main()的功能
2015-05-14 08:58
435 查看
背景减法库(BGS Library = background subtraction library)包含了37种背景建模算法,也是目前国际上关于背景建模技术研究最全也最权威的资料。本文将更加详细的介绍背景减法库(BGS Library)的基本框架与入口函数main()的功能。
BGS库的整体框架在背景建模技术(二)中已经全部给出,此处从函数的角度再次给出BGS库的基本框架,有利于代码的修改与维护。
如下图所示是基于C++的BGS库的函数流程图:
接下来将会对每个函数进行更加详细的分析。
首先,先看入口函数main(),代码如下:
在main()函数中,除了打印出相关信息和设置waitKey()以外,主要就是调用了VIdeoAnalysis.cpp(将在下一篇博文中分析)中的videoAnalysis->setup(argc, argv)和videoAnalysis->start()。下面给出Main.cpp的代码流程图:
BGS库的整体框架在背景建模技术(二)中已经全部给出,此处从函数的角度再次给出BGS库的基本框架,有利于代码的修改与维护。
如下图所示是基于C++的BGS库的函数流程图:
接下来将会对每个函数进行更加详细的分析。
首先,先看入口函数main(),代码如下:
#include "Config.h" #include "VideoAnalysis.h" #include <iostream> using namespace std; namespace bgslibrary { class Main { private: Main(); public: static void start(int argc, const char **argv) { cout << "-----------------------------------------" << endl; cout << "Background Subtraction Library v1.9.2 " << endl; cout << "http://code.google.com/p/bgslibrary " << endl; cout << "by: " << endl; cout << "Andrews Sobral (andrewssobral@gmail.com) " << endl; cout << "Optimized by: " << endl; cout << "Rui-Dong Fang(National Huaqiao University)" << endl; cout << "-----------------------------------------" << endl; cout << "Using OpenCV version " << CV_VERSION << endl; try { int key = KEY_ESC; do { VideoAnalysis* videoAnalysis = new VideoAnalysis; if (videoAnalysis->setup(argc, argv)) ///videoAnalysis->setup(argc, argv) { videoAnalysis->start(); cout << "Processing finished, enter:" << endl; cout << "R - Repeat" << endl; cout << "Q - Quit" << endl; key = cv::waitKey(); } cv::destroyAllWindows(); delete videoAnalysis; } while (key == KEY_REPEAT); } catch (const std::exception& ex) { cout << "std::exception:" << ex.what() << endl; return; } catch (...) { cout << "Unknow error" << endl; return; } #ifdef WIN32 //system("pause"); #endif } }; } int main(int argc, const char **argv) { bgslibrary::Main::start(argc, argv); return 0; }
在main()函数中,除了打印出相关信息和设置waitKey()以外,主要就是调用了VIdeoAnalysis.cpp(将在下一篇博文中分析)中的videoAnalysis->setup(argc, argv)和videoAnalysis->start()。下面给出Main.cpp的代码流程图:
相关文章推荐
- 背景建模技术(三):背景减法库(BGS Library)的基本框架与入口函数main()的功能
- 背景建模技术(三):背景减法库(BGS Library)的基本框架与入口函数main()的功能
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- windows函数入口问题 UNREFERENCED_PARAMETER的用处 _tWinMain与wWinMain又有什么区别
- javascript 基本功能框架
- C语言的入口函数不一定叫main
- 解剖实体框架(2)--实体框架的基本功能
- Spring 框架的核心功能之AOP技术
- 基于背景建模方法处理视频(常用的函数)
- 2、jQuery的基本概念-必看-版本-入口函数- jq对象和dom对象区别
- python--函数基本功能
- HEVC Study Two(基于HM14.0平台)--如何在HEVC中加入背景建模技术(二)
- python3开发进阶-Django框架的自带认证功能auth模块和User对象的基本操作
- 集合框架_Collection集合的功能概述、Collection集合的基本功能测试
- Wdf框架:FxDriverEntry----驱动程序的入口函数
- UML基本架构建模--通用机制的通用建模技术(二)
- 调用Emgu中函数进行高斯背景建模