@@ -14,7 +14,11 @@ CvStatus AKAZE_Create(AKAZE *rval)
1414 *rval = {new cv::Ptr<cv::AKAZE>(cv::AKAZE::create ())};
1515 END_WRAP
1616}
17- void AKAZE_Close (AKAZEPtr a){CVD_FREE (a)}
17+ void AKAZE_Close (AKAZEPtr a)
18+ {
19+ a->ptr ->reset ();
20+ CVD_FREE (a)
21+ }
1822
1923CvStatus AKAZE_Detect (AKAZE a, Mat src, VecKeyPoint *rval)
2024{
@@ -39,7 +43,11 @@ CvStatus AgastFeatureDetector_Create(AgastFeatureDetector *rval)
3943 *rval = {new cv::Ptr<cv::AgastFeatureDetector>(cv::AgastFeatureDetector::create ())};
4044 END_WRAP
4145}
42- void AgastFeatureDetector_Close (AgastFeatureDetectorPtr a){CVD_FREE (a)}
46+ void AgastFeatureDetector_Close (AgastFeatureDetectorPtr a)
47+ {
48+ a->ptr ->reset ();
49+ CVD_FREE (a)
50+ }
4351
4452CvStatus AgastFeatureDetector_Detect (AgastFeatureDetector a, Mat src, VecKeyPoint *rval)
4553{
@@ -56,7 +64,11 @@ CvStatus BRISK_Create(BRISK *rval)
5664 *rval = {new cv::Ptr<cv::BRISK>(cv::BRISK::create ())};
5765 END_WRAP
5866}
59- void BRISK_Close (BRISKPtr b){CVD_FREE (b)}
67+ void BRISK_Close (BRISKPtr b)
68+ {
69+ b->ptr ->reset ();
70+ CVD_FREE (b)
71+ }
6072
6173CvStatus BRISK_Detect (BRISK b, Mat src, VecKeyPoint *rval)
6274{
@@ -90,7 +102,11 @@ CvStatus FastFeatureDetector_CreateWithParams(int threshold, bool nonmaxSuppress
90102 cv::FastFeatureDetector::create (threshold, nonmaxSuppression, type_))};
91103 END_WRAP
92104}
93- void FastFeatureDetector_Close (FastFeatureDetectorPtr f){CVD_FREE (f)}
105+ void FastFeatureDetector_Close (FastFeatureDetectorPtr f)
106+ {
107+ f->ptr ->reset ();
108+ CVD_FREE (f)
109+ }
94110
95111CvStatus FastFeatureDetector_Detect (FastFeatureDetector f, Mat src, VecKeyPoint *rval)
96112{
@@ -107,7 +123,11 @@ CvStatus GFTTDetector_Create(GFTTDetector *rval)
107123 *rval = {new cv::Ptr<cv::GFTTDetector>(cv::GFTTDetector::create ())};
108124 END_WRAP
109125}
110- void GFTTDetector_Close (GFTTDetectorPtr a){CVD_FREE (a)}
126+ void GFTTDetector_Close (GFTTDetectorPtr a)
127+ {
128+ a->ptr ->reset ();
129+ CVD_FREE (a)
130+ }
111131
112132CvStatus GFTTDetector_Detect (GFTTDetector a, Mat src, VecKeyPoint *rval)
113133{
@@ -124,7 +144,11 @@ CvStatus KAZE_Create(KAZE *rval)
124144 *rval = {new cv::Ptr<cv::KAZE>(cv::KAZE::create ())};
125145 END_WRAP
126146}
127- void KAZE_Close (KAZEPtr a){CVD_FREE (a)}
147+ void KAZE_Close (KAZEPtr a)
148+ {
149+ a->ptr ->reset ();
150+ CVD_FREE (a)
151+ }
128152
129153CvStatus KAZE_Detect (KAZE a, Mat src, VecKeyPoint *rval)
130154{
@@ -149,7 +173,11 @@ CvStatus MSER_Create(MSER *rval)
149173 *rval = {new cv::Ptr<cv::MSER>(cv::MSER::create ())};
150174 END_WRAP
151175}
152- void MSER_Close (MSERPtr a){CVD_FREE (a)}
176+ void MSER_Close (MSERPtr a)
177+ {
178+ a->ptr ->reset ();
179+ CVD_FREE (a)
180+ }
153181
154182CvStatus MSER_Detect (MSER a, Mat src, VecKeyPoint *rval)
155183{
@@ -176,7 +204,11 @@ CvStatus ORB_CreateWithParams(int nfeatures, float scaleFactor, int nlevels, int
176204 WTA_K, type, patchSize, fastThreshold))};
177205 END_WRAP
178206}
179- void ORB_Close (ORBPtr o){CVD_FREE (o)}
207+ void ORB_Close (ORBPtr o)
208+ {
209+ o->ptr ->reset ();
210+ CVD_FREE (o)
211+ }
180212
181213CvStatus ORB_Detect (ORB o, Mat src, VecKeyPoint *rval)
182214{
@@ -262,7 +294,11 @@ CvStatus SimpleBlobDetector_Create_WithParams(SimpleBlobDetectorParams params, S
262294 new cv::Ptr<cv::SimpleBlobDetector>(cv::SimpleBlobDetector::create (ConvertCParamsToCPPParams (params)))};
263295 END_WRAP
264296}
265- void SimpleBlobDetector_Close (SimpleBlobDetectorPtr b){CVD_FREE (b)}
297+ void SimpleBlobDetector_Close (SimpleBlobDetectorPtr b)
298+ {
299+ b->ptr ->reset ();
300+ CVD_FREE (b)
301+ }
266302
267303CvStatus SimpleBlobDetector_Detect (SimpleBlobDetector b, Mat src, VecKeyPoint *rval)
268304{
@@ -291,7 +327,11 @@ CvStatus BFMatcher_CreateWithParams(int normType, bool crossCheck, BFMatcher *rv
291327 *rval = {new cv::Ptr<cv::BFMatcher>(cv::BFMatcher::create (normType, crossCheck))};
292328 END_WRAP
293329}
294- void BFMatcher_Close (BFMatcherPtr b){CVD_FREE (b)}
330+ void BFMatcher_Close (BFMatcherPtr b)
331+ {
332+ b->ptr ->reset ();
333+ CVD_FREE (b)
334+ }
295335
296336CvStatus BFMatcher_Match (BFMatcher b, Mat query, Mat train, VecDMatch *rval)
297337{
@@ -316,7 +356,11 @@ CvStatus FlannBasedMatcher_Create(FlannBasedMatcher *rval)
316356 *rval = {new cv::Ptr<cv::FlannBasedMatcher>(cv::FlannBasedMatcher::create ())};
317357 END_WRAP
318358}
319- void FlannBasedMatcher_Close (FlannBasedMatcherPtr f){CVD_FREE (f)}
359+ void FlannBasedMatcher_Close (FlannBasedMatcherPtr f)
360+ {
361+ f->ptr ->reset ();
362+ CVD_FREE (f)
363+ }
320364
321365CvStatus FlannBasedMatcher_KnnMatch (FlannBasedMatcher f, Mat query, Mat train, int k, VecVecDMatch *rval)
322366{
@@ -341,7 +385,11 @@ CvStatus SIFT_Create(SIFT *rval)
341385 *rval = {new cv::Ptr<cv::SIFT>(cv::SIFT::create ())};
342386 END_WRAP
343387}
344- void SIFT_Close (SIFTPtr f){CVD_FREE (f)}
388+ void SIFT_Close (SIFTPtr f)
389+ {
390+ f->ptr ->reset ();
391+ CVD_FREE (f)
392+ }
345393
346394CvStatus SIFT_Detect (SIFT f, Mat src, VecKeyPoint *rval)
347395{
0 commit comments