From 2bb3caf08da3884ae7ac20aea6e07d021430220d Mon Sep 17 00:00:00 2001 From: Bradley Griffiths Date: Tue, 16 Sep 2014 20:00:02 +0100 Subject: [PATCH 1/2] Release cascade method. --- opencv/cvaux.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/opencv/cvaux.go b/opencv/cvaux.go index 5b9ec55..80ef049 100644 --- a/opencv/cvaux.go +++ b/opencv/cvaux.go @@ -72,6 +72,11 @@ func (this *HaarCascade) DetectObjects(image *IplImage) []*Rect { return faces } +func (this *HaarCascade) Release() { + cascade_c := (*C.CvHaarClassifierCascade)(this.cascade) + C.cvReleaseHaarClassifierCascade(&cascade_c) +} + /****************************************************************************************\ * 3D Tracker * \****************************************************************************************/ From d36375064f5a997c64b6739bace6fcf1f237e18e Mon Sep 17 00:00:00 2001 From: Bradley Griffiths Date: Tue, 16 Sep 2014 20:18:52 +0100 Subject: [PATCH 2/2] Release memory storage. --- opencv/cvaux.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/opencv/cvaux.go b/opencv/cvaux.go index 80ef049..55e9eb5 100644 --- a/opencv/cvaux.go +++ b/opencv/cvaux.go @@ -69,6 +69,10 @@ func (this *HaarCascade) DetectObjects(image *IplImage) []*Rect { rect := (*Rect)((*_Ctype_CvRect)(unsafe.Pointer(C.cvGetSeqElem(seq, C.int(i))))) faces = append(faces, rect) } + + storage_c := (*C.CvMemStorage)(storage) + C.cvReleaseMemStorage(&storage_c) + return faces }