added release method to GMG_GPU
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 9 Aug 2012 09:13:04 +0000 (13:13 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 9 Aug 2012 09:13:04 +0000 (13:13 +0400)
modules/gpu/include/opencv2/gpu/gpu.hpp
modules/gpu/src/bgfg_gmg.cpp

index 6d7f141..1524bec 100644 (file)
@@ -2156,6 +2156,9 @@ public:
      */\r
     void operator ()(const GpuMat& frame, GpuMat& fgmask, float learningRate = -1.0f, Stream& stream = Stream::Null());\r
 \r
+    //! releases all inner buffers\r
+    void release();\r
+\r
     //! Total number of distinct colors to maintain in histogram.\r
     int     maxFeatures;\r
 \r
index 238435a..8dae99f 100644 (file)
@@ -47,6 +47,7 @@
 cv::gpu::GMG_GPU::GMG_GPU() { throw_nogpu(); }
 void cv::gpu::GMG_GPU::initialize(cv::Size, float, float) { throw_nogpu(); }
 void cv::gpu::GMG_GPU::operator ()(const cv::gpu::GpuMat&, cv::gpu::GpuMat&, float, cv::gpu::Stream&) { throw_nogpu(); }
+void cv::gpu::GMG_GPU::release() {}
 
 #else
 
@@ -151,4 +152,15 @@ void cv::gpu::GMG_GPU::operator ()(const cv::gpu::GpuMat& frame, cv::gpu::GpuMat
     ++frameNum_;
 }
 
+void cv::gpu::GMG_GPU::release()
+{
+    frameSize_ = Size();
+
+    nfeatures_.release();
+    colors_.release();
+    weights_.release();
+    boxFilter_.release();
+    buf_.release();
+}
+
 #endif