@@ -236,13 +236,18 @@ class ReprojectionErrorSymmetricImpl : public ReprojectionErrorSymmetric {
236
236
CV_DbgAssert (points);
237
237
}
238
238
239
- inline void setModelParameters (const Mat &model) override {
239
+ inline void setModelParameters (const Mat& model) override
240
+ {
241
+ CV_Assert (!model.empty ());
242
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
243
+
240
244
const auto * const m = (double *) model.data ;
241
245
m11=static_cast <float >(m[0 ]); m12=static_cast <float >(m[1 ]); m13=static_cast <float >(m[2 ]);
242
246
m21=static_cast <float >(m[3 ]); m22=static_cast <float >(m[4 ]); m23=static_cast <float >(m[5 ]);
243
247
m31=static_cast <float >(m[6 ]); m32=static_cast <float >(m[7 ]); m33=static_cast <float >(m[8 ]);
244
248
245
249
const Mat model_inv = model.inv ();
250
+ CV_CheckTypeEQ (model_inv.depth (), CV_64F, " " );
246
251
const auto * const minv = (double *) model_inv.data ;
247
252
minv11=(float )minv[0 ]; minv12=(float )minv[1 ]; minv13=(float )minv[2 ];
248
253
minv21=(float )minv[3 ]; minv22=(float )minv[4 ]; minv23=(float )minv[5 ];
@@ -299,7 +304,11 @@ class ReprojectionErrorForwardImpl : public ReprojectionErrorForward {
299
304
CV_DbgAssert (points);
300
305
}
301
306
302
- inline void setModelParameters (const Mat &model) override {
307
+ inline void setModelParameters (const Mat& model) override
308
+ {
309
+ CV_Assert (!model.empty ());
310
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
311
+
303
312
const auto * const m = (double *) model.data ;
304
313
m11=static_cast <float >(m[0 ]); m12=static_cast <float >(m[1 ]); m13=static_cast <float >(m[2 ]);
305
314
m21=static_cast <float >(m[3 ]); m22=static_cast <float >(m[4 ]); m23=static_cast <float >(m[5 ]);
@@ -349,7 +358,11 @@ class SampsonErrorImpl : public SampsonError {
349
358
CV_DbgAssert (points);
350
359
}
351
360
352
- inline void setModelParameters (const Mat &model) override {
361
+ inline void setModelParameters (const Mat& model) override
362
+ {
363
+ CV_Assert (!model.empty ());
364
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
365
+
353
366
const auto * const m = (double *) model.data ;
354
367
m11=static_cast <float >(m[0 ]); m12=static_cast <float >(m[1 ]); m13=static_cast <float >(m[2 ]);
355
368
m21=static_cast <float >(m[3 ]); m22=static_cast <float >(m[4 ]); m23=static_cast <float >(m[5 ]);
@@ -416,7 +429,11 @@ class SymmetricGeometricDistanceImpl : public SymmetricGeometricDistance {
416
429
CV_DbgAssert (points);
417
430
}
418
431
419
- inline void setModelParameters (const Mat &model) override {
432
+ inline void setModelParameters (const Mat& model) override
433
+ {
434
+ CV_Assert (!model.empty ());
435
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
436
+
420
437
const auto * const m = (double *) model.data ;
421
438
m11=static_cast <float >(m[0 ]); m12=static_cast <float >(m[1 ]); m13=static_cast <float >(m[2 ]);
422
439
m21=static_cast <float >(m[3 ]); m22=static_cast <float >(m[4 ]); m23=static_cast <float >(m[5 ]);
@@ -476,7 +493,11 @@ class ReprojectionErrorPmatrixImpl : public ReprojectionErrorPmatrix {
476
493
}
477
494
478
495
479
- inline void setModelParameters (const Mat &model) override {
496
+ inline void setModelParameters (const Mat& model) override
497
+ {
498
+ CV_Assert (!model.empty ());
499
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
500
+
480
501
const auto * const p = (double *) model.data ;
481
502
p11 = (float )p[0 ]; p12 = (float )p[1 ]; p13 = (float )p[2 ]; p14 = (float )p[3 ];
482
503
p21 = (float )p[4 ]; p22 = (float )p[5 ]; p23 = (float )p[6 ]; p24 = (float )p[7 ];
@@ -535,7 +556,11 @@ class ReprojectionDistanceAffineImpl : public ReprojectionErrorAffine {
535
556
CV_DbgAssert (points);
536
557
}
537
558
538
- inline void setModelParameters (const Mat &model) override {
559
+ inline void setModelParameters (const Mat& model) override
560
+ {
561
+ CV_Assert (!model.empty ());
562
+ CV_CheckTypeEQ (model.depth (), CV_64F, " " );
563
+
539
564
const auto * const m = (double *) model.data ;
540
565
m11 = (float )m[0 ]; m12 = (float )m[1 ]; m13 = (float )m[2 ];
541
566
m21 = (float )m[3 ]; m22 = (float )m[4 ]; m23 = (float )m[5 ];
0 commit comments