From 1e8587fe9a82002eb0fe74b6948bd8636b738b42 Mon Sep 17 00:00:00 2001 From: Simon Hailes Date: Sat, 11 Nov 2017 12:51:00 +0000 Subject: [PATCH] bgsubtrator - add manual GC else node kills my pi. Add delete of images once consumed. --- examples/bgsubtractor.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/bgsubtractor.js b/examples/bgsubtractor.js index aa945c1..b780644 100644 --- a/examples/bgsubtractor.js +++ b/examples/bgsubtractor.js @@ -3,6 +3,9 @@ var path = require('path'), var bg = null; +require("v8").setFlagsFromString('--expose_gc'); + +var gc = require("vm").runInNewContext('gc'); var do_sync = function(done){ // When opening a file, the full path must be passed to opencv @@ -14,6 +17,7 @@ var do_sync = function(done){ vid.read(function(err, m2){ if (err) throw err; var mat = bg.apply(m2); + delete m2; // mat is a monochrome img where moving objects are white if (x++<100){ //console.log("iter "+x); @@ -21,6 +25,7 @@ var do_sync = function(done){ } else { delete vid; console.log("bg sync done"); + gc(); if (undefined !== done) done(); } @@ -40,6 +45,7 @@ var do_async = function(done){ vid.read(function(err, m2){ if (err) throw err; bg.apply(m2, function(err, mat){ + delete mat; if (err) throw err; // mat is a monochrome img where moving objects are white if (x++<100){ @@ -48,6 +54,7 @@ var do_async = function(done){ } else { console.log("bg async done"); delete vid; + gc(); if (undefined !== done) done(); } @@ -70,9 +77,8 @@ var do_gmg = function( done ){ console.log("doing GMG"); bg = cv.BackgroundSubtractor.createGMG(); do_sync( function(){ - console.log("not doing GMG Async - crashes my pi"); - //do_async(done); - done(); + //console.log("not doing GMG Async - crashes my pi"); + do_async(done); }); }