libvibe++ : a generic C++ library for the ViBe algorithm
ViBe.h
Go to the documentation of this file.
1 /* Copyright - Benjamin Laugraud <blaugraud@ulg.ac.be> - 2016
2  * Copyright - Marc Van Droogenbroeck <m.vandroogenbroeck@ulg.ac.be> - 2016
3  *
4  * ViBe is covered by a patent (see http://www.telecom.ulg.ac.be/research/vibe).
5  *
6  * Permission to use ViBe without payment of fee is granted for nonprofit
7  * educational and research purposes only.
8  *
9  * This work may not be copied or reproduced in whole or in part for any
10  * purpose.
11  *
12  * Copying, reproduction, or republishing for any purpose shall require a
13  * license. Please contact the authors in such cases. All the code is provided
14  * without any guarantee.
15  */
16 
17 /**
18  @file ViBe.h
19  @brief Interface for the libvibe++ library
20 
21  @author Benjamin Laungraud and Marc Van Droogenbroeck
22 
23  @date June 2016
24 
25  @details
26 
27  Full documentation is available online at:
28  http://www.telecom.ulg.ac.be/research/vibe/doc2
29 
30  All technical details are available in the following paper:
31 <em>O. Barnich and M. Van Droogenbroeck. ViBe: A universal background subtraction algorithm for video sequences. IEEE Transactions on Image Processing, 20(6):1709-1724, June 2011.</em>
32 
33 \verbatim
34 BiBTeX information
35 
36  @article{Barnich2011ViBe,
37  title = {{ViBe}: A universal background subtraction algorithm for video sequences},
38  author = {O. Barnich and M. {Van Droogenbroeck}},
39  journal = {IEEE Transactions on Image Processing},
40  volume = {20},
41  number = {6},
42  pages = {1709-1724},
43  month = {June},
44  year = {2011},
45  keywords = {ViBe, Background, Background subtraction, Segmentation, Motion, Motion detection},
46  pdf = {http://orbi.ulg.ac.be/bitstream/2268/145853/1/Barnich2011ViBe.pdf},
47  doi = {10.1109/TIP.2010.2101613},
48  url = {http://hdl.handle.net/2268/145853}
49  }
50 \endverbatim
51 
52 See
53 \cite Barnich2011ViBe
54 */
55 
56 
57 #ifndef _LIB_VIBE_XX_VIBE_H_
58 #define _LIB_VIBE_XX_VIBE_H_
59 
60 #include <cstring>
61 
63 #include "metaprograms/CopyPixel.h"
65 
66 namespace ViBe {
67  template <int32_t Channels, class Distance>
68  class ViBeSequential : public ViBeTemplateBase<ViBeSequential<Channels, Distance> > {
69  protected:
70 
72 
73  public:
74 
76  int32_t height,
77  int32_t width,
78  const uint8_t* buffer
79  );
80 
81  virtual ~ViBeSequential() {}
82 
83  void _CRTP_segmentation(
84  const uint8_t* buffer,
85  uint8_t* segmentationMap
86  );
87 
88  void _CRTP_update(
89  const uint8_t* buffer,
90  uint8_t* updatingMask
91  );
92  };
93 
94 #include "ViBe.t"
95 } /* _NS_ViBe_ */
96 
97 #endif /* _LIB_VIBE_XX_VIBE_H_ */
Template-based C++ implementation of the ViBe algorithm.

License/Copyright

This code is copyrighted by the University of Liège, Belgium. 
It is only shared for research purposes. Please do not distribute it. 
B. Laugraud and M. Van Droogenbroeck, May 2016.