Skip to content

Commit 4bb9f18

Browse files
committed
use VecPoint2f for findChessboardCorners drawChessboardCorners
1 parent c5b8dcb commit 4bb9f18

File tree

4 files changed

+21
-23
lines changed

4 files changed

+21
-23
lines changed

packages/dartcv/lib/src/calib3d/calib3d.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,19 @@ Mat undistortPoints(
184184
//
185185
// For further details, please see:
186186
// https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga93efa9b0aa890de240ca32b11253dd4a
187-
(bool success, Mat corners) findChessboardCorners(
187+
(bool success, VecPoint2f corners) findChessboardCorners(
188188
InputArray image,
189189
(int, int) patternSize, {
190-
OutputArray? corners,
190+
VecPoint2f? corners,
191191
int flags = CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE,
192192
}) {
193-
corners ??= Mat.empty();
193+
corners ??= VecPoint2f();
194194
final r = calloc<ffi.Bool>();
195195
cvRun(
196196
() => ccalib3d.cv_findChessboardCorners(
197197
image.ref,
198198
patternSize.cvd.ref,
199-
corners!.ref,
199+
corners!.ptr,
200200
flags,
201201
r,
202202
ffi.nullptr,
@@ -267,7 +267,7 @@ Mat undistortPoints(
267267
Mat drawChessboardCorners(
268268
InputOutputArray image,
269269
(int, int) patternSize,
270-
InputArray corners,
270+
VecPoint2f corners,
271271
bool patternWasFound,
272272
) {
273273
cvRun(

packages/dartcv/lib/src/calib3d/calib3d_async.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -183,19 +183,19 @@ Future<Mat> undistortPointsAsync(
183183
//
184184
// For further details, please see:
185185
// https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga93efa9b0aa890de240ca32b11253dd4a
186-
Future<(bool success, Mat corners)> findChessboardCornersAsync(
186+
Future<(bool success, VecPoint2f corners)> findChessboardCornersAsync(
187187
InputArray image,
188188
(int, int) patternSize, {
189-
OutputArray? corners,
189+
VecPoint2f? corners,
190190
int flags = CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE,
191191
}) async {
192-
corners ??= Mat.empty();
192+
corners ??= VecPoint2f();
193193
final r = calloc<ffi.Bool>();
194194
return cvRunAsync0(
195195
(callback) => ccalib3d.cv_findChessboardCorners(
196196
image.ref,
197197
patternSize.cvd.ref,
198-
corners!.ref,
198+
corners!.ptr,
199199
flags,
200200
r,
201201
callback,
@@ -266,7 +266,7 @@ Future<(bool, VecPoint2f corners, Mat meta)> findChessboardCornersSBWithMetaAsyn
266266
Future<Mat> drawChessboardCornersAsync(
267267
InputOutputArray image,
268268
(int, int) patternSize,
269-
InputArray corners,
269+
VecPoint2f corners,
270270
bool patternWasFound,
271271
) async {
272272
return cvRunAsync0(

packages/dartcv/lib/src/g/calib3d.g.dart

+7-7
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class CvNativeCalib3d {
124124
ffi.Pointer<CvStatus> cv_drawChessboardCorners(
125125
Mat image,
126126
CvSize patternSize,
127-
Mat corners,
127+
VecPoint2f corners,
128128
bool patternWasFound,
129129
imp1.CvCallback_0 callback,
130130
) {
@@ -139,12 +139,12 @@ class CvNativeCalib3d {
139139

140140
late final _cv_drawChessboardCornersPtr = _lookup<
141141
ffi.NativeFunction<
142-
ffi.Pointer<CvStatus> Function(Mat, CvSize, Mat, ffi.Bool,
142+
ffi.Pointer<CvStatus> Function(Mat, CvSize, VecPoint2f, ffi.Bool,
143143
imp1.CvCallback_0)>>('cv_drawChessboardCorners');
144144
late final _cv_drawChessboardCorners =
145145
_cv_drawChessboardCornersPtr.asFunction<
146146
ffi.Pointer<CvStatus> Function(
147-
Mat, CvSize, Mat, bool, imp1.CvCallback_0)>();
147+
Mat, CvSize, VecPoint2f, bool, imp1.CvCallback_0)>();
148148

149149
ffi.Pointer<CvStatus> cv_estimateAffine2D(
150150
VecPoint2f from,
@@ -284,7 +284,7 @@ class CvNativeCalib3d {
284284
ffi.Pointer<CvStatus> cv_findChessboardCorners(
285285
Mat image,
286286
CvSize patternSize,
287-
Mat corners,
287+
ffi.Pointer<VecPoint2f> corners,
288288
int flags,
289289
ffi.Pointer<ffi.Bool> rval,
290290
imp1.CvCallback_0 callback,
@@ -304,14 +304,14 @@ class CvNativeCalib3d {
304304
ffi.Pointer<CvStatus> Function(
305305
Mat,
306306
CvSize,
307-
Mat,
307+
ffi.Pointer<VecPoint2f>,
308308
ffi.Int,
309309
ffi.Pointer<ffi.Bool>,
310310
imp1.CvCallback_0)>>('cv_findChessboardCorners');
311311
late final _cv_findChessboardCorners =
312312
_cv_findChessboardCornersPtr.asFunction<
313-
ffi.Pointer<CvStatus> Function(Mat, CvSize, Mat, int,
314-
ffi.Pointer<ffi.Bool>, imp1.CvCallback_0)>();
313+
ffi.Pointer<CvStatus> Function(Mat, CvSize, ffi.Pointer<VecPoint2f>,
314+
int, ffi.Pointer<ffi.Bool>, imp1.CvCallback_0)>();
315315

316316
ffi.Pointer<CvStatus> cv_findChessboardCornersSB(
317317
Mat image,

packages/dartcv/test/calib3d_test.dart

+4-6
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,11 @@ void main() async {
232232
});
233233

234234
test('cv.findChessboardCornersSB', () async {
235-
final img = cv.imread("test/images/chessboard_4x6.png", flags: cv.IMREAD_UNCHANGED);
235+
final img = cv.imread("test/images/chessboard_4x6.png", flags: cv.IMREAD_COLOR);
236236
expect(img.isEmpty, false);
237237

238238
// {
239-
final (found, corners) = cv.findChessboardCornersSB(img, (4, 6), flags: cv.CALIB_CB_EXHAUSTIVE | cv.CALIB_CB_ACCURACY);
239+
final (found, corners) = cv.findChessboardCornersSB(img, (4, 6), flags: 0);
240240
expect(found, true);
241241
// expect(corners.isEmpty, false);
242242

@@ -256,7 +256,7 @@ void main() async {
256256
});
257257

258258
test('cv.findChessboardCornersSBWithMeta', () async {
259-
final img = cv.imread("test/images/chessboard_4x6.png", flags: cv.IMREAD_UNCHANGED);
259+
final img = cv.imread("test/images/chessboard_4x6.png", flags: cv.IMREAD_COLOR);
260260
expect(img.isEmpty, false);
261261

262262
{
@@ -297,9 +297,7 @@ void main() async {
297297
}
298298
}
299299
final objectPointsVector = cv.Contours3f.fromList([pts]);
300-
final imagePointsVector = cv.Contours2f.fromList([
301-
cv.VecPoint2f.fromMat(corners).toList(),
302-
]);
300+
final imagePointsVector = cv.Contours2f.fromList([corners.toList()]);
303301

304302
{
305303
final cameraMatrix = cv.Mat.empty();

0 commit comments

Comments
 (0)