Skip to content

Commit e7c6682

Browse files
authored
Merge pull request #70 from rainyl/more-api-4-objdetect
more api for objdetect
2 parents 73e6ace + 7c4fbeb commit e7c6682

File tree

9 files changed

+5339
-135
lines changed

9 files changed

+5339
-135
lines changed

lib/src/objdetect/objdetect.dart

Lines changed: 356 additions & 23 deletions
Large diffs are not rendered by default.

lib/src/opencv.g.dart

Lines changed: 556 additions & 44 deletions
Large diffs are not rendered by default.

src/core/core.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "core.h"
22
#include "lut.hpp"
3-
#include "opencv2/core/cvstd.hpp"
43
#include <vector>
54

65
CvStatus RotatedRect_Points(RotatedRect rect, VecPoint2f *pts)

src/objdetect/objdetect.cpp

Lines changed: 257 additions & 42 deletions
Large diffs are not rendered by default.

src/objdetect/objdetect.h

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,36 +34,85 @@ CVD_TYPEDEF_PTR(QRCodeDetector)
3434

3535
// CascadeClassifier
3636
CvStatus CascadeClassifier_New(CascadeClassifier *rval);
37-
void CascadeClassifier_Close(CascadeClassifier *cs);
38-
CvStatus CascadeClassifier_Load(CascadeClassifier cs, const char *name, int *rval);
39-
CvStatus CascadeClassifier_DetectMultiScale(CascadeClassifier cs, Mat img, VecRect *rval);
40-
CvStatus CascadeClassifier_DetectMultiScaleWithParams(CascadeClassifier cs, Mat img, double scale,
41-
int minNeighbors, int flags, Size minSize, Size maxSize,
42-
VecRect *rval);
37+
CvStatus CascadeClassifier_NewFromFile(char *filename, CascadeClassifier *rval);
38+
void CascadeClassifier_Close(CascadeClassifier *self);
39+
CvStatus CascadeClassifier_Load(CascadeClassifier self, const char *name, int *rval);
40+
CvStatus CascadeClassifier_DetectMultiScale(CascadeClassifier self, Mat img, VecRect *rval);
41+
CvStatus CascadeClassifier_DetectMultiScaleWithParams(CascadeClassifier self, Mat img, VecRect *objects,
42+
double scale, int minNeighbors, int flags, Size minSize,
43+
Size maxSize);
44+
CvStatus CascadeClassifier_DetectMultiScale2(CascadeClassifier self, Mat img, VecRect *objects,
45+
VecInt *numDetections, double scaleFactor, int minNeighbors,
46+
int flags, Size minSize, Size maxSize);
47+
CvStatus CascadeClassifier_DetectMultiScale3(CascadeClassifier self, Mat img, VecRect *objects,
48+
VecInt *rejectLevels, VecDouble *levelWeights,
49+
double scaleFactor, int minNeighbors, int flags, Size minSize,
50+
Size maxSize, bool outputRejectLevels);
51+
CvStatus CascadeClassifier_Empty(CascadeClassifier self, bool *rval);
52+
CvStatus CascadeClassifier_getFeatureType(CascadeClassifier self, int *rval);
53+
CvStatus CascadeClassifier_getOriginalWindowSize(CascadeClassifier self, Size *rval);
54+
CvStatus CascadeClassifier_isOldFormatCascade(CascadeClassifier self, bool *rval);
55+
56+
// HOGDescriptor
57+
// struct for detection region of interest (ROI)
58+
// typedef struct DetectionROI {
59+
// VecDouble confidences;
60+
// VecPoint locations;
61+
// double scale;
62+
// } DetectionROI;
4363

4464
CvStatus HOGDescriptor_New(HOGDescriptor *rval);
45-
void HOGDescriptor_Close(HOGDescriptor *hog);
46-
CvStatus HOGDescriptor_Load(HOGDescriptor hog, const char *name, int *rval);
47-
CvStatus HOGDescriptor_DetectMultiScale(HOGDescriptor hog, Mat img, VecRect *rval);
48-
CvStatus HOGDescriptor_DetectMultiScaleWithParams(HOGDescriptor hog, Mat img, double hitThresh,
65+
CvStatus HOGDescriptor_NewFromFile(char *filename, HOGDescriptor *rval);
66+
void HOGDescriptor_Close(HOGDescriptor *self);
67+
CvStatus HOGDescriptor_Load(HOGDescriptor self, char *name, bool *rval);
68+
CvStatus HOGDescriptor_Detect(HOGDescriptor self, Mat img, VecPoint *foundLocations, VecDouble *weights,
69+
double hitThresh, Size winStride, Size padding, VecPoint *searchLocations);
70+
CvStatus HOGDescriptor_Detect2(HOGDescriptor self, Mat img, VecPoint *foundLocations, double hitThresh,
71+
Size winStride, Size padding, VecPoint *searchLocations);
72+
CvStatus HOGDescriptor_DetectMultiScale(HOGDescriptor self, Mat img, VecRect *rval);
73+
CvStatus HOGDescriptor_DetectMultiScaleWithParams(HOGDescriptor self, Mat img, double hitThresh,
4974
Size winStride, Size padding, double scale,
5075
double finalThreshold, bool useMeanshiftGrouping,
5176
VecRect *rval);
5277
CvStatus HOG_GetDefaultPeopleDetector(VecFloat *rval);
53-
CvStatus HOGDescriptor_SetSVMDetector(HOGDescriptor hog, VecFloat det);
78+
CvStatus HOGDescriptor_SetSVMDetector(HOGDescriptor self, VecFloat det);
79+
CvStatus HOGDescriptor_Compute(HOGDescriptor self, Mat img, VecFloat *descriptors, Size winStride,
80+
Size padding, VecPoint *locations);
81+
CvStatus HOGDescriptor_computeGradient(HOGDescriptor self, Mat img, Mat grad, Mat angleOfs, Size paddingTL,
82+
Size paddingBR);
83+
// CvStatus HOGDescriptor_detectMultiScaleROI(HOGDescriptor self, Mat img, VecRect *foundLocations,
84+
// DetectionROI *locations, int *lenLocations, double hitThreshold,
85+
// int groupThreshold);
86+
// CvStatus HOGDescriptor_detectROI(HOGDescriptor self, Mat img, VecPoint *locations, VecPoint
87+
// *foundLocations,
88+
// VecDouble *confidences, double hitThreshold, Size winStride, Size
89+
// padding);
90+
CvStatus HOGDescriptor_getDaimlerPeopleDetector(VecFloat *rval);
91+
CvStatus HOGDescriptor_getDescriptorSize(HOGDescriptor self, size_t *rval);
92+
CvStatus HOGDescriptor_getWinSigma(HOGDescriptor self, double *rval);
93+
CvStatus HOGDescriptor_groupRectangles(HOGDescriptor self, VecRect rectList, VecDouble weights,
94+
int groupThreshold, double eps);
5495

5596
CvStatus GroupRectangles(VecRect rects, int groupThreshold, double eps);
5697

98+
// QRCodeDetector
5799
CvStatus QRCodeDetector_New(QRCodeDetector *rval);
58-
CvStatus QRCodeDetector_DetectAndDecode(QRCodeDetector qr, Mat input, VecPoint *points, Mat *straight_qrcode,
59-
VecChar *rval);
60-
CvStatus QRCodeDetector_Detect(QRCodeDetector qr, Mat input, VecPoint points, bool *rval);
61-
CvStatus QRCodeDetector_Decode(QRCodeDetector qr, Mat input, VecPoint inputPoints, Mat straight_qrcode,
100+
void QRCodeDetector_Close(QRCodeDetector *self);
101+
CvStatus QRCodeDetector_DetectAndDecode(QRCodeDetector self, Mat input, VecPoint *points,
102+
Mat *straight_qrcode, VecChar *rval);
103+
CvStatus QRCodeDetector_Detect(QRCodeDetector self, Mat input, VecPoint *points, bool *rval);
104+
CvStatus QRCodeDetector_Decode(QRCodeDetector self, Mat input, VecPoint inputPoints, Mat straight_qrcode,
62105
VecChar *rval);
63-
void QRCodeDetector_Close(QRCodeDetector *qr);
64-
CvStatus QRCodeDetector_DetectMulti(QRCodeDetector qr, Mat input, VecPoint points, bool *rval);
65-
CvStatus QRCodeDetector_DetectAndDecodeMulti(QRCodeDetector qr, Mat input, VecVecChar *decoded,
106+
CvStatus QRCodeDetector_decodeCurved(QRCodeDetector self, Mat img, VecPoint points,
107+
CVD_OUT Mat *straight_qrcode, char **rval);
108+
CvStatus QRCodeDetector_detectAndDecodeCurved(QRCodeDetector self, Mat img, VecPoint *points,
109+
CVD_OUT Mat *straight_qrcode, char **rval);
110+
CvStatus QRCodeDetector_DetectMulti(QRCodeDetector self, Mat input, VecPoint points, bool *rval);
111+
CvStatus QRCodeDetector_DetectAndDecodeMulti(QRCodeDetector self, Mat input, VecVecChar *decoded,
66112
VecPoint *points, VecMat *straight_code, bool *rval);
113+
CvStatus QRCodeDetector_setEpsX(QRCodeDetector self, double epsX);
114+
CvStatus QRCodeDetector_setEpsY(QRCodeDetector self, double epsY);
115+
CvStatus QRCodeDetector_setUseAlignmentMarkers(QRCodeDetector self, bool useAlignmentMarkers);
67116

68117
#ifdef __cplusplus
69118
}

test/data/hog.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0"?>
2+
<opencv_storage>
3+
<hog type_id="opencv-object-detector-hog">
4+
<winSize>20 20</winSize>
5+
<blockSize>8 8</blockSize>
6+
<blockStride>4 4</blockStride>
7+
<cellSize>8 8</cellSize>
8+
<nbins>9</nbins>
9+
<derivAperture>1</derivAperture>
10+
<winSigma>-1</winSigma>
11+
<histogramNormType>0</histogramNormType>
12+
<L2HysThreshold>0.2</L2HysThreshold>
13+
<gammaCorrection>1</gammaCorrection>
14+
<nlevels>64</nlevels></hog>
15+
</opencv_storage>

0 commit comments

Comments
 (0)