@@ -22,6 +22,7 @@ class AKAZE extends CvStruct<cvg.AKAZE> {
22
22
finalizer.attach (this , ptr.cast (), detach: this );
23
23
}
24
24
}
25
+ factory AKAZE .fromPointer (cvg.AKAZEPtr ptr, [bool attach = true ]) => AKAZE ._(ptr, attach);
25
26
26
27
/// returns a new AKAZE algorithm
27
28
///
@@ -50,7 +51,9 @@ class AKAZE extends CvStruct<cvg.AKAZE> {
50
51
(VecKeyPoint ret, Mat desc) detectAndCompute (Mat src, Mat mask) {
51
52
final desc = Mat .empty ();
52
53
final ret = calloc< cvg.VecKeyPoint > ();
53
- cvRun (() => CFFI .AKAZE_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret));
54
+ cvRun (
55
+ () => CFFI .AKAZE_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret),
56
+ );
54
57
return (VecKeyPoint .fromPointer (ret), desc);
55
58
}
56
59
@@ -75,6 +78,8 @@ class AgastFeatureDetector extends CvStruct<cvg.AgastFeatureDetector> {
75
78
finalizer.attach (this , ptr.cast (), detach: this );
76
79
}
77
80
}
81
+ factory AgastFeatureDetector .fromPointer (cvg.AgastFeatureDetectorPtr ptr, [bool attach = true ]) =>
82
+ AgastFeatureDetector ._(ptr, attach);
78
83
79
84
/// returns a new AgastFeatureDetector algorithm
80
85
///
@@ -96,8 +101,9 @@ class AgastFeatureDetector extends CvStruct<cvg.AgastFeatureDetector> {
96
101
return VecKeyPoint .fromPointer (ret);
97
102
}
98
103
99
- static final finalizer =
100
- OcvFinalizer <cvg.AgastFeatureDetectorPtr >(CFFI .addresses.AgastFeatureDetector_Close );
104
+ static final finalizer = OcvFinalizer <cvg.AgastFeatureDetectorPtr >(
105
+ CFFI .addresses.AgastFeatureDetector_Close ,
106
+ );
101
107
102
108
void dispose () {
103
109
finalizer.detach (this );
@@ -118,6 +124,7 @@ class BRISK extends CvStruct<cvg.BRISK> {
118
124
finalizer.attach (this , ptr.cast (), detach: this );
119
125
}
120
126
}
127
+ factory BRISK .fromPointer (cvg.BRISKPtr ptr, [bool attach = true ]) => BRISK ._(ptr, attach);
121
128
122
129
/// returns a new BRISK algorithm
123
130
///
@@ -146,7 +153,9 @@ class BRISK extends CvStruct<cvg.BRISK> {
146
153
(VecKeyPoint , Mat ) detectAndCompute (Mat src, Mat mask) {
147
154
final desc = Mat .empty ();
148
155
final ret = calloc< cvg.VecKeyPoint > ();
149
- cvRun (() => CFFI .BRISK_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret));
156
+ cvRun (
157
+ () => CFFI .BRISK_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret),
158
+ );
150
159
return (VecKeyPoint .fromPointer (ret), desc);
151
160
}
152
161
@@ -185,6 +194,8 @@ class FastFeatureDetector extends CvStruct<cvg.FastFeatureDetector> {
185
194
finalizer.attach (this , ptr.cast (), detach: this );
186
195
}
187
196
}
197
+ factory FastFeatureDetector .fromPointer (cvg.FastFeatureDetectorPtr ptr, [bool attach = true ]) =>
198
+ FastFeatureDetector ._(ptr, attach);
188
199
189
200
/// returns a new FastFeatureDetector algorithm
190
201
///
@@ -227,7 +238,9 @@ class FastFeatureDetector extends CvStruct<cvg.FastFeatureDetector> {
227
238
return VecKeyPoint .fromPointer (ret);
228
239
}
229
240
230
- static final finalizer = OcvFinalizer <cvg.FastFeatureDetectorPtr >(CFFI .addresses.FastFeatureDetector_Close );
241
+ static final finalizer = OcvFinalizer <cvg.FastFeatureDetectorPtr >(
242
+ CFFI .addresses.FastFeatureDetector_Close ,
243
+ );
231
244
232
245
void dispose () {
233
246
finalizer.detach (this );
@@ -248,6 +261,8 @@ class GFTTDetector extends CvStruct<cvg.GFTTDetector> {
248
261
finalizer.attach (this , ptr.cast (), detach: this );
249
262
}
250
263
}
264
+ factory GFTTDetector .fromPointer (cvg.GFTTDetectorPtr ptr, [bool attach = true ]) =>
265
+ GFTTDetector ._(ptr, attach);
251
266
252
267
/// returns a new GFTTDetector algorithm
253
268
///
@@ -290,6 +305,7 @@ class KAZE extends CvStruct<cvg.KAZE> {
290
305
finalizer.attach (this , ptr.cast (), detach: this );
291
306
}
292
307
}
308
+ factory KAZE .fromPointer (cvg.KAZEPtr ptr, [bool attach = true ]) => KAZE ._(ptr, attach);
293
309
294
310
/// returns a new KAZE algorithm
295
311
///
@@ -318,7 +334,9 @@ class KAZE extends CvStruct<cvg.KAZE> {
318
334
(VecKeyPoint , Mat ) detectAndCompute (Mat src, Mat mask) {
319
335
final desc = Mat .empty ();
320
336
final ret = calloc< cvg.VecKeyPoint > ();
321
- cvRun (() => CFFI .KAZE_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret));
337
+ cvRun (
338
+ () => CFFI .KAZE_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret),
339
+ );
322
340
return (VecKeyPoint .fromPointer (ret), desc);
323
341
}
324
342
@@ -343,6 +361,7 @@ class MSER extends CvStruct<cvg.MSER> {
343
361
finalizer.attach (this , ptr.cast (), detach: this );
344
362
}
345
363
}
364
+ factory MSER .fromPointer (cvg.MSERPtr ptr, [bool attach = true ]) => MSER ._(ptr, attach);
346
365
347
366
/// returns a new MSER algorithm
348
367
///
@@ -393,6 +412,7 @@ class ORB extends CvStruct<cvg.ORB> {
393
412
finalizer.attach (this , ptr.cast (), detach: this );
394
413
}
395
414
}
415
+ factory ORB .fromPointer (cvg.ORBPtr ptr, [bool attach = true ]) => ORB ._(ptr, attach);
396
416
397
417
/// returns a new ORB algorithm
398
418
///
@@ -454,7 +474,9 @@ class ORB extends CvStruct<cvg.ORB> {
454
474
(VecKeyPoint , Mat ) detectAndCompute (Mat src, Mat mask) {
455
475
final desc = Mat .empty ();
456
476
final ret = calloc< cvg.VecKeyPoint > ();
457
- cvRun (() => CFFI .ORB_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret));
477
+ cvRun (
478
+ () => CFFI .ORB_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret),
479
+ );
458
480
return (VecKeyPoint .fromPointer (ret), desc);
459
481
}
460
482
@@ -473,8 +495,10 @@ class ORB extends CvStruct<cvg.ORB> {
473
495
}
474
496
475
497
class SimpleBlobDetectorParams extends CvStruct <cvg.SimpleBlobDetectorParams > {
476
- SimpleBlobDetectorParams ._(ffi.Pointer <cvg.SimpleBlobDetectorParams > ptr, [bool attach = true ])
477
- : super .fromPointer (ptr) {
498
+ SimpleBlobDetectorParams ._(
499
+ ffi.Pointer <cvg.SimpleBlobDetectorParams > ptr, [
500
+ bool attach = true ,
501
+ ]) : super .fromPointer (ptr) {
478
502
if (attach) {
479
503
finalizer.attach (this , ptr.cast (), detach: this );
480
504
}
@@ -510,7 +534,9 @@ class SimpleBlobDetectorParams extends CvStruct<cvg.SimpleBlobDetectorParams> {
510
534
final p = calloc< cvg.SimpleBlobDetectorParams > ();
511
535
if (blobColor != null ) p.ref.blobColor = blobColor;
512
536
if (filterByArea != null ) p.ref.filterByArea = filterByArea;
513
- if (filterByCircularity != null ) p.ref.filterByCircularity = filterByCircularity;
537
+ if (filterByCircularity != null ) {
538
+ p.ref.filterByCircularity = filterByCircularity;
539
+ }
514
540
if (filterByColor != null ) p.ref.filterByColor = filterByColor;
515
541
if (filterByConvexity != null ) p.ref.filterByConvexity = filterByConvexity;
516
542
if (filterByInertia != null ) p.ref.filterByInertia = filterByInertia;
@@ -522,7 +548,9 @@ class SimpleBlobDetectorParams extends CvStruct<cvg.SimpleBlobDetectorParams> {
522
548
if (minArea != null ) p.ref.minArea = minArea;
523
549
if (minCircularity != null ) p.ref.minCircularity = minCircularity;
524
550
if (minConvexity != null ) p.ref.minConvexity = minConvexity;
525
- if (minDistBetweenBlobs != null ) p.ref.minDistBetweenBlobs = minDistBetweenBlobs;
551
+ if (minDistBetweenBlobs != null ) {
552
+ p.ref.minDistBetweenBlobs = minDistBetweenBlobs;
553
+ }
526
554
if (minInertiaRatio != null ) p.ref.minInertiaRatio = minInertiaRatio;
527
555
if (minRepeatability != null ) p.ref.minRepeatability = minRepeatability;
528
556
if (minThreshold != null ) p.ref.minThreshold = minThreshold;
@@ -691,6 +719,9 @@ class SimpleBlobDetector extends CvStruct<cvg.SimpleBlobDetector> {
691
719
}
692
720
}
693
721
722
+ factory SimpleBlobDetector .fromPointer (cvg.SimpleBlobDetectorPtr ptr, [bool attach = true ]) =>
723
+ SimpleBlobDetector ._(ptr, attach);
724
+
694
725
/// returns a new SimpleBlobDetector algorithm
695
726
///
696
727
/// For further details, please see:
@@ -717,7 +748,9 @@ class SimpleBlobDetector extends CvStruct<cvg.SimpleBlobDetector> {
717
748
return VecKeyPoint .fromPointer (ret);
718
749
}
719
750
720
- static final finalizer = OcvFinalizer <cvg.SimpleBlobDetectorPtr >(CFFI .addresses.SimpleBlobDetector_Close );
751
+ static final finalizer = OcvFinalizer <cvg.SimpleBlobDetectorPtr >(
752
+ CFFI .addresses.SimpleBlobDetector_Close ,
753
+ );
721
754
722
755
void dispose () {
723
756
finalizer.detach (this );
@@ -738,6 +771,7 @@ class BFMatcher extends CvStruct<cvg.BFMatcher> {
738
771
finalizer.attach (this , ptr.cast (), detach: this );
739
772
}
740
773
}
774
+ factory BFMatcher .fromPointer (cvg.BFMatcherPtr ptr, [bool attach = true ]) => BFMatcher ._(ptr, attach);
741
775
742
776
/// returns a new BFMatcher algorithm
743
777
///
@@ -796,6 +830,8 @@ class FlannBasedMatcher extends CvStruct<cvg.FlannBasedMatcher> {
796
830
finalizer.attach (this , ptr.cast (), detach: this );
797
831
}
798
832
}
833
+ factory FlannBasedMatcher .fromPointer (cvg.FlannBasedMatcherPtr ptr, [bool attach = true ]) =>
834
+ FlannBasedMatcher ._(ptr, attach);
799
835
800
836
/// returns a new FlannBasedMatcher algorithm
801
837
///
@@ -813,11 +849,15 @@ class FlannBasedMatcher extends CvStruct<cvg.FlannBasedMatcher> {
813
849
/// https://docs.opencv.org/master/db/d39/classcv_1_1DescriptorMatcher.html#aa880f9353cdf185ccf3013e08210483a
814
850
VecVecDMatch knnMatch (Mat query, Mat train, int k) {
815
851
final ret = calloc< cvg.VecVecDMatch > ();
816
- cvRun (() => CFFI .FlannBasedMatcher_KnnMatch (ptr.ref, query.ref, train.ref, k, ret));
852
+ cvRun (
853
+ () => CFFI .FlannBasedMatcher_KnnMatch (ptr.ref, query.ref, train.ref, k, ret),
854
+ );
817
855
return VecVecDMatch .fromPointer (ret);
818
856
}
819
857
820
- static final finalizer = OcvFinalizer <cvg.FlannBasedMatcherPtr >(CFFI .addresses.FlannBasedMatcher_Close );
858
+ static final finalizer = OcvFinalizer <cvg.FlannBasedMatcherPtr >(
859
+ CFFI .addresses.FlannBasedMatcher_Close ,
860
+ );
821
861
822
862
void dispose () {
823
863
finalizer.detach (this );
@@ -848,8 +888,22 @@ enum DrawMatchesFlag {
848
888
final int value;
849
889
}
850
890
851
- void drawKeyPoints (Mat src, VecKeyPoint keypoints, Mat dst, Scalar color, DrawMatchesFlag flag) {
852
- cvRun (() => CFFI .DrawKeyPoints (src.ref, keypoints.ref, dst.ref, color.ref, flag.value));
891
+ void drawKeyPoints (
892
+ Mat src,
893
+ VecKeyPoint keypoints,
894
+ Mat dst,
895
+ Scalar color,
896
+ DrawMatchesFlag flag,
897
+ ) {
898
+ cvRun (
899
+ () => CFFI .DrawKeyPoints (
900
+ src.ref,
901
+ keypoints.ref,
902
+ dst.ref,
903
+ color.ref,
904
+ flag.value,
905
+ ),
906
+ );
853
907
}
854
908
855
909
/// SIFT is a wrapper around the cv::SIFT.
@@ -859,6 +913,7 @@ class SIFT extends CvStruct<cvg.SIFT> {
859
913
finalizer.attach (this , ptr.cast (), detach: this );
860
914
}
861
915
}
916
+ factory SIFT .fromPointer (cvg.SIFTPtr ptr, [bool attach = true ]) => SIFT ._(ptr, attach);
862
917
863
918
/// returns a new SIFT algorithm
864
919
///
@@ -887,7 +942,9 @@ class SIFT extends CvStruct<cvg.SIFT> {
887
942
(VecKeyPoint , Mat ) detectAndCompute (Mat src, Mat mask) {
888
943
final desc = Mat .empty ();
889
944
final ret = calloc< cvg.VecKeyPoint > ();
890
- cvRun (() => CFFI .SIFT_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret));
945
+ cvRun (
946
+ () => CFFI .SIFT_DetectAndCompute (ptr.ref, src.ref, mask.ref, desc.ref, ret),
947
+ );
891
948
return (VecKeyPoint .fromPointer (ret), desc);
892
949
}
893
950
@@ -905,10 +962,10 @@ class SIFT extends CvStruct<cvg.SIFT> {
905
962
cvg.SIFT get ref => ptr.ref;
906
963
}
907
964
908
- // DrawMatches draws matches on combined train and querry images.
909
- //
910
- // For further details, please see:
911
- // https://docs.opencv.org/master/d4/d5d/group__features2d__draw.html#gad8f463ccaf0dc6f61083abd8717c261a
965
+ /// DrawMatches draws matches on combined train and querry images.
966
+ ///
967
+ /// For further details, please see:
968
+ /// https://docs.opencv.org/master/d4/d5d/group__features2d__draw.html#gad8f463ccaf0dc6f61083abd8717c261a
912
969
void drawMatches (
913
970
InputArray img1,
914
971
VecKeyPoint keypoints1,
0 commit comments