From ace7e9d8427461992b870bd85400b5ec436f7885 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Thu, 9 Aug 2012 13:13:04 +0400 Subject: [PATCH] added release method to GMG_GPU --- modules/gpu/include/opencv2/gpu/gpu.hpp | 3 +++ modules/gpu/src/bgfg_gmg.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index 6d7f141594..1524bec84d 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -2156,6 +2156,9 @@ public: */ void operator ()(const GpuMat& frame, GpuMat& fgmask, float learningRate = -1.0f, Stream& stream = Stream::Null()); + //! releases all inner buffers + void release(); + //! Total number of distinct colors to maintain in histogram. int maxFeatures; diff --git a/modules/gpu/src/bgfg_gmg.cpp b/modules/gpu/src/bgfg_gmg.cpp index 238435a07e..8dae99fb17 100644 --- a/modules/gpu/src/bgfg_gmg.cpp +++ b/modules/gpu/src/bgfg_gmg.cpp @@ -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