From 551dbcac545aa080308d9b976b4d13c3b8e7f53f Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Wed, 16 Sep 2026 12:59:50 +0200 Subject: [PATCH] Merge pull request #29948 from vrabaud:comma_initializer Remove deprecated CommaInitializer API - #29948 This goes hand in hand with https://github.com/opencv/opencv_contrib/pull/4217 ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake --- modules/calib/src/calibration_handeye.cpp | 8 +- .../calib/test/test_calibration_hand_eye.cpp | 90 ++++--- .../test_cameracalibration_artificial.cpp | 6 +- .../test/test_cameracalibration_badarg.cpp | 8 +- modules/core/include/opencv2/core.hpp | 16 +- modules/core/include/opencv2/core/mat.hpp | 47 +--- modules/core/include/opencv2/core/mat.inl.hpp | 46 ---- .../core/include/opencv2/core/matx.inl.hpp | 77 ------ .../core/include/opencv2/core/persistence.hpp | 4 +- .../core/include/opencv2/core/quaternion.hpp | 2 +- modules/core/src/downhill_simplex.cpp | 4 +- modules/core/test/test_arithm.cpp | 14 +- modules/core/test/test_arithm_expr.cpp | 4 +- modules/core/test/test_conjugate_gradient.cpp | 8 +- modules/core/test/test_downhill_simplex.cpp | 12 +- modules/core/test/test_fp8.cpp | 2 +- modules/core/test/test_lpsolver.cpp | 52 ++-- modules/core/test/test_mat.cpp | 65 ++--- modules/core/test/test_math.cpp | 10 +- modules/core/test/test_misc.cpp | 14 +- modules/core/test/test_operations.cpp | 26 +- modules/core/test/test_quaternion.cpp | 8 +- modules/core/test/test_umat.cpp | 2 +- modules/dnn/test/test_layers.cpp | 14 +- modules/dnn/test/test_misc.cpp | 2 +- modules/dnn/test/test_tf_importer.cpp | 34 ++- modules/features/test/test_drawing.cpp | 25 +- .../test/test_matchers_algorithmic.cpp | 26 +- modules/flann/test/test_radius_search.cpp | 2 +- .../geometry/include/opencv2/geometry/3d.hpp | 2 +- modules/geometry/src/five-point.cpp | 6 +- modules/geometry/src/ptsetreg.cpp | 4 +- .../geometry/test/test_affine3d_estimator.cpp | 8 +- modules/geometry/test/test_cameras.cpp | 24 +- modules/geometry/test/test_convhull.cpp | 6 +- modules/geometry/test/test_fisheye.cpp | 42 +-- .../geometry/test/test_solvepnp_ransac.cpp | 143 ++++++----- .../geometry/test/test_undistort_points.cpp | 31 ++- modules/imgproc/perf/perf_filter2d.cpp | 13 +- modules/imgproc/test/test_color.cpp | 2 +- modules/imgproc/test/test_filter.cpp | 83 +++--- modules/imgproc/test/test_ipc.cpp | 2 +- modules/imgproc/test/test_resize_bitexact.cpp | 56 ++-- .../imgproc/test/test_structuring_element.cpp | 13 +- modules/objdetect/src/chessboard.cpp | 4 +- modules/objdetect/src/face_recognize.cpp | 8 +- modules/objdetect/src/qrcode_encoder.cpp | 4 +- .../objdetect/test/test_charucodetection.cpp | 76 +++--- modules/objdetect/test/test_chesscorners.cpp | 13 +- .../test/test_chesscorners_badarg.cpp | 6 +- modules/objdetect/test/test_cornerssubpix.cpp | 4 +- modules/photo/src/ccm/colorspace.cpp | 12 +- modules/photo/test/test_ccm.cpp | 239 +++++++++--------- modules/ptcloud/test/test_normal.cpp | 2 +- modules/ptcloud/test/test_registration.cpp | 4 +- modules/video/perf/perf_ecc.cpp | 24 +- modules/video/test/test_ecc.cpp | 42 +-- .../how_to_use_OpenCV_parallel_for_new.cpp | 8 +- 58 files changed, 705 insertions(+), 804 deletions(-) diff --git a/modules/calib/src/calibration_handeye.cpp b/modules/calib/src/calibration_handeye.cpp index cf890f3c01..909bcedee6 100644 --- a/modules/calib/src/calibration_handeye.cpp +++ b/modules/calib/src/calibration_handeye.cpp @@ -61,7 +61,7 @@ static Mat rot2quatMinimal(const Mat& R) qz = 0.25 * S; } - return (Mat_(3,1) << qx, qy, qz); + return Mat_({3,1}, {qx, qy, qz}); } static Mat skew(const Mat& v) @@ -71,9 +71,9 @@ static Mat skew(const Mat& v) double vx = v.at(0,0); double vy = v.at(1,0); double vz = v.at(2,0); - return (Mat_(3,3) << 0, -vz, vy, + return Mat_({3,3}, {0, -vz, vy, vz, 0, -vx, - -vy, vx, 0); + -vy, vx, 0}); } // R = quatMinimal2rot(q) @@ -135,7 +135,7 @@ static Mat rot2quat(const Mat& R) qz = 0.25 * S; } - return (Mat_(4,1) << qw, qx, qy, qz); + return Mat_({4,1}, {qw, qx, qy, qz}); } // R = quat2rot(q) diff --git a/modules/calib/test/test_calibration_hand_eye.cpp b/modules/calib/test/test_calibration_hand_eye.cpp index 090f88c57e..88d5706e2c 100644 --- a/modules/calib/test/test_calibration_hand_eye.cpp +++ b/modules/calib/test/test_calibration_hand_eye.cpp @@ -761,82 +761,100 @@ TEST(Calib3d_CalibrateHandEye, regression_24871) std::vector R_gripper2base, t_gripper2base; Mat T_true_cam2gripper; - T_true_cam2gripper = (cv::Mat_(4, 4) << 0, 0, -1, 0.1, - 1, 0, 0, 0.2, - 0, -1, 0, 0.3, - 0, 0, 0, 1); + T_true_cam2gripper = cv::Mat_({4, 4}, { + 0, 0, -1, 0.1, + 1, 0, 0, 0.2, + 0, -1, 0, 0.3, + 0, 0, 0, 1 + }); - R_target2cam.push_back((cv::Mat_(3, 3) << + R_target2cam.push_back(cv::Mat_({3, 3}, { 0.04964505493834381, 0.5136826827431226, 0.8565427426404346, -0.3923117691818854, 0.7987004864191318, -0.4562554205214679, - -0.9184916136152514, -0.3133809733274676, 0.2411752915926112)); - t_target2cam.push_back((cv::Mat_(3, 1) << + -0.9184916136152514, -0.3133809733274676, 0.2411752915926112 + })); + t_target2cam.push_back(cv::Mat_({3, 1}, { -1.588728904724121, 0.07843752950429916, - -1.002813339233398)); + -1.002813339233398 + })); - R_gripper2base.push_back((cv::Mat_(3, 3) << + R_gripper2base.push_back(cv::Mat_({3, 3}, { -0.4143743581399177, -0.6105088815982459, -0.6749613298595637, -0.1598851232573451, -0.6812625208693498, 0.71436554019614, - -0.895952364066927, 0.4039310376145889, 0.1846864320259794)); - t_gripper2base.push_back((cv::Mat_(3, 1) << + -0.895952364066927, 0.4039310376145889, 0.1846864320259794 + })); + t_gripper2base.push_back(cv::Mat_({3, 1}, { -1.249274406461827, -1.916570771580279, - 2.005069553422765)); + 2.005069553422765 + })); - R_target2cam.push_back((cv::Mat_(3, 3) << + R_target2cam.push_back(cv::Mat_({3, 3}, { -0.3048000068139332, 0.6971848192711539, 0.6488684640388026, -0.9377589344241749, -0.3387497187353627, -0.07652979135179161, - 0.1664486009369332, -0.6318084803439735, 0.7570422097951847)); - t_target2cam.push_back((cv::Mat_(3, 1) << + 0.1664486009369332, -0.6318084803439735, 0.7570422097951847 + })); + t_target2cam.push_back(cv::Mat_({3, 1}, { -1.906493663787842, -0.07281044125556946, - 0.6088893413543701)); + 0.6088893413543701 + })); - R_gripper2base.push_back((cv::Mat_(3, 3) << + R_gripper2base.push_back(cv::Mat_({3, 3}, { 0.7262439860936567, -0.201662933718935, -0.6571923111439066, -0.4640017362244384, -0.8491808316335328, -0.2521791108852766, - -0.5072199339965884, 0.4880819361030014, -0.7102844234575628)); - t_gripper2base.push_back((cv::Mat_(3, 1) << + -0.5072199339965884, 0.4880819361030014, -0.7102844234575628 + })); + t_gripper2base.push_back(cv::Mat_({3, 1}, { -0.7375172846804027, -2.579760910816792, - 1.336561572270101)); + 1.336561572270101 + })); - R_target2cam.push_back((cv::Mat_(3, 3) << + R_target2cam.push_back(cv::Mat_({3, 3}, { -0.590234879685801, -0.7051138289845309, -0.3929850823848928, 0.6017371069678565, -0.7088332765096816, 0.3680595606834615, - -0.5380847896941907, -0.01923211603859842, 0.8426712792141644)); - t_target2cam.push_back((cv::Mat_(3, 1) << + -0.5380847896941907, -0.01923211603859842, 0.8426712792141644 + })); + t_target2cam.push_back(cv::Mat_({3, 1}, { -0.9809040427207947, -0.2707894444465637, - -0.2577074766159058)); + -0.2577074766159058 + })); - R_gripper2base.push_back((cv::Mat_(3, 3) << + R_gripper2base.push_back(cv::Mat_({3, 3}, { 0.2541996332132083, 0.6186461729765909, 0.7434106934499181, 0.2194912986375709, 0.711701808961156, -0.6673111005698995, - -0.9419161938817396, 0.3328024155303503, 0.04512688689130734)); - t_gripper2base.push_back((cv::Mat_(3, 1) << + -0.9419161938817396, 0.3328024155303503, 0.04512688689130734 + })); + t_gripper2base.push_back(cv::Mat_({3, 1}, { -1.040123533893404, -0.1303773962721222, - 1.068029475621886)); + 1.068029475621886 + })); - R_target2cam.push_back((cv::Mat_(3, 3) << + R_target2cam.push_back(cv::Mat_({3, 3}, { 0.7643667483125168, -0.08523002870239212, 0.63912386614923, -0.2583463792779588, 0.8676987164647345, 0.424683512464778, - -0.5907627462764713, -0.489729292214425, 0.6412211770980741)); - t_target2cam.push_back((cv::Mat_(3, 1) << + -0.5907627462764713, -0.489729292214425, 0.6412211770980741 + })); + t_target2cam.push_back(cv::Mat_({3, 1}, { -1.58987033367157, -1.924914002418518, - -0.3109001517295837)); + -0.3109001517295837 + })); - R_gripper2base.push_back((cv::Mat_(3, 3) << + R_gripper2base.push_back(cv::Mat_({3, 3}, { 0.116348305340805, -0.9917998080681939, 0.0528792261688552, -0.2760629007224059, 0.01884966191381591, 0.9609547154213178, - -0.9540714578526358, -0.1264034452126562, -0.2716060057313114)); - t_gripper2base.push_back((cv::Mat_(3, 1) << + -0.9540714578526358, -0.1264034452126562, -0.2716060057313114 + })); + t_gripper2base.push_back(cv::Mat_({3, 1}, { -2.551899142554571, -2.986937398237611, - 1.317613923218308)); + 1.317613923218308 + })); Mat R_true_cam2gripper; Mat t_true_cam2gripper; diff --git a/modules/calib/test/test_cameracalibration_artificial.cpp b/modules/calib/test/test_cameracalibration_artificial.cpp index b71d24ac17..83e73a9f7a 100644 --- a/modules/calib/test/test_cameracalibration_artificial.cpp +++ b/modules/calib/test/test_cameracalibration_artificial.cpp @@ -387,8 +387,7 @@ protected: double cx = bg.cols/2 + (40 * (double)rng - 20); double cy = bg.rows/2 + (40 * (double)rng - 20); - Mat_ camMat(3, 3); - camMat << fx, 0., cx, 0, fy, cy, 0., 0., 1.; + Mat_ camMat({3, 3}, {fx, 0., cx, 0, fy, cy, 0., 0., 1.}); double k1 = 0.5 + (double)rng/5; double k2 = (double)rng/5; @@ -397,8 +396,7 @@ protected: double p1 = 0.001 + (double)rng/10; double p2 = 0.001 + (double)rng/10; - Mat_ distCoeffs(1, 5, 0.0); - distCoeffs << k1, k2, p1, p2, k3; + Mat_ distCoeffs({1, 5}, {k1, k2, p1, p2, k3}); ChessBoardGenerator cbg(Size(9, 8)); cbg.min_cos = 0.9; diff --git a/modules/calib/test/test_cameracalibration_badarg.cpp b/modules/calib/test/test_cameracalibration_badarg.cpp index 6593015eed..2eca828e96 100644 --- a/modules/calib/test/test_cameracalibration_badarg.cpp +++ b/modules/calib/test/test_cameracalibration_badarg.cpp @@ -106,8 +106,8 @@ void CV_CameraCalibrationBadArgTest::run( int /* start_from */ ) Mat_ camMat(3, 3); Mat_ distCoeffs0(1, 5); - camMat << 300.f, 0.f, imgSize.width/2.f, 0, 300.f, imgSize.height/2.f, 0.f, 0.f, 1.f; - distCoeffs0 << 1.2f, 0.2f, 0.f, 0.f, 0.f; + camMat = Mat_({3, 3}, {300.f, 0.f, imgSize.width/2.f, 0, 300.f, imgSize.height/2.f, 0.f, 0.f, 1.f}); + distCoeffs0 = Mat_({1, 5}, {1.2f, 0.2f, 0.f, 0.f, 0.f}); ChessBoardGenerator cbg(Size(8,6)); Size corSize = cbg.cornersSize(); @@ -267,8 +267,8 @@ public: CV_ProjectPoints2BadArgTest() : camMat(3, 3), distCoeffs(1, 5) { Size imsSize(800, 600); - camMat << 300.f, 0.f, imsSize.width/2.f, 0, 300.f, imsSize.height/2.f, 0.f, 0.f, 1.f; - distCoeffs << 1.2f, 0.2f, 0.f, 0.f, 0.f; + camMat = Mat_({3, 3}, {300.f, 0.f, imsSize.width/2.f, 0, 300.f, imsSize.height/2.f, 0.f, 0.f, 1.f}); + distCoeffs = Mat_({1, 5}, {1.2f, 0.2f, 0.f, 0.f, 0.f}); } ~CV_ProjectPoints2BadArgTest() {} protected: diff --git a/modules/core/include/opencv2/core.hpp b/modules/core/include/opencv2/core.hpp index c7e074fece..94376fcb2d 100644 --- a/modules/core/include/opencv2/core.hpp +++ b/modules/core/include/opencv2/core.hpp @@ -1183,12 +1183,12 @@ The function horizontally concatenates two or more cv::Mat matrices (with the sa CV_EXPORTS void hconcat(const Mat* src, size_t nsrc, OutputArray dst); /** @overload @code{.cpp} - cv::Mat_ A = (cv::Mat_(3, 2) << 1, 4, + cv::Mat_ A = cv::Mat_({3, 2}, { 1, 4, 2, 5, - 3, 6); - cv::Mat_ B = (cv::Mat_(3, 2) << 7, 10, + 3, 6 }); + cv::Mat_ B = cv::Mat_({3, 2}, { 7, 10, 8, 11, - 9, 12); + 9, 12 }); cv::Mat C; cv::hconcat(A, B, C); @@ -1245,12 +1245,12 @@ The function vertically concatenates two or more cv::Mat matrices (with the same CV_EXPORTS void vconcat(const Mat* src, size_t nsrc, OutputArray dst); /** @overload @code{.cpp} - cv::Mat_ A = (cv::Mat_(3, 2) << 1, 7, + cv::Mat_ A = cv::Mat_({3, 2}, { 1, 7, 2, 8, - 3, 9); - cv::Mat_ B = (cv::Mat_(3, 2) << 4, 10, + 3, 9 }); + cv::Mat_ B = cv::Mat_({3, 2}, { 4, 10, 5, 11, - 6, 12); + 6, 12 }); cv::Mat C; cv::vconcat(A, B, C); diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index f025ba2a72..c89a6fad04 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -668,42 +668,6 @@ public: }; -//////////////////////////////// MatCommaInitializer ////////////////////////////////// - -/** @brief Comma-separated Matrix Initializer - - The class instances are usually not created explicitly. - Instead, they are created on "matrix << firstValue" operator. - - The sample below initializes 2x2 rotation matrix: - - \code - double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180); - Mat R = (Mat_(2,2) << a, -b, b, a); - \endcode - - \deprecated Use constructors with std::initializer_list instead: - \code - Mat_ m1({1, 2, 3, 4}); // 4x1 Mat - Mat_ m2({2, 3}, {1, 2, 3, 4, 5, 6}); // 2x3 Mat - - Mat_ R({2, 2}, {a, -b, b, a}); // from example - \endcode -*/ -template class MatCommaInitializer_ -{ -public: - //! the constructor, created by "matrix << firstValue" operator, where matrix is cv::Mat - MatCommaInitializer_(Mat_<_Tp>* _m); - //! the operator that takes the next value and put it to the matrix - template MatCommaInitializer_<_Tp>& operator , (T2 v); - //! another form of conversion operator - operator Mat_<_Tp>() const; -protected: - MatIterator_<_Tp> it; -}; - - /////////////////////////////////////// Mat /////////////////////////////////////////// // note that umatdata might be allocated together @@ -890,7 +854,7 @@ sub-matrices. - Use a comma-separated initializer: @code // create a 3x3 double-precision identity matrix - Mat M = (Mat_(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1); + Mat M = Mat_({3,3}, {1, 0, 0, 0, 1, 0, 0, 0, 1}); @endcode With this approach, you first call a constructor of the Mat class with the proper parameters, and then you just put `<< operator` followed by comma-separated values that can be constants, @@ -1268,10 +1232,6 @@ public: */ template explicit Mat(const Point3_<_Tp>& pt, bool copyData=true); - /** @overload - */ - template CV_DEPRECATED_EXTERNAL explicit Mat(const MatCommaInitializer_<_Tp>& commaInitializer); - //! download data from GpuMat explicit Mat(const cuda::GpuMat& m); @@ -1384,10 +1344,10 @@ public: immediately above the main one. For example: @code - Mat m = (Mat_(3,3) << + Mat m = Mat_({3,3}, { 1,2,3, 4,5,6, - 7,8,9); + 7,8,9}); Mat d0 = m.diag(0); Mat d1 = m.diag(1); Mat d_1 = m.diag(-1); @@ -2627,7 +2587,6 @@ public: template explicit Mat_(const Matx::channel_type, m, n>& mtx, bool copyData=true); explicit Mat_(const Point_::channel_type>& pt, bool copyData=true); explicit Mat_(const Point3_::channel_type>& pt, bool copyData=true); - CV_DEPRECATED_EXTERNAL explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer); Mat_(std::initializer_list<_Tp> values); explicit Mat_(const std::initializer_list sizes, const std::initializer_list<_Tp> values); diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index ae6b1ffc25..b9eebb5080 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -722,14 +722,6 @@ Mat::Mat(const Point3_<_Tp>& pt, bool copyData) } } -template inline -Mat::Mat(const MatCommaInitializer_<_Tp>& commaInitializer) - : flags(+MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(0), rows(0), cols(0), data(0), - datastart(0), dataend(0), allocator(0), u(0) -{ - *this = commaInitializer.operator Mat_<_Tp>(); -} - inline Mat Mat::row(int y) const { @@ -1585,11 +1577,6 @@ Mat_<_Tp>::Mat_(const Point3_::channel_type>& pt, bool co *this = clone(); } -template inline -Mat_<_Tp>::Mat_(const MatCommaInitializer_<_Tp>& commaInitializer) - : Mat(commaInitializer) -{} - template inline Mat_<_Tp>::Mat_(const std::vector<_Tp>& vec, bool copyData) : Mat(vec, copyData) @@ -3183,39 +3170,6 @@ SparseMatIterator_<_Tp> SparseMatIterator_<_Tp>::operator ++(int) -//////////////////////// MatCommaInitializer_ /////////////////////// - -template inline -MatCommaInitializer_<_Tp>::MatCommaInitializer_(Mat_<_Tp>* _m) - : it(_m) -{} - -template template inline -MatCommaInitializer_<_Tp>& MatCommaInitializer_<_Tp>::operator , (T2 v) -{ - CV_DbgAssert( this->it < ((const Mat_<_Tp>*)this->it.m)->end() ); - *this->it = _Tp(v); - ++this->it; - return *this; -} - -template inline -MatCommaInitializer_<_Tp>::operator Mat_<_Tp>() const -{ - CV_DbgAssert( this->it == ((const Mat_<_Tp>*)this->it.m)->end() ); - return Mat_<_Tp>(*this->it.m); -} - - -template CV_DEPRECATED_EXTERNAL static inline -MatCommaInitializer_<_Tp> operator << (const Mat_<_Tp>& m, T2 val) -{ - MatCommaInitializer_<_Tp> commaInitializer((Mat_<_Tp>*)&m); - return (commaInitializer, val); -} - - - ///////////////////////// Matrix Expressions //////////////////////// inline diff --git a/modules/core/include/opencv2/core/matx.inl.hpp b/modules/core/include/opencv2/core/matx.inl.hpp index 78a75af398..cd2a30cbc5 100644 --- a/modules/core/include/opencv2/core/matx.inl.hpp +++ b/modules/core/include/opencv2/core/matx.inl.hpp @@ -103,45 +103,6 @@ struct Type< Matx<_Tp, m, n> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, n } // namespace -//! @brief Comma-separated Matrix Initializer -template class MatxCommaInitializer -{ -public: - MatxCommaInitializer(Matx<_Tp, m, n>* _mtx); - template MatxCommaInitializer<_Tp, m, n>& operator , (T2 val); - Matx<_Tp, m, n> operator *() const; - - Matx<_Tp, m, n>* dst; - int idx; -}; - -template CV_DEPRECATED_EXTERNAL static inline -MatxCommaInitializer<_Tp, m, n> operator << (const Matx<_Tp, m, n>& mtx, _T2 val) -{ - MatxCommaInitializer<_Tp, m, n> commaInitializer((Matx<_Tp, m, n>*)&mtx); - return (commaInitializer, val); -} - -template inline -MatxCommaInitializer<_Tp, m, n>::MatxCommaInitializer(Matx<_Tp, m, n>* _mtx) - : dst(_mtx), idx(0) -{} - -template template inline -MatxCommaInitializer<_Tp, m, n>& MatxCommaInitializer<_Tp, m, n>::operator , (_T2 value) -{ - CV_DbgAssert( idx < m*n ); - dst->val[idx++] = saturate_cast<_Tp>(value); - return *this; -} - -template inline -Matx<_Tp, m, n> MatxCommaInitializer<_Tp, m, n>::operator *() const -{ - CV_DbgAssert( idx == n*m ); - return *dst; -} - ////////////////////////////////// Matx Implementation /////////////////////////////////// template inline @@ -728,44 +689,6 @@ template struct Type< Vec<_Tp, cn> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, cn) }; }; } // namespace -/** @brief Comma-separated Vec Initializer -*/ -template class VecCommaInitializer : public MatxCommaInitializer<_Tp, m, 1> -{ -public: - VecCommaInitializer(Vec<_Tp, m>* _vec); - template VecCommaInitializer<_Tp, m>& operator , (T2 val); - Vec<_Tp, m> operator *() const; -}; - -template CV_DEPRECATED_EXTERNAL static inline -VecCommaInitializer<_Tp, cn> operator << (const Vec<_Tp, cn>& vec, _T2 val) -{ - VecCommaInitializer<_Tp, cn> commaInitializer((Vec<_Tp, cn>*)&vec); - return (commaInitializer, val); -} - -template inline -VecCommaInitializer<_Tp, cn>::VecCommaInitializer(Vec<_Tp, cn>* _vec) - : MatxCommaInitializer<_Tp, cn, 1>(_vec) -{} - -template template inline -VecCommaInitializer<_Tp, cn>& VecCommaInitializer<_Tp, cn>::operator , (_T2 value) -{ - CV_DbgAssert( this->idx < cn ); - this->dst->val[this->idx++] = saturate_cast<_Tp>(value); - return *this; -} - -template inline -Vec<_Tp, cn> VecCommaInitializer<_Tp, cn>::operator *() const -{ - CV_DbgAssert( this->idx == cn ); - return *this->dst; -} - - template inline Vec<_Tp, cn>::Vec() {} diff --git a/modules/core/include/opencv2/core/persistence.hpp b/modules/core/include/opencv2/core/persistence.hpp index 65bd85ab80..a5ca655988 100644 --- a/modules/core/include/opencv2/core/persistence.hpp +++ b/modules/core/include/opencv2/core/persistence.hpp @@ -92,8 +92,8 @@ Here is an example: fs << "frameCount" << 5; time_t rawtime; time(&rawtime); fs << "calibrationDate" << asctime(localtime(&rawtime)); - Mat cameraMatrix = (Mat_(3,3) << 1000, 0, 320, 0, 1000, 240, 0, 0, 1); - Mat distCoeffs = (Mat_(5,1) << 0.1, 0.01, -0.001, 0, 0); + Mat cameraMatrix = Mat_({3,3},{1000, 0, 320, 0, 1000, 240, 0, 0, 1}); + Mat distCoeffs = Mat_({5,1},{0.1, 0.01, -0.001, 0, 0}); fs << "cameraMatrix" << cameraMatrix << "distCoeffs" << distCoeffs; fs << "features" << "["; for( int i = 0; i < 3; i++ ) diff --git a/modules/core/include/opencv2/core/quaternion.hpp b/modules/core/include/opencv2/core/quaternion.hpp index d8882f6a54..1e6104b7d7 100644 --- a/modules/core/include/opencv2/core/quaternion.hpp +++ b/modules/core/include/opencv2/core/quaternion.hpp @@ -944,7 +944,7 @@ public: * Quatd q_unit = Quatd::createFromAngleAxis(angle, axis); //quaternion could also be get by interpolation by two or more quaternions. * * //assume there is two points (1,0,0) and (1,0,1) to be rotated - * Mat pointsA = (Mat_(2, 3) << 1,0,0,1,0,1); + * Mat pointsA = Mat_({2, 3}, {1,0,0,1,0,1}); * //change the shape * pointsA = pointsA.t(); * // rotate 180 degrees around the z axis diff --git a/modules/core/src/downhill_simplex.cpp b/modules/core/src/downhill_simplex.cpp index 5013d4c506..9ab71068ee 100644 --- a/modules/core/src/downhill_simplex.cpp +++ b/modules/core/src/downhill_simplex.cpp @@ -117,8 +117,8 @@ return x[0] * x[0] + x[1] * x[1]; } }; -Mat P = (Mat_(1, 2) << 1.0, 1.0); -Mat step = (Mat_(2, 1) << -0.5, 0.5); +Mat P = Mat_({1, 2}, {1.0, 1.0}); +Mat step = Mat_({2, 1}, {-0.5, 0.5}); Ptr ptr_F(new DistanceToLines()); Ptr MinProblemSolver = optim::createDownhillSolver(); diff --git a/modules/core/test/test_arithm.cpp b/modules/core/test/test_arithm.cpp index 0373866e43..54ea52bf4c 100644 --- a/modules/core/test/test_arithm.cpp +++ b/modules/core/test/test_arithm.cpp @@ -2059,10 +2059,10 @@ TEST(Multiply, FloatingPointRounding) TEST(Core_Add, AddToColumnWhen3Rows) { - cv::Mat m1 = (cv::Mat_(3, 2) << 1, 2, 3, 4, 5, 6); + cv::Mat m1 = cv::Mat_({3, 2}, {1, 2, 3, 4, 5, 6}); m1.col(1) += 10; - cv::Mat m2 = (cv::Mat_(3, 2) << 1, 12, 3, 14, 5, 16); + cv::Mat m2 = cv::Mat_({3, 2}, {1, 12, 3, 14, 5, 16}); cv::MatExpr diff = m1 - m2; int nz = countNonZero(diff); @@ -2071,10 +2071,10 @@ TEST(Core_Add, AddToColumnWhen3Rows) TEST(Core_Add, AddToColumnWhen4Rows) { - cv::Mat m1 = (cv::Mat_(4, 2) << 1, 2, 3, 4, 5, 6, 7, 8); + cv::Mat m1 = cv::Mat_({4, 2}, {1, 2, 3, 4, 5, 6, 7, 8}); m1.col(1) += 10; - cv::Mat m2 = (cv::Mat_(4, 2) << 1, 12, 3, 14, 5, 16, 7, 18); + cv::Mat m2 = cv::Mat_({4, 2}, {1, 12, 3, 14, 5, 16, 7, 18}); ASSERT_EQ(0, countNonZero(m1 - m2)); } @@ -2516,11 +2516,11 @@ TEST(Compare, regression_8999) { // Issue #8999 predates broadcasting element-wise ops: comparing a 4x1 array against a 1x1 operand // used to throw (both look like a Scalar). It now broadcasts the 1x1 operand across the 4x1 array. - Mat_ A(4,1); A << 1, 3, 2, 4; - Mat_ B(1,1); B << 2; + Mat_ A({4,1}, {1, 3, 2, 4}); + Mat_ B({1,1}, {2}); Mat C; cv::compare(A, B, C, CMP_LT); - Mat expected = (Mat_(4,1) << 255, 0, 0, 0); // A < 2 + Mat expected = Mat_({4,1}, {255, 0, 0, 0}); // A < 2 EXPECT_EQ(0, cvtest::norm(C, expected, NORM_INF)); } diff --git a/modules/core/test/test_arithm_expr.cpp b/modules/core/test/test_arithm_expr.cpp index ec2c0d334d..7837f69b67 100644 --- a/modules/core/test/test_arithm_expr.cpp +++ b/modules/core/test/test_arithm_expr.cpp @@ -354,8 +354,8 @@ TEST(Core_TExpr, atan2) std::atan2(y64.at(r, c), x64.at(r, c))); // axis cases: atan2(0, 1) = 0, atan2(1, 0) = pi/2, atan2(0, -1) = pi, atan2(-1, 0) = -pi/2 - Mat ya = (Mat_(1, 4) << 0.f, 1.f, 0.f, -1.f); - Mat xa = (Mat_(1, 4) << 1.f, 0.f, -1.f, 0.f); + Mat ya = Mat_({1, 4}, {0.f, 1.f, 0.f, -1.f}); + Mat xa = Mat_({1, 4}, {1.f, 0.f, -1.f, 0.f}); Mat ga = expr1("atan2({0}, {1})", { ya, xa }); const float expctd[] = { 0.f, (float)(CV_PI/2), (float)CV_PI, (float)(-CV_PI/2) }; for (int i = 0; i < 4; i++) diff --git a/modules/core/test/test_conjugate_gradient.cpp b/modules/core/test/test_conjugate_gradient.cpp index 6178ce90a9..77d39239dc 100644 --- a/modules/core/test/test_conjugate_gradient.cpp +++ b/modules/core/test/test_conjugate_gradient.cpp @@ -88,8 +88,8 @@ TEST(Core_ConjGradSolver, regression_basic){ #if 1 { cv::Ptr ptr_F(new SphereF_CG()); - cv::Mat x=(cv::Mat_(4,1)<<50.0,10.0,1.0,-10.0), - etalon_x=(cv::Mat_(1,4)<<0.0,0.0,0.0,0.0); + cv::Mat x=cv::Mat_({4,1},{50.0,10.0,1.0,-10.0}), + etalon_x=cv::Mat_({1,4},{0.0,0.0,0.0,0.0}); double etalon_res=0.0; mytest(solver,ptr_F,x,etalon_x,etalon_res); } @@ -97,8 +97,8 @@ TEST(Core_ConjGradSolver, regression_basic){ #if 1 { cv::Ptr ptr_F(new RosenbrockF_CG()); - cv::Mat x=(cv::Mat_(2,1)<<0.0,0.0), - etalon_x=(cv::Mat_(2,1)<<1.0,1.0); + cv::Mat x=cv::Mat_({2,1},{0.0,0.0}), + etalon_x=cv::Mat_({2,1},{1.0,1.0}); double etalon_res=0.0; mytest(solver,ptr_F,x,etalon_x,etalon_res); } diff --git a/modules/core/test/test_downhill_simplex.cpp b/modules/core/test/test_downhill_simplex.cpp index 228b720084..64b44d359f 100644 --- a/modules/core/test/test_downhill_simplex.cpp +++ b/modules/core/test/test_downhill_simplex.cpp @@ -84,9 +84,9 @@ TEST(Core_DownhillSolver, regression_basic){ #if 1 { cv::Ptr ptr_F = cv::makePtr(); - cv::Mat x=(cv::Mat_(1,2)<<1.0,1.0), - step=(cv::Mat_(2,1)<<-0.5,-0.5), - etalon_x=(cv::Mat_(1,2)<<-0.0,0.0); + cv::Mat x=cv::Mat_({1,2},{1.0,1.0}), + step=cv::Mat_({2,1},{-0.5,-0.5}), + etalon_x=cv::Mat_({1,2},{-0.0,0.0}); double etalon_res=0.0; mytest(solver,ptr_F,x,step,etalon_x,etalon_res); } @@ -94,9 +94,9 @@ TEST(Core_DownhillSolver, regression_basic){ #if 1 { cv::Ptr ptr_F = cv::makePtr(); - cv::Mat x=(cv::Mat_(2,1)<<0.0,0.0), - step=(cv::Mat_(2,1)<<0.5,+0.5), - etalon_x=(cv::Mat_(2,1)<<1.0,1.0); + cv::Mat x=cv::Mat_({2,1},{0.0,0.0}), + step=cv::Mat_({2,1},{0.5,+0.5}), + etalon_x=cv::Mat_({2,1},{1.0,1.0}); double etalon_res=0.0; mytest(solver,ptr_F,x,step,etalon_x,etalon_res); } diff --git a/modules/core/test/test_fp8.cpp b/modules/core/test/test_fp8.cpp index 5bf12b0564..f0ae7dfd87 100644 --- a/modules/core/test/test_fp8.cpp +++ b/modules/core/test/test_fp8.cpp @@ -119,7 +119,7 @@ TEST(Core_FP8, cross_fp8_conversion) TEST(Core_FP8, convert_scale) { - Mat f = (Mat_(1, 4) << 1.f, 2.f, 3.f, 4.f); + Mat f = Mat_({1, 4}, {1.f, 2.f, 3.f, 4.f}); Mat q, back; f.convertTo(q, CV_8F_E4M3FN, 2.0, 1.0); // 2x+1 -> {3,5,7,9} q.convertTo(back, CV_32F); diff --git a/modules/core/test/test_lpsolver.cpp b/modules/core/test/test_lpsolver.cpp index b46dc7ef79..5b3217eacd 100644 --- a/modules/core/test/test_lpsolver.cpp +++ b/modules/core/test/test_lpsolver.cpp @@ -47,34 +47,34 @@ TEST(Core_LPSolver, regression_basic){ #if 1 //cormen's example #1 - A=(cv::Mat_(3,1)<<3,1,2); - B=(cv::Mat_(3,4)<<1,1,3,30,2,2,5,24,4,1,2,36); + A=cv::Mat_({3, 1}, {3,1,2}); + B=cv::Mat_({3, 4}, {1,1,3,30,2,2,5,24,4,1,2,36}); std::cout<<"here A goes\n"<(3,1)<<8,4,0); + etalon_z=cv::Mat_({3, 1}, {8,4,0}); ASSERT_LT(cvtest::norm(z, etalon_z, cv::NORM_L1), 1e-12); #endif #if 1 //cormen's example #2 - A=(cv::Mat_(1,2)<<18,12.5); - B=(cv::Mat_(3,3)<<1,1,20,1,0,20,0,1,16); + A=cv::Mat_({1, 2}, {18,12.5}); + B=cv::Mat_({3, 3}, {1,1,20,1,0,20,0,1,16}); std::cout<<"here A goes\n"<(2,1)<<20,0); + etalon_z=cv::Mat_({2, 1}, {20,0}); ASSERT_LT(cvtest::norm(z, etalon_z, cv::NORM_L1), 1e-12); #endif #if 1 //cormen's example #3 - A=(cv::Mat_(1,2)<<5,-3); - B=(cv::Mat_(2,3)<<1,-1,1,2,1,2); + A=cv::Mat_({1,2},{5,-3}); + B=cv::Mat_({2,3},{1,-1,1,2,1,2}); std::cout<<"here A goes\n"<(2,1)<<1,0); + etalon_z=cv::Mat_({2, 1}, {1,0}); ASSERT_LT(cvtest::norm(z, etalon_z, cv::NORM_L1), 1e-12); #endif } @@ -84,12 +84,12 @@ TEST(Core_LPSolver, regression_init_unfeasible){ #if 1 //cormen's example #4 - unfeasible - A=(cv::Mat_(1,3)<<-1,-1,-1); - B=(cv::Mat_(2,4)<<-2,-7.5,-3,-10000,-20,-5,-10,-30000); + A=cv::Mat_({1,3},{-1,-1,-1}); + B=cv::Mat_({2,4},{-2,-7.5,-3,-10000,-20,-5,-10,-30000}); std::cout<<"here A goes\n"<(3,1)<<1250,1000,0); + etalon_z=cv::Mat_({3, 1}, {1250,1000,0}); ASSERT_LT(cvtest::norm(z, etalon_z, cv::NORM_L1), 1e-12); #endif } @@ -99,8 +99,8 @@ TEST(DISABLED_Core_LPSolver, regression_absolutely_unfeasible){ #if 1 //trivial absolutely unfeasible example - A=(cv::Mat_(1,1)<<1); - B=(cv::Mat_(2,2)<<1,-1); + A=cv::Mat_({1,1},{1}); + B=cv::Mat_({2,2},{1,-1}); std::cout<<"here A goes\n"<(2,1)<<1,1); - B=(cv::Mat_(1,3)<<1,1,1); + A=cv::Mat_({2,1},{1,1}); + B=cv::Mat_({1,3},{1,1,1}); std::cout<<"here A goes\n"<(4,1)<<10,-57,-9,-24); - B=(cv::Mat_(3,5)<<0.5,-5.5,-2.5,9,0,0.5,-1.5,-0.5,1,0,1,0,0,0,1); + A=cv::Mat_({4,1},{10,-57,-9,-24}); + B=cv::Mat_({3,5},{0.5,-5.5,-2.5,9,0,0.5,-1.5,-0.5,1,0,1,0,0,0,1}); std::cout<<"here A goes\n"<(3,1)<<3,1,2); - Mat B=(cv::Mat_(3,4)<<1,1,3,30,2,2,5,24,4,1,2,36); + Mat A=cv::Mat_({3,1},{3,1,2}); + Mat B=cv::Mat_({3,4},{1,1,3,30,2,2,5,24,4,1,2,36}); Mat1f z_float; cv::solveLP(A, B, z_float); Mat1d z_double; cv::solveLP(A, B, z_double); Mat1i z_int; cv::solveLP(A, B, z_int); @@ -155,11 +155,13 @@ TEST(Core_LPSolver, issue_12337) // The test behaviour may change after algorithm tuning and may removed. TEST(Core_LPSolver, issue_12343) { - Mat A = (cv::Mat_(4, 1) << 3., 3., 3., 4.); - Mat B = (cv::Mat_(4, 5) << 0., 1., 4., 4., 3., - 3., 1., 2., 2., 3., - 4., 4., 0., 1., 4., - 4., 0., 4., 1., 4.); + Mat A = cv::Mat_({4, 1}, {3., 3., 3., 4.}); + Mat B = cv::Mat_({4, 5}, { + 0., 1., 4., 4., 3., + 3., 1., 2., 2., 3., + 4., 4., 0., 1., 4., + 4., 0., 4., 1., 4. + }); Mat z; int result = cv::solveLP(A, B, z); EXPECT_EQ(SOLVELP_LOST, result); diff --git a/modules/core/test/test_mat.cpp b/modules/core/test/test_mat.cpp index 5400111957..1a7725b89a 100644 --- a/modules/core/test/test_mat.cpp +++ b/modules/core/test/test_mat.cpp @@ -1132,7 +1132,7 @@ TEST(Core_Mat, issue4457_pass_null_ptr) TEST(Core_Mat, reshape_1942) { - cv::Mat A = (cv::Mat_(2,3) << 3.4884074, 1.4159607, 0.78737736, 2.3456569, -0.88010466, 0.3009364); + cv::Mat A = cv::Mat_({2, 3}, {3.4884074, 1.4159607, 0.78737736, 2.3456569, -0.88010466, 0.3009364}); int cn = 0; ASSERT_NO_THROW( cv::Mat_ M = A.reshape(3); @@ -1246,8 +1246,8 @@ TEST(Core_Mat, reinterpret_OutputArray_8UC4_32FC1) { TEST(Core_Mat, push_back) { - Mat a = (Mat_(1,2) << 3.4884074f, 1.4159607f); - Mat b = (Mat_(1,2) << 0.78737736f, 2.3456569f); + Mat a = Mat_({1, 2}, {3.4884074f, 1.4159607f}); + Mat b = Mat_({1, 2}, {0.78737736f, 2.3456569f}); a.push_back(b); @@ -1259,7 +1259,7 @@ TEST(Core_Mat, push_back) ASSERT_FLOAT_EQ(0.78737736f, a.at(1, 0)); ASSERT_FLOAT_EQ(2.3456569f, a.at(1, 1)); - Mat c = (Mat_(2,2) << -0.88010466f, 0.3009364f, 2.22399974f, -5.45933905f); + Mat c = Mat_({2, 2}, {-0.88010466f, 0.3009364f, 2.22399974f, -5.45933905f}); ASSERT_EQ(c.rows, a.cols); @@ -1320,14 +1320,12 @@ INSTANTIATE_TYPED_TEST_CASE_P(CopyToTest, Core_Mat_copyTo, AllMatDepths); TEST(Core_Mat, copyNx1ToVector) { - cv::Mat_ src(5, 1); + cv::Mat_ src({5, 1}, {1, 2, 3, 4, 5}); cv::Mat_ ref_dst8; cv::Mat_ ref_dst16; std::vector dst8; std::vector dst16; - src << 1, 2, 3, 4, 5; - src.copyTo(ref_dst8); src.copyTo(dst8); @@ -1360,14 +1358,14 @@ TEST(Core_Mat, zeros) TEST(Core_Matx, fromMat_) { - Mat_ a = (Mat_(2,2) << 10, 11, 12, 13); + Mat_ a = Mat_({2, 2}, {10, 11, 12, 13}); Matx22d b(a); ASSERT_EQ( cvtest::norm(a, b, NORM_INF), 0.); } TEST(Core_Matx, from_initializer_list) { - Mat_ a = (Mat_(2,2) << 10, 11, 12, 13); + Mat_ a = Mat_({2, 2}, {10, 11, 12, 13}); Matx22d b = {10, 11, 12, 13}; ASSERT_EQ( cvtest::norm(a, b, NORM_INF), 0.); Mat_ c({2, 2}, {10, 11, 12, 13}); @@ -1479,11 +1477,9 @@ TEST(Core_SparseMat, footprint) // Can't fix without dirty hacks or broken user code (PR #4159) TEST(Core_Mat_vector, DISABLED_OutputArray_create_getMat) { - cv::Mat_ src_base(5, 1); + cv::Mat_ src_base({5, 1}, {1, 2, 3, 4, 5}); std::vector dst8; - src_base << 1, 2, 3, 4, 5; - Mat src(src_base); OutputArray _dst(dst8); { @@ -1497,11 +1493,9 @@ TEST(Core_Mat_vector, DISABLED_OutputArray_create_getMat) TEST(Core_Mat_vector, copyTo_roi_column) { - cv::Mat_ src_base(5, 2); + cv::Mat_ src_base({5, 2}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); std::vector dst1; - src_base << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; - Mat src_full(src_base); Mat src(src_full.col(0)); #if 0 // Can't fix without dirty hacks or broken user code (PR #4159) @@ -1529,11 +1523,9 @@ TEST(Core_Mat_vector, copyTo_roi_column) TEST(Core_Mat_vector, copyTo_roi_row) { - cv::Mat_ src_base(2, 5); + cv::Mat_ src_base({2, 5}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); std::vector dst1; - src_base << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; - Mat src_full(src_base); Mat src(src_full.row(0)); OutputArray _dst(dst1); @@ -1699,11 +1691,9 @@ TEST(Mat, regression_10507_mat_setTo) TEST(Core_Mat_array, outputArray_create_getMat) { - cv::Mat_ src_base(5, 1); + cv::Mat_ src_base({5, 1}, {1, 2, 3, 4, 5}); std::array dst8; - src_base << 1, 2, 3, 4, 5; - Mat src(src_base); OutputArray _dst(dst8); @@ -1718,9 +1708,7 @@ TEST(Core_Mat_array, outputArray_create_getMat) TEST(Core_Mat_array, copyTo_roi_column) { - cv::Mat_ src_base(5, 2); - - src_base << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; + cv::Mat_ src_base({5, 2}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); Mat src_full(src_base); Mat src(src_full.col(0)); @@ -1739,11 +1727,9 @@ TEST(Core_Mat_array, copyTo_roi_column) TEST(Core_Mat_array, copyTo_roi_row) { - cv::Mat_ src_base(2, 5); + cv::Mat_ src_base({2, 5}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); std::array dst1; - src_base << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; - Mat src_full(src_base); Mat src(src_full.row(0)); OutputArray _dst(dst1); @@ -1826,8 +1812,7 @@ TEST(Mat_, range_based_for) TEST(Mat, from_initializer_list) { Mat A({1.f, 2.f, 3.f}); - int n = 3; - Mat_ B(1, &n); B << 1, 2, 3; + Mat_ B({3}, {1, 2, 3}); Mat_ C({3}, {1,2,3}); ASSERT_EQ(A.type(), CV_32F); @@ -1848,8 +1833,7 @@ TEST(Mat, from_initializer_list) TEST(Mat_, from_initializer_list) { Mat_ A = {1, 2, 3}; - int n = 3; - Mat_ B(1, &n); B << 1, 2, 3; + Mat_ B({3}, {1, 2, 3}); Mat_ C({3}, {1,2,3}); ASSERT_DOUBLE_EQ(cvtest::norm(A, B, NORM_INF), 0.); @@ -1865,7 +1849,7 @@ TEST(Mat_, from_initializer_list) TEST(Mat, template_based_ptr) { - Mat mat = (Mat_(2, 2) << 11.0f, 22.0f, 33.0f, 44.0f); + Mat mat = Mat_({2, 2}, {11.0f, 22.0f, 33.0f, 44.0f}); int idx[2] = {1, 0}; ASSERT_FLOAT_EQ(33.0f, *(mat.ptr(idx))); idx[0] = 1; @@ -1875,9 +1859,8 @@ TEST(Mat, template_based_ptr) TEST(Mat_, template_based_ptr) { - int dim[4] = {2, 2, 1, 2}; - Mat_ mat = (Mat_(4, dim) << 11.0f, 22.0f, 33.0f, 44.0f, - 55.0f, 66.0f, 77.0f, 88.0f); + Mat_ mat({2, 2, 1, 2}, {11.0f, 22.0f, 33.0f, 44.0f, + 55.0f, 66.0f, 77.0f, 88.0f}); int idx[4] = {1, 0, 0, 1}; ASSERT_FLOAT_EQ(66.0f, *(mat.ptr(idx))); } @@ -2238,10 +2221,12 @@ TEST(Core_Vectors, issue_13078_workaround) TEST(Core_MatExpr, issue_13926) { - Mat M1 = (Mat_(4,4,CV_64FC1) << 1, 2, 3, 4, - 5, 6, 7, 8, - 9, 10, 11, 12, - 13, 14, 15, 16); + Mat M1 = Mat_({4, 4}, { + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12, + 13, 14, 15, 16 + }); Matx44d M2(1, 2, 3, 4, 5, 6, 7, 8, @@ -2546,7 +2531,7 @@ TEST(Mat1D, basic) TEST(Mat, ptrVecni_20044) { - Mat_ m(3,4); m << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; + Mat_ m({3, 4}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}); Vec2i idx(1,1); uchar *u = m.ptr(idx); diff --git a/modules/core/test/test_math.cpp b/modules/core/test/test_math.cpp index 37c27ca801..2d19bb4782 100644 --- a/modules/core/test/test_math.cpp +++ b/modules/core/test/test_math.cpp @@ -1926,7 +1926,7 @@ TEST(Core_SolveCubic, regression_27748) double c = -96.795; double d = 13.6826; - Mat coeffs = (Mat_(1, 4) << a, b, c, d); + Mat coeffs = Mat_({1, 4}, {a, b, c, d}); Mat roots; int n = solveCubic(coeffs, roots); @@ -1947,7 +1947,7 @@ TEST(Core_SolveCubic, regression_27748) TEST(Core_SolvePoly, regression_5599) { // x^4 - x^2 = 0, roots: 1, -1, 0, 0 - cv::Mat coefs = (cv::Mat_(1,5) << 0, 0, -1, 0, 1 ); + cv::Mat coefs = cv::Mat_({1, 5}, {0, 0, -1, 0, 1}); { cv::Mat r; double prec; @@ -1963,7 +1963,7 @@ TEST(Core_SolvePoly, regression_5599) checkRoot(r, 0, 0); } // x^2 - 2x + 1 = 0, roots: 1, 1 - coefs = (cv::Mat_(1,3) << 1, -2, 1 ); + coefs = cv::Mat_({1, 3}, {1, -2, 1}); { cv::Mat r; double prec; @@ -1981,7 +1981,7 @@ TEST(Core_SolvePoly, regression_5599) TEST(Core_SolvePoly, regression_23644) { // x^2 - 2x - 3 = 0, roots: 3, -1 - cv::Mat coefs = (cv::Mat_(1,3) << -3, -2, 1 ); + cv::Mat coefs = cv::Mat_({1, 3}, {-3, -2, 1}); cv::Mat r; double prec; prec = cv::solvePoly(coefs, r); @@ -2322,7 +2322,7 @@ INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Core_CheckRange, mat_data_types); TEST(Core_Invert, small) { - cv::Mat a = (cv::Mat_(3,3) << 2.42104644730331, 1.81444796521479, -3.98072565304758, 0, 7.08389214348967e-3, 5.55326770986007e-3, 0,0, 7.44556154284261e-3); + cv::Mat a = cv::Mat_({3, 3}, {2.42104644730331, 1.81444796521479, -3.98072565304758, 0, 7.08389214348967e-3, 5.55326770986007e-3, 0,0, 7.44556154284261e-3}); //cv::randu(a, -1, 1); cv::Mat b = a.t()*a; diff --git a/modules/core/test/test_misc.cpp b/modules/core/test/test_misc.cpp index 4563cf559a..4b590cb2da 100644 --- a/modules/core/test/test_misc.cpp +++ b/modules/core/test/test_misc.cpp @@ -50,7 +50,7 @@ static double maxAbsDiff(const T &t, const U &u) TEST(Core_OutputArrayAssign, _Matxd_Matd) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1, 2, 3, .1, .2, .3}); Matx23d actualx; { @@ -65,7 +65,7 @@ TEST(Core_OutputArrayAssign, _Matxd_Matd) TEST(Core_OutputArrayAssign, _Matxd_Matf) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1.f, 2.f, 3.f, .1f, .2f, .3f}); Matx23d actualx; { @@ -80,7 +80,7 @@ TEST(Core_OutputArrayAssign, _Matxd_Matf) TEST(Core_OutputArrayAssign, _Matxf_Matd) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1, 2, 3, .1, .2, .3}); Matx23f actualx; { @@ -95,7 +95,7 @@ TEST(Core_OutputArrayAssign, _Matxf_Matd) TEST(Core_OutputArrayAssign, _Matxd_UMatd) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1, 2, 3, .1, .2, .3}); UMat uexpected = expected.getUMat(ACCESS_READ); Matx23d actualx; @@ -111,7 +111,7 @@ TEST(Core_OutputArrayAssign, _Matxd_UMatd) TEST(Core_OutputArrayAssign, _Matxd_UMatf) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1.f, 2.f, 3.f, .1f, .2f, .3f}); UMat uexpected = expected.getUMat(ACCESS_READ); Matx23d actualx; @@ -127,7 +127,7 @@ TEST(Core_OutputArrayAssign, _Matxd_UMatf) TEST(Core_OutputArrayAssign, _Matxf_UMatd) { - Mat expected = (Mat_(2,3) << 1, 2, 3, .1, .2, .3); + Mat expected = Mat_({2, 3}, {1, 2, 3, .1, .2, .3}); UMat uexpected = expected.getUMat(ACCESS_READ); Matx23f actualx; @@ -212,7 +212,7 @@ TEST(Core_String, end_method_regression) TEST(Core_Copy, repeat_regression_8972) { - Mat src = (Mat_(1, 4) << 1, 2, 3, 4); + Mat src = Mat_({1, 4}, {1, 2, 3, 4}); ASSERT_ANY_THROW({ repeat(src, 5, 1, src); diff --git a/modules/core/test/test_operations.cpp b/modules/core/test/test_operations.cpp index ea811b9ad0..5d62c75a2a 100644 --- a/modules/core/test/test_operations.cpp +++ b/modules/core/test/test_operations.cpp @@ -894,8 +894,8 @@ bool CV_OperationsTest::TestMatMatxCastSum() { try { - Mat ref1 = (Mat_(3, 1) << 1, 2, 3); - Mat ref2 = (Mat_(3, 1) << 3, 4, 5); + Mat ref1 = Mat_({3, 1}, {1, 2, 3}); + Mat ref2 = Mat_({3, 1}, {3, 4, 5}); Mat ref3 = Mat::ones(3, 1, CV_64FC1); Mat mat = Mat::zeros(3, 1, CV_64FC1); @@ -1179,7 +1179,7 @@ bool CV_OperationsTest::TestSVD() { try { - Mat A = (Mat_(3,4) << 1, 2, -1, 4, 2, 4, 3, 5, -1, -2, 6, 7); + Mat A = Mat_({3, 4}, {1, 2, -1, 4, 2, 4, 3, 5, -1, -2, 6, 7}); Mat x; SVD::solveZ(A,x); if( cvtest::norm(A*x, NORM_INF) > FLT_EPSILON ) @@ -1506,16 +1506,16 @@ INSTANTIATE_TEST_CASE_P(Core, sortIdx, Combine( TEST(Core_sortIdx, regression_8941) { - cv::Mat src = (cv::Mat_(3, 3) << - 1, 2, 3, - 0, 9, 5, - 8, 1, 6 - ); - cv::Mat expected = (cv::Mat_(3, 1) << - 1, - 0, - 2 - ); + cv::Mat src = cv::Mat_({3, 3}, { + 1, 2, 3, + 0, 9, 5, + 8, 1, 6 + }); + cv::Mat expected = cv::Mat_({3, 1}, { + 1, + 0, + 2 + }); cv::Mat result; cv::sortIdx(src.col(0), result, cv::SORT_EVERY_COLUMN | cv::SORT_ASCENDING); diff --git a/modules/core/test/test_quaternion.cpp b/modules/core/test/test_quaternion.cpp index 4e4e89629c..840c10cf78 100644 --- a/modules/core/test/test_quaternion.cpp +++ b/modules/core/test/test_quaternion.cpp @@ -108,10 +108,10 @@ TEST_F(QuatTest, basicfuns) EXPECT_MAT_NEAR(q1RotMat, R, 1e-6); Vec3d z_axis{0,0,1}; Quatd q_unit1 = Quatd::createFromAngleAxis(angle, z_axis); - Mat pointsA = (Mat_(2, 3) << 1,0,0,1,0,1); + Mat pointsA = Mat_({2, 3}, {1,0,0,1,0,1}); pointsA = pointsA.t(); Mat new_point = q_unit1.toRotMat3x3() * pointsA; - Mat afterRo = (Mat_(3, 2) << -1,-1,0,0,0,1); + Mat afterRo = Mat_({3, 2}, {-1,-1,0,0,0,1}); EXPECT_MAT_NEAR(afterRo, new_point, 1e-6); EXPECT_ANY_THROW(qNull.toRotVec()); Vec3d rodVec{CV_PI/sqrt(3), CV_PI/sqrt(3), CV_PI/sqrt(3)}; @@ -451,9 +451,9 @@ TEST_F(DualQuatTest, basic_ops) EXPECT_EQ(dqTrans.log().exp(), dqTrans); EXPECT_MAT_NEAR(q1norm.toMat(QUAT_ASSUME_UNIT), dq1.toMat(), 1e-6); Matx44d R1 = dq2.toMat(); - Mat point = (Mat_(4, 1) << 3, 0, 0, 1); + Mat point = Mat_({4, 1}, {3, 0, 0, 1}); Mat new_point = R1 * point; - Mat after = (Mat_(4, 1) << 0, 3, 5 ,1); + Mat after = Mat_({4, 1}, {0, 3, 5 ,1}); EXPECT_MAT_NEAR(new_point, after, 1e-6); Vec vec = dq1.toVec(); EXPECT_EQ(DualQuatd(vec), dq1); diff --git a/modules/core/test/test_umat.cpp b/modules/core/test/test_umat.cpp index 4f3f03aed4..532a4e5400 100644 --- a/modules/core/test/test_umat.cpp +++ b/modules/core/test/test_umat.cpp @@ -978,7 +978,7 @@ TEST(UMat, setOpenCL) // save the current state bool useOCL = cv::ocl::useOpenCL(); - Mat m = (Mat_(3,3)<<0,1,2,3,4,5,6,7,8); + Mat m = Mat_({3, 3}, {0,1,2,3,4,5,6,7,8}); cv::ocl::setUseOpenCL(true); UMat um1; diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp index 95873418b0..b83d055cea 100644 --- a/modules/dnn/test/test_layers.cpp +++ b/modules/dnn/test/test_layers.cpp @@ -614,8 +614,8 @@ TEST_P(Test_Caffe_layers, Average_pooling_kernel_area) // 4 5 | 6 // ----+-- // 7 8 | 9 - Mat inp = (Mat_(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); - Mat ref = (Mat_(2, 2) << (1 + 2 + 4 + 5) / 4.f, (3 + 6) / 2.f, (7 + 8) / 2.f, 9); + Mat inp = Mat_({3, 3}, {1, 2, 3, 4, 5, 6, 7, 8, 9}); + Mat ref = Mat_({2, 2}, {(1 + 2 + 4 + 5) / 4.f, (3 + 6) / 2.f, (7 + 8) / 2.f, 9}); Mat tmp = blobFromImage(inp); net.setInput(blobFromImage(inp)); net.setPreferableBackend(backend); @@ -652,10 +652,12 @@ TEST_P(Test_Caffe_layers, PriorBox_squares) net.setPreferableTarget(target); Mat out = net.forward(); - Mat ref = (Mat_(4, 4) << 0.0, 0.0, 0.75, 1.0, - 0.25, 0.0, 1.0, 1.0, - 0.1f, 0.1f, 0.2f, 0.2f, - 0.1f, 0.1f, 0.2f, 0.2f); + Mat ref = Mat_({4, 4}, { + 0.0, 0.0, 0.75, 1.0, + 0.25, 0.0, 1.0, 1.0, + 0.1f, 0.1f, 0.2f, 0.2f, + 0.1f, 0.1f, 0.2f, 0.2f + }); double l1 = 1e-5; if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD || target == DNN_TARGET_CUDA_FP16) l1 = 2e-5; diff --git a/modules/dnn/test/test_misc.cpp b/modules/dnn/test/test_misc.cpp index 19fd982f97..99525f6721 100644 --- a/modules/dnn/test/test_misc.cpp +++ b/modules/dnn/test/test_misc.cpp @@ -574,7 +574,7 @@ TEST(Net, forwardAndRetrieve) lpSlice.name = "testLayer"; lpSlice.type = "Slice"; lpSlice.set("axis", 0); - Mat slicePoint = (Mat_(1, 1) << 2); + Mat slicePoint = Mat_({1, 1}, {2}); lpSlice.set("slice_point", DictValue::arrayInt((int*)slicePoint.data, 1)); Net net; diff --git a/modules/dnn/test/test_tf_importer.cpp b/modules/dnn/test/test_tf_importer.cpp index c21af7cd6d..7569544582 100644 --- a/modules/dnn/test/test_tf_importer.cpp +++ b/modules/dnn/test/test_tf_importer.cpp @@ -953,11 +953,13 @@ TEST_P(Test_TensorFlow_nets, Inception_v2_SSD) // Output has shape 1x1xNx7 where N - number of detections. // An every detection is a vector of values [id, classId, confidence, left, top, right, bottom] Mat out = net.forward(); - Mat ref = (Mat_(5, 7) << 0, 1, 0.90176028, 0.19872092, 0.36311883, 0.26461923, 0.63498729, - 0, 3, 0.93569964, 0.64865261, 0.45906419, 0.80675775, 0.65708131, - 0, 3, 0.75838411, 0.44668293, 0.45907149, 0.49459291, 0.52197015, - 0, 10, 0.95932811, 0.38349164, 0.32528657, 0.40387636, 0.39165527, - 0, 10, 0.93973452, 0.66561931, 0.37841269, 0.68074018, 0.42907384); + Mat ref = Mat_({5, 7}, { + 0, 1, 0.90176028, 0.19872092, 0.36311883, 0.26461923, 0.63498729, + 0, 3, 0.93569964, 0.64865261, 0.45906419, 0.80675775, 0.65708131, + 0, 3, 0.75838411, 0.44668293, 0.45907149, 0.49459291, 0.52197015, + 0, 10, 0.95932811, 0.38349164, 0.32528657, 0.40387636, 0.39165527, + 0, 10, 0.93973452, 0.66561931, 0.37841269, 0.68074018, 0.42907384 + }); double scoreDiff = default_l1, iouDiff = default_lInf; if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD || target == DNN_TARGET_CPU_FP16) @@ -1220,12 +1222,14 @@ TEST_P(Test_TensorFlow_nets, opencv_face_detector_uint8) Mat out = net.forward(); // References are from test for Caffe model. - Mat ref = (Mat_(6, 7) << 0, 1, 0.99520785, 0.80997437, 0.16379407, 0.87996572, 0.26685631, - 0, 1, 0.9934696, 0.2831718, 0.50738752, 0.345781, 0.5985168, - 0, 1, 0.99096733, 0.13629119, 0.24892329, 0.19756334, 0.3310290, - 0, 1, 0.98977017, 0.23901358, 0.09084064, 0.29902688, 0.1769477, - 0, 1, 0.97203469, 0.67965847, 0.06876482, 0.73999709, 0.1513494, - 0, 1, 0.95097077, 0.51901293, 0.45863652, 0.5777427, 0.5347801); + Mat ref = Mat_({6, 7}, { + 0, 1, 0.99520785, 0.80997437, 0.16379407, 0.87996572, 0.26685631, + 0, 1, 0.9934696, 0.2831718, 0.50738752, 0.345781, 0.5985168, + 0, 1, 0.99096733, 0.13629119, 0.24892329, 0.19756334, 0.3310290, + 0, 1, 0.98977017, 0.23901358, 0.09084064, 0.29902688, 0.1769477, + 0, 1, 0.97203469, 0.67965847, 0.06876482, 0.73999709, 0.1513494, + 0, 1, 0.95097077, 0.51901293, 0.45863652, 0.5777427, 0.5347801 + }); double scoreDiff = 3.4e-3, iouDiff = 1e-2; if (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD || target == DNN_TARGET_CPU_FP16) { @@ -1876,9 +1880,11 @@ TEST_P(Test_TensorFlow_nets, EfficientDet) Mat out = net.forward(); // References are from test for TensorFlow model. - Mat ref = (Mat_(3, 7) << 0, 1, 0.8437444, 0.153996080160141, 0.20534580945968628, 0.7463544607162476, 0.7414066195487976, - 0, 17, 0.8245924, 0.16657517850399017, 0.3996818959712982, 0.4111558794975281, 0.9306337833404541, - 0, 7, 0.8039304, 0.6118435263633728, 0.13175517320632935, 0.9065558314323425, 0.2943994700908661); + Mat ref = Mat_({3, 7}, { + 0, 1, 0.8437444, 0.153996080160141, 0.20534580945968628, 0.7463544607162476, 0.7414066195487976, + 0, 17, 0.8245924, 0.16657517850399017, 0.3996818959712982, 0.4111558794975281, 0.9306337833404541, + 0, 7, 0.8039304, 0.6118435263633728, 0.13175517320632935, 0.9065558314323425, 0.2943994700908661 + }); double scoreDiff = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 4e-3 : 1e-5; double iouDiff = (target == DNN_TARGET_OPENCL_FP16 || target == DNN_TARGET_MYRIAD) ? 2e-3 : 1e-4; if (target == DNN_TARGET_CUDA_FP16) diff --git a/modules/features/test/test_drawing.cpp b/modules/features/test/test_drawing.cpp index 34434c2738..f1554d6bae 100644 --- a/modules/features/test/test_drawing.cpp +++ b/modules/features/test/test_drawing.cpp @@ -11,18 +11,19 @@ namespace opencv_test { namespace { static Mat getReference_DrawKeypoint(int cn) { - static Mat ref = (Mat_(11, 11) << - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 15, 54, 15, 1, 1, 1, 1, - 1, 1, 1, 76, 217, 217, 221, 81, 1, 1, 1, - 1, 1, 100, 224, 111, 57, 115, 225, 101, 1, 1, - 1, 44, 215, 100, 1, 1, 1, 101, 214, 44, 1, - 1, 54, 212, 57, 1, 1, 1, 55, 212, 55, 1, - 1, 40, 215, 104, 1, 1, 1, 105, 215, 40, 1, - 1, 1, 102, 221, 111, 55, 115, 222, 103, 1, 1, - 1, 1, 1, 76, 218, 217, 220, 81, 1, 1, 1, - 1, 1, 1, 1, 15, 55, 15, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); + static Mat ref = Mat_({11, 11}, { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 15, 54, 15, 1, 1, 1, 1, + 1, 1, 1, 76, 217, 217, 221, 81, 1, 1, 1, + 1, 1, 100, 224, 111, 57, 115, 225, 101, 1, 1, + 1, 44, 215, 100, 1, 1, 1, 101, 214, 44, 1, + 1, 54, 212, 57, 1, 1, 1, 55, 212, 55, 1, + 1, 40, 215, 104, 1, 1, 1, 105, 215, 40, 1, + 1, 1, 102, 221, 111, 55, 115, 222, 103, 1, 1, + 1, 1, 1, 76, 218, 217, 220, 81, 1, 1, 1, + 1, 1, 1, 1, 15, 55, 15, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }); Mat res; cvtColor(ref, res, (cn == 4) ? COLOR_GRAY2BGRA : COLOR_GRAY2BGR); return res; diff --git a/modules/features/test/test_matchers_algorithmic.cpp b/modules/features/test/test_matchers_algorithmic.cpp index 685ebb7389..fe82e663a2 100644 --- a/modules/features/test/test_matchers_algorithmic.cpp +++ b/modules/features/test/test_matchers_algorithmic.cpp @@ -600,10 +600,14 @@ TEST( Features2d_FlannBasedMatcher, read_write ) TEST(Features2d_DMatch, issue_11855) { - Mat sources = (Mat_(2, 3) << 1, 1, 0, - 1, 1, 1); - Mat targets = (Mat_(2, 3) << 1, 1, 1, - 0, 0, 0); + Mat sources = Mat_({2, 3}, { + 1, 1, 0, + 1, 1, 1 + }); + Mat targets = Mat_({2, 3}, { + 1, 1, 1, + 0, 0, 0 + }); Ptr bf = BFMatcher::create(NORM_HAMMING, true); vector > match; bf->knnMatch(sources, targets, match, 1, noArray(), true); @@ -617,15 +621,19 @@ TEST(Features2d_DMatch, issue_11855) TEST(Features2d_DMatch, issue_17771) { - Mat sources = (Mat_(2, 3) << 1, 1, 0, - 1, 1, 1); - Mat targets = (Mat_(2, 3) << 1, 1, 1, - 0, 0, 0); + Mat sources = Mat_({2, 3}, { + 1, 1, 0, + 1, 1, 1 + }); + Mat targets = Mat_({2, 3}, { + 1, 1, 1, + 0, 0, 0 + }); UMat usources = sources.getUMat(ACCESS_READ); UMat utargets = targets.getUMat(ACCESS_READ); vector > match; Ptr ubf = BFMatcher::create(NORM_HAMMING); - Mat mask = (Mat_(2, 2) << 1, 0, 0, 1); + Mat mask = Mat_({2, 2}, {1, 0, 0, 1}); EXPECT_NO_THROW(ubf->knnMatch(usources, utargets, match, 1, mask, true)); } diff --git a/modules/flann/test/test_radius_search.cpp b/modules/flann/test/test_radius_search.cpp index 03d4ae7847..7303757733 100644 --- a/modules/flann/test/test_radius_search.cpp +++ b/modules/flann/test/test_radius_search.cpp @@ -84,7 +84,7 @@ TEST(Flann_Index, empty_data_build_and_search) cv::Mat data(0, 2, CV_32F); cv::flann::Index index(data, indexParams); - cv::Mat query = (cv::Mat_(1, 2) << 1.0f, 2.0f); + cv::Matx12f query(1.0f, 2.0f); std::vector indices; std::vector dists; int nn = index.radiusSearch(query, indices, dists, 100, 4); diff --git a/modules/geometry/include/opencv2/geometry/3d.hpp b/modules/geometry/include/opencv2/geometry/3d.hpp index a95b762a9d..e856789e19 100644 --- a/modules/geometry/include/opencv2/geometry/3d.hpp +++ b/modules/geometry/include/opencv2/geometry/3d.hpp @@ -2119,7 +2119,7 @@ estimated, both components are set to NaN and, if @p inliers is provided, the ma @code{.cpp} cv::Vec2d t = cv::estimateTranslation2D(from, to, inliers); -cv::Mat T = (cv::Mat_(2,3) << 1,0,t[0], 0,1,t[1]); +cv::Mat T = cv::Mat_({2,3}, {1,0,t[0], 0,1,t[1]}); @endcode The function estimates a pure 2D translation between two 2D point sets using the selected robust diff --git a/modules/geometry/src/five-point.cpp b/modules/geometry/src/five-point.cpp index 1c22eb2282..12d927432d 100644 --- a/modules/geometry/src/five-point.cpp +++ b/modules/geometry/src/five-point.cpp @@ -493,7 +493,7 @@ Mat findEssentialMat( InputArray _points1, InputArray _points2, double focal, Po { CV_INSTRUMENT_REGION(); - Mat cameraMatrix = (Mat_(3,3) << focal, 0, pp.x, 0, focal, pp.y, 0, 0, 1); + Matx33d cameraMatrix(focal, 0, pp.x, 0, focal, pp.y, 0, 0, 1); return findEssentialMat(_points1, _points2, cameraMatrix, method, prob, threshold, maxIters, _mask); } @@ -728,7 +728,7 @@ int recoverPose( InputArray E, InputArray _points1, InputArray _points2, InputAr int recoverPose( InputArray E, InputArray _points1, InputArray _points2, OutputArray _R, OutputArray _t, double focal, Point2d pp, InputOutputArray _mask) { - Mat cameraMatrix = (Mat_(3,3) << focal, 0, pp.x, 0, focal, pp.y, 0, 0, 1); + Matx33d cameraMatrix(focal, 0, pp.x, 0, focal, pp.y, 0, 0, 1); return recoverPose(E, _points1, _points2, cameraMatrix, _R, _t, _mask); } @@ -745,7 +745,7 @@ void decomposeEssentialMat( InputArray _E, OutputArray _R1, OutputArray _R2, Out if (determinant(U) < 0) U *= -1.; if (determinant(Vt) < 0) Vt *= -1.; - Mat W = (Mat_(3, 3) << 0, 1, 0, -1, 0, 0, 0, 0, 1); + Mat W = Mat_({3, 3}, {0, 1, 0, -1, 0, 0, 0, 0, 1}); W.convertTo(W, E.type()); Mat R1, R2, t; diff --git a/modules/geometry/src/ptsetreg.cpp b/modules/geometry/src/ptsetreg.cpp index e8667f9524..4808944f8c 100644 --- a/modules/geometry/src/ptsetreg.cpp +++ b/modules/geometry/src/ptsetreg.cpp @@ -1320,7 +1320,7 @@ Vec2d estimateTranslation2D(InputArray _from, InputArray _to, if (refineIters > 0) { if (T.empty()) - T = (Mat_(2,3) << 1,0,0, 0,1,0); + T = Mat_({2,3}, {1,0,0, 0,1,0}); // LM refine on translation only. // T is: // [1 0 tx] @@ -1392,7 +1392,7 @@ Vec2d estimateTranslation2D(InputArray _from, InputArray _to, sy += (double)t[i].y - (double)f[i].y; } if (T.empty()) - T = (Mat_(2,3) << 1,0,0, 0,1,0); + T = Mat_({2,3}, {1,0,0, 0,1,0}); double* H = T.ptr(); H[2] = sx / nin; // t_x H[5] = sy / nin; // t_y diff --git a/modules/geometry/test/test_affine3d_estimator.cpp b/modules/geometry/test/test_affine3d_estimator.cpp index c355605385..fa1ecf0ae9 100644 --- a/modules/geometry/test/test_affine3d_estimator.cpp +++ b/modules/geometry/test/test_affine3d_estimator.cpp @@ -207,9 +207,11 @@ TEST(Calib3d_EstimateAffine3D, umeyama_3_pt) std::vector points = {{{0.80549149, 0.8225781, 0.79949521}, {0.28906756, 0.57158557, 0.9864789}, {0.58266182, 0.65474983, 0.25078834}}}; - cv::Mat R = (cv::Mat_(3,3) << 0.9689135, -0.0232753, 0.2463025, - 0.0236362, 0.9997195, 0.0014915, - -0.2462682, 0.0043765, 0.9691918); + cv::Mat R = cv::Mat_({3, 3}, { + 0.9689135, -0.0232753, 0.2463025, + 0.0236362, 0.9997195, 0.0014915, + -0.2462682, 0.0043765, 0.9691918 + }); cv::Vec3d t(1., 2., 3.); cv::Affine3d transform(R, t); std::vector transformed_points(points.size()); diff --git a/modules/geometry/test/test_cameras.cpp b/modules/geometry/test/test_cameras.cpp index c1164d8b4d..76331814a6 100644 --- a/modules/geometry/test/test_cameras.cpp +++ b/modules/geometry/test/test_cameras.cpp @@ -75,10 +75,12 @@ void CV_ProjectPointsTest::run(int) RNG rng = ts->get_rng(); // generate data - cameraMatrix << 300.f, 0.f, imgSize.width/2.f, - 0.f, 300.f, imgSize.height/2.f, - 0.f, 0.f, 1.f; - distCoeffs << 0.1, 0.01, 0.001, 0.001; + cameraMatrix = cv::Mat_({3, 3}, { + 300.f, 0.f, imgSize.width/2.f, + 0.f, 300.f, imgSize.height/2.f, + 0.f, 0.f, 1.f + }); + distCoeffs = cv::Mat_({1, 4}, {0.1f, 0.01f, 0.001f, 0.001f}); rvec(0,0) = rng.uniform( rMinVal, rMaxVal ); rvec(0,1) = rng.uniform( rMinVal, rMaxVal ); @@ -285,9 +287,11 @@ TEST(Calib3d_ProjectPoints_CPP, inputShape) const float L = 0.1f; { //3xN 1-channel - Mat objectPoints = (Mat_(3, 2) << -L, L, - L, L, - 0, 0); + Mat objectPoints = Mat_({3, 2}, { + -L, L, + L, L, + 0, 0 + }); vector imagePoints; projectPoints(objectPoints, rvec, tvec, cameraMatrix, noArray(), imagePoints); EXPECT_EQ(objectPoints.cols, static_cast(imagePoints.size())); @@ -298,8 +302,10 @@ TEST(Calib3d_ProjectPoints_CPP, inputShape) } { //Nx2 1-channel - Mat objectPoints = (Mat_(2, 3) << -L, L, 0, - L, L, 0); + Mat objectPoints = Mat_({2, 3}, { + -L, L, 0, + L, L, 0 + }); vector imagePoints; projectPoints(objectPoints, rvec, tvec, cameraMatrix, noArray(), imagePoints); EXPECT_EQ(objectPoints.rows, static_cast(imagePoints.size())); diff --git a/modules/geometry/test/test_convhull.cpp b/modules/geometry/test/test_convhull.cpp index fcf48b23d2..a2333b8a78 100644 --- a/modules/geometry/test/test_convhull.cpp +++ b/modules/geometry/test/test_convhull.cpp @@ -1345,20 +1345,20 @@ INSTANTIATE_TEST_CASE_P(Imgproc, convexHull_monotonous, Point(3, 2), Point(3, 4), Point(2, 5), Point(1, 5), Point(2, 5), Point(3, 4), Point(6, 4), Point(6, 2) }, - (Mat_(5, 1) << 0, 3, 4, 6, 7) + Mat_({5, 1}, {0, 3, 4, 6, 7}) ), std::make_tuple( std::vector{ Point(3, -2), Point(3, -4), Point(2, -5), Point(1, -5), Point(2, -5), Point(3, -4), Point(6, -4), Point(6, -2) }, - (Mat_(5, 1) << 3, 0, 7, 6, 4) + Mat_({5, 1}, {3, 0, 7, 6, 4}) ), std::make_tuple( std::vector{ Point(1, 1), Point(1, 0), Point(0, 0), Point(1, 0), Point(0, 1) }, - (Mat_(4, 1) << 0, 1, 2, 4) + Mat_({4, 1}, {0, 1, 2, 4}) ) ), testing::Bool() diff --git a/modules/geometry/test/test_fisheye.cpp b/modules/geometry/test/test_fisheye.cpp index a56733a7a8..89f49cc626 100644 --- a/modules/geometry/test/test_fisheye.cpp +++ b/modules/geometry/test/test_fisheye.cpp @@ -82,17 +82,18 @@ TEST_F(fisheyeTest, projectPoints) TEST_F(fisheyeTest, distortUndistortPoints) { - int width = imageSize.width; - int height = imageSize.height; + double width = imageSize.width; + double height = imageSize.height; /* Create test points */ - cv::Mat principalPoints = (cv::Mat_(5, 2) << K(0, 2), K(1, 2), // (cx, cy) - /* Image corners */ - 0, 0, - 0, height, - width, 0, - width, height - ); + cv::Mat principalPoints = cv::Mat_({5, 2}, { + K(0, 2), K(1, 2), // (cx, cy) + /* Image corners */ + 0, 0, + 0, height, + width, 0, + width, height + }); /* Random points inside image */ cv::Mat xy[2] = {}; @@ -130,8 +131,8 @@ TEST_F(fisheyeTest, distortUndistortPoints) TEST_F(fisheyeTest, distortUndistortPointsNewCameraFixed) { - int width = imageSize.width; - int height = imageSize.height; + double width = imageSize.width; + double height = imageSize.height; /* Random points inside image */ cv::Mat xy[2] = {}; @@ -166,18 +167,19 @@ TEST_F(fisheyeTest, distortUndistortPointsNewCameraFixed) TEST_F(fisheyeTest, distortUndistortPointsNewCameraRandom) { - int width = imageSize.width; - int height = imageSize.height; + double width = imageSize.width; + double height = imageSize.height; /* Create test points */ std::vector points0Vector; - cv::Mat principalPoints = (cv::Mat_(5, 2) << K(0, 2), K(1, 2), // (cx, cy) - /* Image corners */ - 0, 0, - 0, height, - width, 0, - width, height - ); + cv::Mat principalPoints = cv::Mat_({5, 2}, { + K(0, 2), K(1, 2), // (cx, cy) + /* Image corners */ + 0, 0, + 0, height, + width, 0, + width, height + }); /* Random points inside image */ cv::Mat xy[2] = {}; diff --git a/modules/geometry/test/test_solvepnp_ransac.cpp b/modules/geometry/test/test_solvepnp_ransac.cpp index 8838d385d8..f53a795e4f 100644 --- a/modules/geometry/test/test_solvepnp_ransac.cpp +++ b/modules/geometry/test/test_solvepnp_ransac.cpp @@ -890,8 +890,8 @@ TEST(Calib3d_SolvePnP, input_type) points3d_.push_back(Point3d(-l, l, l)); points3dF_.push_back(Point3f(-l, l, l)); - Mat trueRvec = (Mat_(3,1) << 0.1, -0.25, 0.467); - Mat trueTvec = (Mat_(3,1) << -0.21, 0.12, 0.746); + Mat trueRvec = Mat_({3, 1}, {0.1, -0.25, 0.467}); + Mat trueTvec = Mat_({3, 1}, {-0.21, 0.12, 0.746}); for (int method = 0; method < SOLVEPNP_MAX_COUNT; method++) { @@ -1247,15 +1247,15 @@ TEST(Calib3d_SolvePnP, translation) projectPoints(p3d, crvec, ctvec, cameraIntrinsic, noArray(), p2d); Mat rvec; Mat tvec; - rvec =(Mat_(3,1) << 0, 0, 0); - tvec = (Mat_(3,1) << 100, 100, 0); + rvec =Mat_({3, 1}, {0, 0, 0}); + tvec = Mat_({3, 1}, {100, 100, 0}); solvePnP(p3d, p2d, cameraIntrinsic, noArray(), rvec, tvec, true); EXPECT_TRUE(checkRange(rvec)); EXPECT_TRUE(checkRange(tvec)); - rvec =(Mat_(3,1) << 0, 0, 0); - tvec = (Mat_(3,1) << 100, 100, 0); + rvec =Mat_({3, 1}, {0, 0, 0}); + tvec = Mat_({3, 1}, {100, 100, 0}); solvePnP(p3d, p2d, cameraIntrinsic, noArray(), rvec, tvec, true); EXPECT_TRUE(checkRange(rvec)); EXPECT_TRUE(checkRange(tvec)); @@ -1278,14 +1278,14 @@ TEST(Calib3d_SolvePnP, iterativeInitialGuess3pts) p3d.push_back(Point3d(L, -L, 0.0)); p3d.push_back(Point3d(L, L, 0.0)); - Mat rvec_ground_truth = (Mat_(3,1) << 0.3, -0.2, 0.75); - Mat tvec_ground_truth = (Mat_(3,1) << 0.15, -0.2, 1.5); + Mat rvec_ground_truth = Mat_({3, 1}, {0.3, -0.2, 0.75}); + Mat tvec_ground_truth = Mat_({3, 1}, {0.15, -0.2, 1.5}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); - Mat rvec_est = (Mat_(3,1) << 0.2, -0.1, 0.6); - Mat tvec_est = (Mat_(3,1) << 0.05, -0.05, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.2, -0.1, 0.6}); + Mat tvec_est = Mat_({3, 1}, {0.05, -0.05, 1.0}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1312,14 +1312,14 @@ TEST(Calib3d_SolvePnP, iterativeInitialGuess3pts) p3d.push_back(Point3f(L, -L, 0.0f)); p3d.push_back(Point3f(L, L, 0.0f)); - Mat rvec_ground_truth = (Mat_(3,1) << -0.75f, 0.4f, 0.34f); - Mat tvec_ground_truth = (Mat_(3,1) << -0.15f, 0.35f, 1.58f); + Mat rvec_ground_truth = Mat_({3, 1}, {-0.75f, 0.4f, 0.34f}); + Mat tvec_ground_truth = Mat_({3, 1}, {-0.15f, 0.35f, 1.58f}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); - Mat rvec_est = (Mat_(3,1) << -0.5f, 0.2f, 0.2f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.2f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.5f, 0.2f, 0.2f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.2f, 1.0f}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1351,14 +1351,14 @@ TEST(Calib3d_SolvePnP, iterativeInitialGuess) p3d.push_back(Point3d(-L, L, L/2)); p3d.push_back(Point3d(0, 0, -L/2)); - Mat rvec_ground_truth = (Mat_(3,1) << 0.3, -0.2, 0.75); - Mat tvec_ground_truth = (Mat_(3,1) << 0.15, -0.2, 1.5); + Mat rvec_ground_truth = Mat_({3, 1}, {0.3, -0.2, 0.75}); + Mat tvec_ground_truth = Mat_({3, 1}, {0.15, -0.2, 1.5}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); - Mat rvec_est = (Mat_(3,1) << 0.1, -0.1, 0.1); - Mat tvec_est = (Mat_(3,1) << 0.0, -0.5, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.1, -0.1, 0.1}); + Mat tvec_est = Mat_({3, 1}, {0.0, -0.5, 1.0}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1387,14 +1387,14 @@ TEST(Calib3d_SolvePnP, iterativeInitialGuess) p3d.push_back(Point3f(-L, L, L/2)); p3d.push_back(Point3f(0, 0, -L/2)); - Mat rvec_ground_truth = (Mat_(3,1) << -0.75f, 0.4f, 0.34f); - Mat tvec_ground_truth = (Mat_(3,1) << -0.15f, 0.35f, 1.58f); + Mat rvec_ground_truth = Mat_({3, 1}, {-0.75f, 0.4f, 0.34f}); + Mat tvec_ground_truth = Mat_({3, 1}, {-0.15f, 0.35f, 1.58f}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); - Mat rvec_est = (Mat_(3,1) << -0.1f, 0.1f, 0.1f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.0f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.1f, 0.1f, 0.1f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.0f, 1.0f}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1563,15 +1563,15 @@ TEST(Calib3d_SolvePnP, refine3pts) p3d.push_back(Point3d(L, -L, 0.0)); p3d.push_back(Point3d(L, L, 0.0)); - Mat rvec_ground_truth = (Mat_(3,1) << 0.3, -0.2, 0.75); - Mat tvec_ground_truth = (Mat_(3,1) << 0.15, -0.2, 1.5); + Mat rvec_ground_truth = Mat_({3, 1}, {0.3, -0.2, 0.75}); + Mat tvec_ground_truth = Mat_({3, 1}, {0.15, -0.2, 1.5}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); { - Mat rvec_est = (Mat_(3,1) << 0.2, -0.1, 0.6); - Mat tvec_est = (Mat_(3,1) << 0.05, -0.05, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.2, -0.1, 0.6}); + Mat tvec_est = Mat_({3, 1}, {0.05, -0.05, 1.0}); solvePnPRefineLM(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1585,8 +1585,8 @@ TEST(Calib3d_SolvePnP, refine3pts) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << 0.2, -0.1, 0.6); - Mat tvec_est = (Mat_(3,1) << 0.05, -0.05, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.2, -0.1, 0.6}); + Mat tvec_est = Mat_({3, 1}, {0.05, -0.05, 1.0}); solvePnPRefineVVS(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1612,15 +1612,15 @@ TEST(Calib3d_SolvePnP, refine3pts) p3d.push_back(Point3f(L, -L, 0.0f)); p3d.push_back(Point3f(L, L, 0.0f)); - Mat rvec_ground_truth = (Mat_(3,1) << -0.75f, 0.4f, 0.34f); - Mat tvec_ground_truth = (Mat_(3,1) << -0.15f, 0.35f, 1.58f); + Mat rvec_ground_truth = Mat_({3, 1}, {-0.75f, 0.4f, 0.34f}); + Mat tvec_ground_truth = Mat_({3, 1}, {-0.15f, 0.35f, 1.58f}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); { - Mat rvec_est = (Mat_(3,1) << -0.5f, 0.2f, 0.2f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.2f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.5f, 0.2f, 0.2f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.2f, 1.0f}); solvePnPRefineLM(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1634,8 +1634,8 @@ TEST(Calib3d_SolvePnP, refine3pts) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << -0.5f, 0.2f, 0.2f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.2f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.5f, 0.2f, 0.2f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.2f, 1.0f}); solvePnPRefineVVS(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1667,15 +1667,15 @@ TEST(Calib3d_SolvePnP, refine) p3d.push_back(Point3d(-L, L, L/2)); p3d.push_back(Point3d(0, 0, -L/2)); - Mat rvec_ground_truth = (Mat_(3,1) << 0.3, -0.2, 0.75); - Mat tvec_ground_truth = (Mat_(3,1) << 0.15, -0.2, 1.5); + Mat rvec_ground_truth = Mat_({3, 1}, {0.3, -0.2, 0.75}); + Mat tvec_ground_truth = Mat_({3, 1}, {0.15, -0.2, 1.5}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); { - Mat rvec_est = (Mat_(3,1) << 0.1, -0.1, 0.1); - Mat tvec_est = (Mat_(3,1) << 0.0, -0.5, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.1, -0.1, 0.1}); + Mat tvec_est = Mat_({3, 1}, {0.0, -0.5, 1.0}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1689,8 +1689,8 @@ TEST(Calib3d_SolvePnP, refine) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << 0.1, -0.1, 0.1); - Mat tvec_est = (Mat_(3,1) << 0.0, -0.5, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.1, -0.1, 0.1}); + Mat tvec_est = Mat_({3, 1}, {0.0, -0.5, 1.0}); solvePnPRefineLM(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1704,8 +1704,8 @@ TEST(Calib3d_SolvePnP, refine) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << 0.1, -0.1, 0.1); - Mat tvec_est = (Mat_(3,1) << 0.0, -0.5, 1.0); + Mat rvec_est = Mat_({3, 1}, {0.1, -0.1, 0.1}); + Mat tvec_est = Mat_({3, 1}, {0.0, -0.5, 1.0}); solvePnPRefineVVS(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1734,15 +1734,15 @@ TEST(Calib3d_SolvePnP, refine) p3d.push_back(Point3f(-L, L, L/2)); p3d.push_back(Point3f(0, 0, -L/2)); - Mat rvec_ground_truth = (Mat_(3,1) << -0.75f, 0.4f, 0.34f); - Mat tvec_ground_truth = (Mat_(3,1) << -0.15f, 0.35f, 1.58f); + Mat rvec_ground_truth = Mat_({3, 1}, {-0.75f, 0.4f, 0.34f}); + Mat tvec_ground_truth = Mat_({3, 1}, {-0.15f, 0.35f, 1.58f}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); { - Mat rvec_est = (Mat_(3,1) << -0.1f, 0.1f, 0.1f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.0f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.1f, 0.1f, 0.1f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.0f, 1.0f}); solvePnP(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est, true, SOLVEPNP_ITERATIVE); @@ -1756,8 +1756,8 @@ TEST(Calib3d_SolvePnP, refine) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << -0.1f, 0.1f, 0.1f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.0f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.1f, 0.1f, 0.1f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.0f, 1.0f}); solvePnPRefineLM(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1771,8 +1771,8 @@ TEST(Calib3d_SolvePnP, refine) EXPECT_LE(cvtest::norm(tvec_ground_truth, tvec_est, NORM_INF), 1e-6); } { - Mat rvec_est = (Mat_(3,1) << -0.1f, 0.1f, 0.1f); - Mat tvec_est = (Mat_(3,1) << 0.0f, 0.0f, 1.0f); + Mat rvec_est = Mat_({3, 1}, {-0.1f, 0.1f, 0.1f}); + Mat tvec_est = Mat_({3, 1}, {0.0f, 0.0f, 1.0f}); solvePnPRefineVVS(p3d, p2d, intrinsics, noArray(), rvec_est, tvec_est); @@ -1801,8 +1801,8 @@ TEST(Calib3d_SolvePnP, refine) p3d.push_back(Point3d(-L, L, L/2)); p3d.push_back(Point3d(0, 0, -L/2)); - Mat rvec_ground_truth = (Mat_(3,1) << 0.3, -0.2, 0.75); - Mat tvec_ground_truth = (Mat_(3,1) << 0.15, -0.2, 1.5); + Mat rvec_ground_truth = Mat_({3, 1}, {0.3, -0.2, 0.75}); + Mat tvec_ground_truth = Mat_({3, 1}, {0.15, -0.2, 1.5}); vector p2d; projectPoints(p3d, rvec_ground_truth, tvec_ground_truth, intrinsics, noArray(), p2d); @@ -1886,11 +1886,14 @@ TEST(Calib3d_SolvePnPRansac, minPoints) { //nb points = 5 --> ransac_kernel_method = SOLVEPNP_EPNP - Mat keypoints13D = (Mat_(5, 3) << 12.00604, -2.8654366, 18.472504, - 7.6863389, 4.9355154, 11.146358, - 14.260933, 2.8320458, 12.582781, - 3.4562225, 8.2668982, 11.300434, - 15.316854, 3.7486348, 12.491116); + Mat keypoints13D; + Mat_({5, 3}, { + 12.00604, -2.8654366, 18.472504, + 7.6863389, 4.9355154, 11.146358, + 14.260933, 2.8320458, 12.582781, + 3.4562225, 8.2668982, 11.300434, + 15.316854, 3.7486348, 12.491116 + }).convertTo(keypoints13D, CV_32F); vector imagesPoints; projectPoints(keypoints13D, true_rvec, true_tvec, matK, distCoeff, imagesPoints); @@ -1917,10 +1920,13 @@ TEST(Calib3d_SolvePnPRansac, minPoints) } { //nb points = 4 --> ransac_kernel_method = SOLVEPNP_P3P - Mat keypoints13D = (Mat_(4, 3) << 12.00604, -2.8654366, 18.472504, - 7.6863389, 4.9355154, 11.146358, - 14.260933, 2.8320458, 12.582781, - 3.4562225, 8.2668982, 11.300434); + Mat keypoints13D; + Mat_({4, 3}, { + 12.00604, -2.8654366, 18.472504, + 7.6863389, 4.9355154, 11.146358, + 14.260933, 2.8320458, 12.582781, + 3.4562225, 8.2668982, 11.300434 + }).convertTo(keypoints13D, CV_32F); vector imagesPoints; projectPoints(keypoints13D, true_rvec, true_tvec, matK, distCoeff, imagesPoints); @@ -1958,12 +1964,15 @@ TEST(Calib3d_SolvePnPRansac, inputShape) { //Nx3 1-channel - Mat keypoints13D = (Mat_(6, 3) << 12.00604, -2.8654366, 18.472504, - 7.6863389, 4.9355154, 11.146358, - 14.260933, 2.8320458, 12.582781, - 3.4562225, 8.2668982, 11.300434, - 10.00604, 2.8654366, 15.472504, - -4.6863389, 5.9355154, 13.146358); + Mat keypoints13D; + Mat_({6, 3}, { + 12.00604, -2.8654366, 18.472504, + 7.6863389, 4.9355154, 11.146358, + 14.260933, 2.8320458, 12.582781, + 3.4562225, 8.2668982, 11.300434, + 10.00604, 2.8654366, 15.472504, + -4.6863389, 5.9355154, 13.146358 + }).convertTo(keypoints13D, CV_32F); vector imagesPoints; projectPoints(keypoints13D, true_rvec, true_tvec, matK, distCoeff, imagesPoints); diff --git a/modules/geometry/test/test_undistort_points.cpp b/modules/geometry/test/test_undistort_points.cpp index c02b4ef003..c1421bb367 100644 --- a/modules/geometry/test/test_undistort_points.cpp +++ b/modules/geometry/test/test_undistort_points.cpp @@ -166,11 +166,12 @@ TEST_F(UndistortPointsTest, undistortImagePointsAccuracy) TEST_F(UndistortPointsTest, stop_criteria) { - Mat cameraMatrix = (Mat_(3,3,CV_64F) << 857.48296979, 0, 968.06224829, - 0, 876.71824265, 556.37145899, - 0, 0, 1); - Mat distCoeffs = (Mat_(5,1,CV_64F) << - -2.57614020e-01, 8.77086999e-02, -2.56970803e-04, -5.93390389e-04, -1.52194091e-02); + Mat cameraMatrix = Mat_({3, 3}, { + 857.48296979, 0, 968.06224829, + 0, 876.71824265, 556.37145899, + 0, 0, 1 + }); + Mat distCoeffs = Mat_({5, 1}, {-2.57614020e-01, 8.77086999e-02, -2.56970803e-04, -5.93390389e-04, -1.52194091e-02}); Point2d pt_distorted(theRNG().uniform(0.0, 1920.0), theRNG().uniform(0.0, 1080.0)); @@ -227,15 +228,17 @@ TEST_F(UndistortPointsTest, regression_14583) TEST_F(UndistortPointsTest, regression_27916) { - cv::Mat K = (cv::Mat_(3, 3) << - 1570.8956145992222, 0., 744.87337646727406, 0., - 1570.3494207432338, 575.55087456337526, 0., 0., 1.); - cv::Mat dist = (cv::Mat_(1, 12) << - -2.8247717583453804, -0.80078070764368037, - -0.014595359484103326, 0.0018820998949700702, 1.9827795585249783, - -2.7306773773930897, -1.217725820479524, 2.4052243546080136, - -0.0020670359760441713, 3.4660880793174063e-05, - 0.014100351510458799, -3.0935329736207612e-05); + cv::Mat K = cv::Mat_({3, 3}, { + 1570.8956145992222, 0., 744.87337646727406, 0., + 1570.3494207432338, 575.55087456337526, 0., 0., 1. + }); + cv::Mat dist = cv::Mat_({1, 12}, { + -2.8247717583453804, -0.80078070764368037, + -0.014595359484103326, 0.0018820998949700702, 1.9827795585249783, + -2.7306773773930897, -1.217725820479524, 2.4052243546080136, + -0.0020670359760441713, 3.4660880793174063e-05, + 0.014100351510458799, -3.0935329736207612e-05 + }); const cv::TermCriteria termCriteria(TermCriteria::MAX_ITER | TermCriteria::EPS, 100, thresh / 2); std::vector distortedPoints, distortedPoints2; diff --git a/modules/imgproc/perf/perf_filter2d.cpp b/modules/imgproc/perf/perf_filter2d.cpp index 6eae9891b8..d332f05859 100644 --- a/modules/imgproc/perf/perf_filter2d.cpp +++ b/modules/imgproc/perf/perf_filter2d.cpp @@ -121,17 +121,18 @@ PERF_TEST_P( ImgProc_ParallelFilter_Perf, filter2D_parallel, if (isSep) { - Mat kx = (Mat_(1, 3) << 0.25f, 0.5f, 0.25f); - Mat ky = (Mat_(3, 1) << 0.25f, 0.5f, 0.25f); + Mat kx = Mat_({1, 3}, {0.25f, 0.5f, 0.25f}); + Mat ky = Mat_({3, 1}, {0.25f, 0.5f, 0.25f}); TEST_CYCLE() cv::sepFilter2D(src, dst, -1, kx, ky, Point(-1, -1), 0, borderMode); } else { - Mat kernel = (Mat_(3, 3) << - 1/16.f, 2/16.f, 1/16.f, - 2/16.f, 4/16.f, 2/16.f, - 1/16.f, 2/16.f, 1/16.f); + Mat kernel = Mat_({3, 3}, { + 1/16.f, 2/16.f, 1/16.f, + 2/16.f, 4/16.f, 2/16.f, + 1/16.f, 2/16.f, 1/16.f + }); TEST_CYCLE() cv::filter2D(src, dst, -1, kernel, Point(-1, -1), 0, borderMode); } diff --git a/modules/imgproc/test/test_color.cpp b/modules/imgproc/test/test_color.cpp index d317d611a0..f18fe4709d 100644 --- a/modules/imgproc/test/test_color.cpp +++ b/modules/imgproc/test/test_color.cpp @@ -3299,7 +3299,7 @@ TEST(ImgProc_cvtColor_InvalidNumOfChannels, regression_25971) TEST(ImgProc_applyColorMap, dimensions) { cv::Mat1b src({0, 128, 255}); - cv::Mat3b gt = (cv::Mat3b(1, 3) << cv::Vec3b(128, 0, 0), cv::Vec3b(126, 255, 130), cv::Vec3b(0, 0, 128)); + cv::Mat3b gt = cv::Mat3b({1, 3}, {cv::Vec3b(128, 0, 0), cv::Vec3b(126, 255, 130), cv::Vec3b(0, 0, 128)}); cv::Mat3b dst; cv::applyColorMap(src, dst, cv::COLORMAP_JET); ASSERT_EQ(cv::norm(dst, gt, NORM_L1), 0); diff --git a/modules/imgproc/test/test_filter.cpp b/modules/imgproc/test/test_filter.cpp index 2b9764ffc2..100a0493fd 100644 --- a/modules/imgproc/test/test_filter.cpp +++ b/modules/imgproc/test/test_filter.cpp @@ -676,7 +676,7 @@ TEST(Imgproc_Blur, borderTypes) // should work like !BORDER_ISOLATED cv::blur(src_roi, dst, kernelSize, Point(-1, -1), BORDER_REPLICATE); Mat expected_dst = - (Mat_(3, 3) << 170, 113, 170, 113, 28, 113, 170, 113, 170); + Mat_({3, 3}, {170, 113, 170, 113, 28, 113, 170, 113, 170}); EXPECT_EQ(expected_dst.type(), dst.type()); EXPECT_EQ(expected_dst.size(), dst.size()); EXPECT_DOUBLE_EQ(0.0, cvtest::norm(expected_dst, dst, NORM_INF)); @@ -742,7 +742,7 @@ TEST(Imgproc_Sobel, borderTypes) int kernelSize = 3; /// ksize > src_roi.size() - Mat src = (Mat_(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9), dst, expected_dst; + Mat src = Mat_({3, 3}, {1, 2, 3, 4, 5, 6, 7, 8, 9}), dst, expected_dst; Mat src_roi = src(Rect(1, 1, 1, 1)); src_roi.setTo(cv::Scalar::all(0)); @@ -765,7 +765,7 @@ TEST(Imgproc_Sobel, borderTypes) // should work like !BORDER_ISOLATED, so the function MUST read values in full matrix expected_dst = - (Mat_(3, 3) << -15, 0, 15, -20, 0, 20, -15, 0, 15); + Mat_({3, 3}, {-15, 0, 15, -20, 0, 20, -15, 0, 15}); cv::Sobel(src_roi, dst, CV_16S, 1, 0, kernelSize, 1, 0, BORDER_REPLICATE); EXPECT_EQ(expected_dst.type(), dst.type()); EXPECT_EQ(expected_dst.size(), dst.size()); @@ -789,21 +789,15 @@ TEST(Imgproc_Sobel, borderTypes) TEST(Imgproc_MorphEx, hitmiss_regression_8957) { - Mat_ src(3, 3); - src << 0, 255, 0, - 0, 0, 0, - 0, 255, 0; - + Mat_ src({3, 3}, {0, 255, 0, + 0, 0, 0, + 0, 255, 0}); Mat_ kernel = src / 255; - Mat dst; cv::morphologyEx(src, dst, MORPH_HITMISS, kernel); - Mat ref = Mat::zeros(3, 3, CV_8U); ref.at(1, 1) = 255; - ASSERT_DOUBLE_EQ(cvtest::norm(dst, ref, NORM_INF), 0.); - src.at(1, 1) = 255; ref.at(0, 1) = 255; ref.at(2, 1) = 255; @@ -813,11 +807,9 @@ TEST(Imgproc_MorphEx, hitmiss_regression_8957) TEST(Imgproc_MorphEx, hitmiss_zero_kernel) { - Mat_ src(3, 3); - src << 0, 255, 0, - 0, 0, 0, - 0, 255, 0; - + Mat_ src({3, 3}, {0, 255, 0, + 0, 0, 0, + 0, 255, 0}); Mat_ kernel = Mat_::zeros(3, 3); Mat dst; @@ -989,22 +981,26 @@ TEST(Imgproc_MedianBlur, regression_28385) TEST(Imgproc_Sobel, s16_regression_13506) { - Mat src = (Mat_(8, 16) << 127, 138, 130, 102, 118, 97, 76, 84, 124, 90, 146, 63, 130, 87, 212, 85, - 164, 3, 51, 124, 151, 89, 154, 117, 36, 88, 116, 117, 180, 112, 147, 124, - 63, 50, 115, 103, 83, 148, 106, 79, 213, 106, 135, 53, 79, 106, 122, 112, - 218, 107, 81, 126, 78, 138, 85, 142, 151, 108, 104, 158, 155, 81, 112, 178, - 184, 96, 187, 148, 150, 112, 138, 162, 222, 146, 128, 49, 124, 46, 165, 104, - 119, 164, 77, 144, 186, 98, 106, 148, 155, 157, 160, 151, 156, 149, 43, 122, - 106, 155, 120, 132, 159, 115, 126, 188, 44, 79, 164, 201, 153, 97, 139, 133, - 133, 98, 111, 165, 66, 106, 131, 85, 176, 156, 67, 108, 142, 91, 74, 137); - Mat ref = (Mat_(8, 16) << 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1020, -796, -489, -469, -247, 317, 760, 1429, 1983, 1384, 254, -459, -899, -1197, -1172, -1058, - 2552, 2340, 1617, 591, 9, 96, 722, 1985, 2746, 1916, 676, 9, -635, -1115, -779, -380, - 3546, 3349, 2838, 2206, 1388, 669, 938, 1880, 2252, 1785, 1083, 606, 180, -298, -464, -418, - 816, 966, 1255, 1652, 1619, 924, 535, 288, 5, 601, 1581, 1870, 1520, 625, -627, -1260, - -782, -610, -395, -267, -122, -42, -317, -1378, -2293, -1451, 596, 1870, 1679, 763, -69, -394, - -882, -681, -463, -818, -1167, -732, -463, -1042, -1604, -1592, -1047, -334, -104, -117, 229, 512, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + Mat src = Mat_({8, 16}, { + 127, 138, 130, 102, 118, 97, 76, 84, 124, 90, 146, 63, 130, 87, 212, 85, + 164, 3, 51, 124, 151, 89, 154, 117, 36, 88, 116, 117, 180, 112, 147, 124, + 63, 50, 115, 103, 83, 148, 106, 79, 213, 106, 135, 53, 79, 106, 122, 112, + 218, 107, 81, 126, 78, 138, 85, 142, 151, 108, 104, 158, 155, 81, 112, 178, + 184, 96, 187, 148, 150, 112, 138, 162, 222, 146, 128, 49, 124, 46, 165, 104, + 119, 164, 77, 144, 186, 98, 106, 148, 155, 157, 160, 151, 156, 149, 43, 122, + 106, 155, 120, 132, 159, 115, 126, 188, 44, 79, 164, 201, 153, 97, 139, 133, + 133, 98, 111, 165, 66, 106, 131, 85, 176, 156, 67, 108, 142, 91, 74, 137 + }); + Mat ref = Mat_({8, 16}, { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1020, -796, -489, -469, -247, 317, 760, 1429, 1983, 1384, 254, -459, -899, -1197, -1172, -1058, + 2552, 2340, 1617, 591, 9, 96, 722, 1985, 2746, 1916, 676, 9, -635, -1115, -779, -380, + 3546, 3349, 2838, 2206, 1388, 669, 938, 1880, 2252, 1785, 1083, 606, 180, -298, -464, -418, + 816, 966, 1255, 1652, 1619, 924, 535, 288, 5, 601, 1581, 1870, 1520, 625, -627, -1260, + -782, -610, -395, -267, -122, -42, -317, -1378, -2293, -1451, 596, 1870, 1679, 763, -69, -394, + -882, -681, -463, -818, -1167, -732, -463, -1042, -1604, -1592, -1047, -334, -104, -117, 229, 512, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }); Mat dst; Sobel(src, dst, CV_16S, 0, 1, 5); ASSERT_EQ(0.0, cvtest::norm(dst, ref, NORM_INF)); @@ -1257,16 +1253,17 @@ static void runFilter(const Mat& src, Mat& dst, int borderType, bool isSep) { if (isSep) { - Mat kx = (Mat_(1, 3) << 0.25f, 0.5f, 0.25f); - Mat ky = (Mat_(3, 1) << 0.25f, 0.5f, 0.25f); + Mat kx = Mat_({1, 3}, {0.25f, 0.5f, 0.25f}); + Mat ky = Mat_({3, 1}, {0.25f, 0.5f, 0.25f}); cv::sepFilter2D(src, dst, -1, kx, ky, Point(-1, -1), 0, borderType); } else { - Mat kernel = (Mat_(3, 3) << - 1/16.f, 2/16.f, 1/16.f, - 2/16.f, 4/16.f, 2/16.f, - 1/16.f, 2/16.f, 1/16.f); + Mat kernel = Mat_({3, 3}, { + 1/16.f, 2/16.f, 1/16.f, + 2/16.f, 4/16.f, 2/16.f, + 1/16.f, 2/16.f, 1/16.f + }); cv::filter2D(src, dst, -1, kernel, Point(-1, -1), 0, borderType); } } @@ -1362,7 +1359,7 @@ TEST(Imgproc_Filter2D, padding_bounds_extreme_anchor) { // Case 1: 1x1 image, large kernel, anchor at far right { - Mat src = (Mat_(1, 1) << 128); + Mat src = Mat_({1, 1}, {128}); Mat kernel = Mat::ones(1, 7, CV_32F) / 7.0f; Mat dst; Point anchor(6, 0); @@ -1373,7 +1370,7 @@ TEST(Imgproc_Filter2D, padding_bounds_extreme_anchor) // Case 2: 1x1 image, large kernel, anchor at far left { - Mat src = (Mat_(1, 1) << 200); + Mat src = Mat_({1, 1}, {200}); Mat kernel = Mat::ones(1, 9, CV_32F) / 9.0f; Mat dst; Point anchor(0, 0); @@ -1384,7 +1381,7 @@ TEST(Imgproc_Filter2D, padding_bounds_extreme_anchor) // Case 3: 2x2 image, 11x11 kernel, various anchors { - Mat src = (Mat_(2, 2) << 100, 150, 200, 250); + Mat src = Mat_({2, 2}, {100, 150, 200, 250}); Mat kernel = Mat::ones(11, 11, CV_32F) / 121.0f; Mat dst; for (int ax : {0, 5, 10}) { @@ -1410,7 +1407,7 @@ TEST(Imgproc_Filter2D, padding_bounds_extreme_anchor) // Case 5: all border types with all valid anchors for wide kernel on narrow image { - Mat src = (Mat_(1, 3) << 10, 20, 30); + Mat src = Mat_({1, 3}, {10, 20, 30}); Mat kernel = Mat::ones(1, 15, CV_32F) / 15.0f; Mat dst; int borderTypes[] = {BORDER_REPLICATE, BORDER_REFLECT, BORDER_REFLECT_101, BORDER_CONSTANT}; diff --git a/modules/imgproc/test/test_ipc.cpp b/modules/imgproc/test/test_ipc.cpp index 9d043cffff..c8ddfdd443 100644 --- a/modules/imgproc/test/test_ipc.cpp +++ b/modules/imgproc/test/test_ipc.cpp @@ -39,7 +39,7 @@ void TestPhaseCorrelationIterative(const Size& size, const double maxShift) { const auto shift = Point2d(maxShift * i / (iters - 1), maxShift * i / (iters - 1)) + shiftOffset; - const Mat Tmat = (Mat_(2, 3) << 1., 0., shift.x, 0., 1., shift.y); + const Mat Tmat = Mat_({2, 3}, {1., 0., shift.x, 0., 1., shift.y}); warpAffine(image1, image2, Tmat, image2.size()); Mat crop2 = CropMid(image2, size.width, size.height); const auto ipcshift = phaseCorrelateIterative(crop1, crop2); diff --git a/modules/imgproc/test/test_resize_bitexact.cpp b/modules/imgproc/test/test_resize_bitexact.cpp index 8b7d082886..38515fdc7b 100644 --- a/modules/imgproc/test/test_resize_bitexact.cpp +++ b/modules/imgproc/test/test_resize_bitexact.cpp @@ -194,41 +194,45 @@ TEST(Resize_Bitexact, Nearest8U) Mat src[6], dst[6]; // 2x decimation - src[0] = (Mat_(1, 6) << 0, 1, 2, 3, 4, 5); - dst[0] = (Mat_(1, 3) << 1, 3, 5); + src[0] = Mat_({1, 6}, {0, 1, 2, 3, 4, 5}); + dst[0] = Mat_({1, 3}, {1, 3, 5}); // decimation odd to 1 - src[1] = (Mat_(1, 5) << 0, 1, 2, 3, 4); - dst[1] = (Mat_(1, 1) << 2); + src[1] = Mat_({1, 5}, {0, 1, 2, 3, 4}); + dst[1] = Mat_({1, 1}, {2}); // decimation n*2-1 to n - src[2] = (Mat_(1, 5) << 0, 1, 2, 3, 4); - dst[2] = (Mat_(1, 3) << 0, 2, 4); + src[2] = Mat_({1, 5}, {0, 1, 2, 3, 4}); + dst[2] = Mat_({1, 3}, {0, 2, 4}); // decimation n*2+1 to n - src[3] = (Mat_(1, 5) << 0, 1, 2, 3, 4); - dst[3] = (Mat_(1, 2) << 1, 3); + src[3] = Mat_({1, 5}, {0, 1, 2, 3, 4}); + dst[3] = Mat_({1, 2}, {1, 3}); // zoom - src[4] = (Mat_(3, 5) << - 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14); - dst[4] = (Mat_(5, 7) << - 0, 1, 1, 2, 3, 3, 4, - 0, 1, 1, 2, 3, 3, 4, - 5, 6, 6, 7, 8, 8, 9, - 10, 11, 11, 12, 13, 13, 14, - 10, 11, 11, 12, 13, 13, 14); + src[4] = Mat_({3, 5}, { + 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14 + }); + dst[4] = Mat_({5, 7}, { + 0, 1, 1, 2, 3, 3, 4, + 0, 1, 1, 2, 3, 3, 4, + 5, 6, 6, 7, 8, 8, 9, + 10, 11, 11, 12, 13, 13, 14, + 10, 11, 11, 12, 13, 13, 14 + }); - src[5] = (Mat_(2, 3) << - 0, 1, 2, - 3, 4, 5); - dst[5] = (Mat_(4, 6) << - 0, 0, 1, 1, 2, 2, - 0, 0, 1, 1, 2, 2, - 3, 3, 4, 4, 5, 5, - 3, 3, 4, 4, 5, 5); + src[5] = Mat_({2, 3}, { + 0, 1, 2, + 3, 4, 5 + }); + dst[5] = Mat_({4, 6}, { + 0, 0, 1, 1, 2, 2, + 0, 0, 1, 1, 2, 2, + 3, 3, 4, 4, 5, 5, + 3, 3, 4, 4, 5, 5 + }); for (int i = 0; i < 6; i++) { diff --git a/modules/imgproc/test/test_structuring_element.cpp b/modules/imgproc/test/test_structuring_element.cpp index 7ca500e10a..ccaea48db3 100644 --- a/modules/imgproc/test/test_structuring_element.cpp +++ b/modules/imgproc/test/test_structuring_element.cpp @@ -5,12 +5,13 @@ namespace opencv_test { namespace { TEST(MorphShapes, getStructuringElementDiamond) { cv::Mat element = cv::getStructuringElement(cv::MORPH_DIAMOND, cv::Size(5,5)); - cv::Mat expected = (cv::Mat_(5,5) << - 0,0,1,0,0, - 0,1,1,1,0, - 1,1,1,1,1, - 0,1,1,1,0, - 0,0,1,0,0); + cv::Mat expected = cv::Mat_({5, 5}, { + 0,0,1,0,0, + 0,1,1,1,0, + 1,1,1,1,1, + 0,1,1,1,0, + 0,0,1,0,0 + }); EXPECT_EQ(0, cvtest::norm(element, expected, cv::NORM_INF)); } diff --git a/modules/objdetect/src/chessboard.cpp b/modules/objdetect/src/chessboard.cpp index 22520c6fe7..d54dde9672 100644 --- a/modules/objdetect/src/chessboard.cpp +++ b/modules/objdetect/src/chessboard.cpp @@ -2004,14 +2004,14 @@ bool Chessboard::Board::estimatePoint(const cv::Point2f &p0,const cv::Point2f &p // use 1D homography to find fith point minimizing square error if(p0 == p1 || p0 == p2 || p0 == p3 || p1 == p2 || p1 == p3 || p2 == p3 ) return false; - static const cv::Mat src = (cv::Mat_(1,4) << 0,10,20,30); + static const cv::Mat src = cv::Mat_({1, 4}, {0,10,20,30}); cv::Point2f p01 = p1-p0; cv::Point2f p02 = p2-p0; cv::Point2f p03 = p3-p0; float a = float(cv::norm(p01)); float b = float(cv::norm(p02)); float c = float(cv::norm(p03)); - cv::Mat dst = (cv::Mat_(1,4) << 0,a,b,c); + cv::Mat dst = cv::Mat_({1, 4}, {0,a,b,c}); cv::Mat h = findHomography1D(src,dst); float d = float((h.at(0,0)*40+h.at(0,1))/(h.at(1,0)*40+h.at(1,1))); cv::Point2f p12 = p2-p1; diff --git a/modules/objdetect/src/face_recognize.cpp b/modules/objdetect/src/face_recognize.cpp index b024c787eb..2eab5d23e4 100644 --- a/modules/objdetect/src/face_recognize.cpp +++ b/modules/objdetect/src/face_recognize.cpp @@ -113,7 +113,7 @@ private: for (int i = 0; i < 5; i++) A11 += dst_demean[i][1] * src_demean[i][1]; A11 = A11 / 5; - Mat A = (Mat_(2, 2) << A00, A01, A10, A11); + Mat A = Mat_({2, 2}, {A00, A01, A10, A11}); double d[2] = { 1.0, 1.0 }; double detA = A00 * A11 - A01 * A10; if (detA < 0) @@ -146,7 +146,7 @@ private: { double temp = d[1]; d[1] = -1; - Mat D = (Mat_(2, 2) << d[0], 0.0, 0.0, d[1]); + Mat D = Mat_({2, 2}, {d[0], 0.0, 0.0, d[1]}); Mat Dvt = D*vt; Mat uDvt = u*Dvt; T[0][0] = uDvt.ptr(0)[0]; @@ -158,7 +158,7 @@ private: } else { - Mat D = (Mat_(2, 2) << d[0], 0.0, 0.0, d[1]); + Mat D = Mat_({2, 2}, {d[0], 0.0, 0.0, d[1]}); Mat Dvt = D*vt; Mat uDvt = u*Dvt; T[0][0] = uDvt.ptr(0)[0]; @@ -184,7 +184,7 @@ private: T[0][1] *= scale; T[1][0] *= scale; T[1][1] *= scale; - Mat transform_mat = (Mat_(2, 3) << T[0][0], T[0][1], T[0][2], T[1][0], T[1][1], T[1][2]); + Mat transform_mat = Mat_({2, 3}, {T[0][0], T[0][1], T[0][2], T[1][0], T[1][1], T[1][2]}); return transform_mat; } private: diff --git a/modules/objdetect/src/qrcode_encoder.cpp b/modules/objdetect/src/qrcode_encoder.cpp index a08951ad77..9eda205dc1 100644 --- a/modules/objdetect/src/qrcode_encoder.cpp +++ b/modules/objdetect/src/qrcode_encoder.cpp @@ -898,8 +898,8 @@ void QRCodeEncoderImpl::findAutoMaskType() } } Mat penalty_pattern[2]; - penalty_pattern[0] = (Mat_(1, 11) << 255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0); - penalty_pattern[1] = (Mat_(1, 11) << 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255); + penalty_pattern[0] = Mat_({1, 11}, {255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0}); + penalty_pattern[1] = Mat_({1, 11}, {0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255}); for (int direction = 0; direction < 2; direction++) { if (direction != 0) diff --git a/modules/objdetect/test/test_charucodetection.cpp b/modules/objdetect/test/test_charucodetection.cpp index 84383d7142..ac45ca6db7 100644 --- a/modules/objdetect/test/test_charucodetection.cpp +++ b/modules/objdetect/test/test_charucodetection.cpp @@ -596,25 +596,26 @@ TEST(Charuco, testCharucoCornersCollinear_false) TEST(Charuco, testBoardSubpixelCoords) { cv::Size res{500, 500}; - cv::Mat K = (cv::Mat_(3,3) << - 0.5*res.width, 0, 0.5*res.width, - 0, 0.5*res.height, 0.5*res.height, - 0, 0, 1); + cv::Mat K = cv::Mat_({3, 3}, { + 0.5*res.width, 0, 0.5*res.width, + 0, 0.5*res.height, 0.5*res.height, + 0, 0, 1 + }); // set expected_corners values // Note: Values adjusted by -0.5px after fixing the systematic offset bug in charuco_detector.cpp // The fix removes the incorrect +0.5 offset that was added after cornerSubPix - cv::Mat expected_corners = (cv::Mat_(9,2) << - 199.5, 199.5, - 249.5, 199.5, - 299.5, 199.5, - 199.5, 249.5, - 249.5, 249.5, - 299.5, 249.5, - 199.5, 299.5, - 249.5, 299.5, - 299.5, 299.5 - ); + cv::Mat expected_corners = cv::Mat_({9, 2}, { + 199.5, 199.5, + 249.5, 199.5, + 299.5, 199.5, + 199.5, 249.5, + 249.5, 249.5, + 299.5, 249.5, + 199.5, 299.5, + 249.5, 299.5, + 299.5, 299.5 + }); std::vector shape={expected_corners.rows}; expected_corners = expected_corners.reshape(2, shape); @@ -848,16 +849,18 @@ TEST_P(CharucoBoardGenerate, issue_24806) // chessboard corner 1: // B W // W B - Mat goldCorner1 = (Mat_(2, 2) << - 0, 255, - 255, 0); + Mat goldCorner1 = Mat_({2, 2}, { + 0, 255, + 255, 0 + }); // B - black pixel, W - white pixel // chessboard corner 2: // W B // B W - Mat goldCorner2 = (Mat_(2, 2) << - 255, 0, - 0, 255); + Mat goldCorner2 = Mat_({2, 2}, { + 255, 0, + 0, 255 + }); // test chessboard corners in generated image for (const Point3f& p: board.getChessboardCorners()) { @@ -920,24 +923,25 @@ TEST_P(CharucoBoardGenerate, issue_24806) TEST(Charuco, testSeveralBoardsWithCustomIds) { Size res{500, 500}; - Mat K = (Mat_(3,3) << - 0.5*res.width, 0, 0.5*res.width, - 0, 0.5*res.height, 0.5*res.height, - 0, 0, 1); + Mat K = Mat_({3, 3}, { + 0.5*res.width, 0, 0.5*res.width, + 0, 0.5*res.height, 0.5*res.height, + 0, 0, 1 + }); // Expected corner coordinates adjusted by -0.5px after fixing the systematic offset bug // The fix removes the incorrect +0.5 offset that was added after cornerSubPix - Mat expected_corners = (Mat_(9,2) << - 199.5, 199.5, - 249.5, 199.5, - 299.5, 199.5, - 199.5, 249.5, - 249.5, 249.5, - 299.5, 249.5, - 199.5, 299.5, - 249.5, 299.5, - 299.5, 299.5 - ); + Mat expected_corners = Mat_({9, 2}, { + 199.5, 199.5, + 249.5, 199.5, + 299.5, 199.5, + 199.5, 249.5, + 249.5, 249.5, + 299.5, 249.5, + 199.5, 299.5, + 249.5, 299.5, + 299.5, 299.5 + }); aruco::Dictionary dict = cv::aruco::getPredefinedDictionary(aruco::DICT_4X4_50); diff --git a/modules/objdetect/test/test_chesscorners.cpp b/modules/objdetect/test/test_chesscorners.cpp index 1eece0dad3..b4396949ca 100644 --- a/modules/objdetect/test/test_chesscorners.cpp +++ b/modules/objdetect/test/test_chesscorners.cpp @@ -452,11 +452,9 @@ bool CV_ChessboardDetectorTest::checkByGenerator() randu(bg, Scalar::all(0), Scalar::all(255)); GaussianBlur(bg, bg, Size(5, 5), 0.0); - Mat_ camMat(3, 3); - camMat << 300.f, 0.f, bg.cols/2.f, 0, 300.f, bg.rows/2.f, 0.f, 0.f, 1.f; + Mat_ camMat({3, 3}, {300.f, 0.f, bg.cols/2.f, 0, 300.f, bg.rows/2.f, 0.f, 0.f, 1.f}); - Mat_ distCoeffs(1, 5); - distCoeffs << 1.2f, 0.2f, 0.f, 0.f, 0.f; + Mat_ distCoeffs({1, 5}, {1.2f, 0.2f, 0.f, 0.f, 0.f}); const Size sizes[] = { Size(6, 6), Size(8, 6), Size(11, 12), Size(5, 4) }; const size_t sizes_num = sizeof(sizes)/sizeof(sizes[0]); @@ -527,8 +525,7 @@ bool CV_ChessboardDetectorTest::checkByGenerator() Point2f c = std::accumulate(cg.begin(), cg.end(), Point2f(), std::plus()) * (1.f/cg.size()); - Mat_ aff(2, 3); - aff << 1.0, 0.0, -(double)c.x, 0.0, 1.0, 0.0; + Mat_ aff({2, 3}, {1.0, 0.0, -(double)c.x, 0.0, 1.0, 0.0}); Mat sh; warpAffine(cb, sh, aff, cb.size()); @@ -603,7 +600,7 @@ bool CV_ChessboardDetectorTest::checkByGeneratorHighAccuracy() for(auto &&pt : pts1_all) { // calc camera ray - cv::Vec3f ray(float((pt.x-center.x)*fxi),float((pt.y-center.y)*fyi),1.0F); + cv::Vec3f ray(float((pt.x-center.x)*fxi),float((pt.y-(double)center.y)*fyi),1.0F); ray /= cv::norm(ray); // intersect ray with virtual plane @@ -629,7 +626,7 @@ bool CV_ChessboardDetectorTest::checkByGeneratorHighAccuracy() // project 3d points to new camera Vec3f rvec(0.0F,0.05F,float(float(i)/180.0*CV_PI)); Vec3f tvec(0,0,0); - cv::Mat k = (cv::Mat_(3,3) << fx/2,0,center.x*2, 0,fy/2,center.y, 0,0,1); + cv::Mat k = cv::Mat_({3, 3}, {fx/2,0,(double)center.x*2, 0,fy/2,(double)center.y, 0,0,1}); cv::projectPoints(pts3d,rvec,tvec,k,cv::Mat(),pts2_all); // get perspective transform using four correspondences and wrap original image diff --git a/modules/objdetect/test/test_chesscorners_badarg.cpp b/modules/objdetect/test/test_chesscorners_badarg.cpp index f62cfc16c3..48468b0946 100644 --- a/modules/objdetect/test/test_chesscorners_badarg.cpp +++ b/modules/objdetect/test/test_chesscorners_badarg.cpp @@ -77,10 +77,8 @@ protected: void CV_ChessboardDetectorBadArgTest::run( int /*start_from */) { Mat bg(800, 600, CV_8U, Scalar(0)); - Mat_ camMat(3, 3); - camMat << 300.f, 0.f, bg.cols/2.f, 0, 300.f, bg.rows/2.f, 0.f, 0.f, 1.f; - Mat_ distCoeffs(1, 5); - distCoeffs << 1.2f, 0.2f, 0.f, 0.f, 0.f; + Mat_ camMat({3, 3}, {300.f, 0.f, bg.cols/2.f, 0, 300.f, bg.rows/2.f, 0.f, 0.f, 1.f}); + Mat_ distCoeffs({1, 5}, {1.2f, 0.2f, 0.f, 0.f, 0.f}); ChessBoardGenerator cbg(Size(8,6)); vector exp_corn; diff --git a/modules/objdetect/test/test_cornerssubpix.cpp b/modules/objdetect/test/test_cornerssubpix.cpp index f9df2a2aff..150676ad52 100644 --- a/modules/objdetect/test/test_cornerssubpix.cpp +++ b/modules/objdetect/test/test_cornerssubpix.cpp @@ -234,8 +234,8 @@ void CV_ChessboardSubpixelTest::generateIntrinsicParams() double p2 = 0.05*cvtest::randReal(rng); double k3 = 0.0; - intrinsic_matrix_ = (Mat_(3, 3) << fx, 0.0, cx, 0.0, fy, cy, 0.0, 0.0, 1.0); - distortion_coeffs_ = (Mat_(1, 5) << k1, k2, p1, p2, k3); + intrinsic_matrix_ = Mat_({3, 3}, {fx, 0.0, cx, 0.0, fy, cy, 0.0, 0.0, 1.0}); + distortion_coeffs_ = Mat_({1, 5}, {k1, k2, p1, p2, k3}); } TEST(Calib3d_ChessboardSubPixDetector, accuracy) { CV_ChessboardSubpixelTest test; test.safe_run(); } diff --git a/modules/photo/src/ccm/colorspace.cpp b/modules/photo/src/ccm/colorspace.cpp index e9f73e43bc..2a5cc5bf64 100644 --- a/modules/photo/src/ccm/colorspace.cpp +++ b/modules/photo/src/ccm/colorspace.cpp @@ -352,10 +352,10 @@ Mat XYZ::cam_(IllumObserver sio, IllumObserver dio, ChromaticAdaptationType meth * Chromatic adaption matrices. */ - static const Mat Von_Kries = (Mat_(3, 3) << 0.40024, 0.7076, -0.08081, -0.2263, 1.16532, 0.0457, 0., 0., 0.91822); - static const Mat Bradford = (Mat_(3, 3) << 0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296); - static const std::map> MAs = { - { IDENTITY, { Mat::eye(Size(3, 3), CV_64FC1), Mat::eye(Size(3, 3), CV_64FC1) } }, + static const Matx33d Von_Kries(0.40024, 0.7076, -0.08081, -0.2263, 1.16532, 0.0457, 0., 0., 0.91822); + static const Matx33d Bradford(0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296); + static const std::map> MAs = { + { IDENTITY, { Matx33d::eye(), Matx33d::eye() } }, { VON_KRIES, { Von_Kries, Von_Kries.inv() } }, { BRADFORD, { Bradford, Bradford.inv() } } }; @@ -365,8 +365,8 @@ Mat XYZ::cam_(IllumObserver sio, IllumObserver dio, ChromaticAdaptationType meth Mat XYZWd = Mat(getIlluminants(sio)); XYZws = XYZws.reshape(1, (int)XYZws.total()); XYZWd = XYZWd.reshape(1, (int)XYZWd.total()); - Mat MA = MAs.at(method)[0]; - Mat MA_inv = MAs.at(method)[1]; + Matx33d MA = MAs.at(method)[0]; + Matx33d MA_inv = MAs.at(method)[1]; Mat M = MA_inv * Mat::diag((MA * XYZws) / (MA * XYZWd)) * MA; cams[std::make_tuple(dio, sio, method)] = M; cams[std::make_tuple(sio, dio, method)] = M.inv(); diff --git a/modules/photo/test/test_ccm.cpp b/modules/photo/test/test_ccm.cpp index 36168adc65..bb2bb91892 100644 --- a/modules/photo/test/test_ccm.cpp +++ b/modules/photo/test/test_ccm.cpp @@ -9,7 +9,7 @@ namespace opencv_test namespace { -Mat s = (Mat_(24, 1) << +Mat s = Mat_({24, 1}, { Vec3d(214.11, 98.67, 37.97), Vec3d(231.94, 153.1, 85.27), Vec3d(204.08, 143.71, 78.46), @@ -33,128 +33,135 @@ Mat s = (Mat_(24, 1) << Vec3d(236.49, 175.87, 88.86), Vec3d(212.19, 133.49, 54.79), Vec3d(181.17, 102.94, 36.18), - Vec3d(115.1, 53.77, 15.23)); + Vec3d(115.1, 53.77, 15.23) +}); TEST(Photo_ColorCorrection, test_model) { cv::ccm::ColorCorrectionModel model(s / 255, cv::ccm::COLORCHECKER_MACBETH); Mat colorCorrectionMat = model.compute(); - Mat srcRgbl = (Mat_(24, 1) << - Vec3d(0.68078957, 0.12382801, 0.01514889), - Vec3d(0.81177942, 0.32550452, 0.089818), - Vec3d(0.61259378, 0.2831933, 0.07478902), - Vec3d(0.52696493, 0.20105976, 0.00958657), - Vec3d(0.80402284, 0.30419523, 0.12989841), - Vec3d(0.78658646, 0.63184111, 0.12062068), - Vec3d(0.78999637, 0.25520249, 0.03462853), - Vec3d(0.51866697, 0.16114393, 0.1078387), - Vec3d(0.74820768, 0.11770076, 0.06862177), - Vec3d(0.59776825, 0.05765816, 0.02886627), - Vec3d(0.8793145, 0.56346033, 0.0403954), - Vec3d(0.84124847, 0.42120746, 0.03287592), - Vec3d(0.23333214, 0.06780408, 0.05612276), - Vec3d(0.5176423, 0.41210976, 0.01896255), - Vec3d(0.73888613, 0.06575388, 0.06181293), - Vec3d(0.88326036, 0.58018751, 0.04321991), - Vec3d(0.75922531, 0.13149072, 0.1282041), - Vec3d(0.4345097, 0.32331019, 0.10494139), - Vec3d(0.94110142, 0.77941419, 0.26946323), - Vec3d(0.88438952, 0.5949049 , 0.17536928), - Vec3d(0.84722687, 0.44160449, 0.09834799), - Vec3d(0.66743106, 0.24076803, 0.03394333), - Vec3d(0.47141286, 0.13592419, 0.01362205), - Vec3d(0.17377101, 0.03256864, 0.00203026)); + Mat srcRgbl = Mat_({24, 1}, { + Vec3d(0.68078957, 0.12382801, 0.01514889), + Vec3d(0.81177942, 0.32550452, 0.089818), + Vec3d(0.61259378, 0.2831933, 0.07478902), + Vec3d(0.52696493, 0.20105976, 0.00958657), + Vec3d(0.80402284, 0.30419523, 0.12989841), + Vec3d(0.78658646, 0.63184111, 0.12062068), + Vec3d(0.78999637, 0.25520249, 0.03462853), + Vec3d(0.51866697, 0.16114393, 0.1078387), + Vec3d(0.74820768, 0.11770076, 0.06862177), + Vec3d(0.59776825, 0.05765816, 0.02886627), + Vec3d(0.8793145, 0.56346033, 0.0403954), + Vec3d(0.84124847, 0.42120746, 0.03287592), + Vec3d(0.23333214, 0.06780408, 0.05612276), + Vec3d(0.5176423, 0.41210976, 0.01896255), + Vec3d(0.73888613, 0.06575388, 0.06181293), + Vec3d(0.88326036, 0.58018751, 0.04321991), + Vec3d(0.75922531, 0.13149072, 0.1282041), + Vec3d(0.4345097, 0.32331019, 0.10494139), + Vec3d(0.94110142, 0.77941419, 0.26946323), + Vec3d(0.88438952, 0.5949049 , 0.17536928), + Vec3d(0.84722687, 0.44160449, 0.09834799), + Vec3d(0.66743106, 0.24076803, 0.03394333), + Vec3d(0.47141286, 0.13592419, 0.01362205), + Vec3d(0.17377101, 0.03256864, 0.00203026) + }); EXPECT_MAT_NEAR(srcRgbl, model.getSrcLinearRGB(), 1e-4); - Mat dstRgbl = (Mat_(24, 1) << - Vec3d(0.17303173, 0.08211037, 0.05672686), - Vec3d(0.56832031, 0.29269488, 0.21835529), - Vec3d(0.10365019, 0.19588357, 0.33140475), - Vec3d(0.10159676, 0.14892193, 0.05188294), - Vec3d(0.22159627, 0.21584476, 0.43461196), - Vec3d(0.10806379, 0.51437196, 0.41264213), - Vec3d(0.74736423, 0.20062878, 0.02807988), - Vec3d(0.05757947, 0.10516793, 0.40296109), - Vec3d(0.56676218, 0.08424805, 0.11969461), - Vec3d(0.11099515, 0.04230796, 0.14292554), - Vec3d(0.34546869, 0.50872001, 0.04944204), - Vec3d(0.79461323, 0.35942459, 0.02051968), - Vec3d(0.01710416, 0.05022043, 0.29220674), - Vec3d(0.05598012, 0.30021149, 0.06871162), - Vec3d(0.45585457, 0.03033727, 0.04085654), - Vec3d(0.85737614, 0.56757335, 0.0068503), - Vec3d(0.53348585, 0.08861148, 0.30750446), - Vec3d(-0.0374061, 0.24699498, 0.40041217), - Vec3d(0.91262695, 0.91493909, 0.89367049), - Vec3d(0.57981916, 0.59200418, 0.59328881), - Vec3d(0.35490581, 0.36544831, 0.36755375), - Vec3d(0.19007357, 0.19186587, 0.19308397), - Vec3d(0.08529188, 0.08887994, 0.09257601), - Vec3d(0.0303193, 0.03113818, 0.03274845)); + Mat dstRgbl = Mat_({24, 1}, { + Vec3d(0.17303173, 0.08211037, 0.05672686), + Vec3d(0.56832031, 0.29269488, 0.21835529), + Vec3d(0.10365019, 0.19588357, 0.33140475), + Vec3d(0.10159676, 0.14892193, 0.05188294), + Vec3d(0.22159627, 0.21584476, 0.43461196), + Vec3d(0.10806379, 0.51437196, 0.41264213), + Vec3d(0.74736423, 0.20062878, 0.02807988), + Vec3d(0.05757947, 0.10516793, 0.40296109), + Vec3d(0.56676218, 0.08424805, 0.11969461), + Vec3d(0.11099515, 0.04230796, 0.14292554), + Vec3d(0.34546869, 0.50872001, 0.04944204), + Vec3d(0.79461323, 0.35942459, 0.02051968), + Vec3d(0.01710416, 0.05022043, 0.29220674), + Vec3d(0.05598012, 0.30021149, 0.06871162), + Vec3d(0.45585457, 0.03033727, 0.04085654), + Vec3d(0.85737614, 0.56757335, 0.0068503), + Vec3d(0.53348585, 0.08861148, 0.30750446), + Vec3d(-0.0374061, 0.24699498, 0.40041217), + Vec3d(0.91262695, 0.91493909, 0.89367049), + Vec3d(0.57981916, 0.59200418, 0.59328881), + Vec3d(0.35490581, 0.36544831, 0.36755375), + Vec3d(0.19007357, 0.19186587, 0.19308397), + Vec3d(0.08529188, 0.08887994, 0.09257601), + Vec3d(0.0303193, 0.03113818, 0.03274845) + }); EXPECT_MAT_NEAR(dstRgbl, model.getRefLinearRGB(), 1e-4); Mat mask = Mat::ones(24, 1, CV_8U); EXPECT_MAT_NEAR(model.getMask(), mask, 0.0); - Mat refColorMat = (Mat_(3, 3) << - 0.37406520, 0.02066507, 0.05804047, - 0.12719672, 0.77389268, -0.01569404, - -0.27627010, 0.00603427, 2.74272981); + Mat refColorMat = Mat_({3, 3}, { + 0.37406520, 0.02066507, 0.05804047, + 0.12719672, 0.77389268, -0.01569404, + -0.27627010, 0.00603427, 2.74272981 + }); EXPECT_MAT_NEAR(colorCorrectionMat, refColorMat, 1e-4); } TEST(Photo_ColorCorrection, test_model_with_color_patches_mask) { - Mat dstData = (Mat_(24, 1) << - Vec3d(37.986, 13.555, 14.059), - Vec3d(65.711, 18.13, 17.81), - Vec3d(49.927, -4.88, -21.925), - Vec3d(43.139, -13.095, 21.905), - Vec3d(55.112, 8.843999999999999, -25.399), - Vec3d(70.71899999999999, -33.397, -0.199), - Vec3d(62.661, 36.067, 57.096), - Vec3d(40.02, 10.41, -45.964), - Vec3d(51.124, 48.239, 16.248), - Vec3d(30.325, 22.976, -21.587), - Vec3d(72.532, -23.709, 57.255), - Vec3d(71.941, 19.363, 67.857), - Vec3d(28.778, 14.179, -50.297), - Vec3d(55.261, -38.342, 31.37), - Vec3d(42.101, 53.378, 28.19), - Vec3d(81.733, 4.039, 79.819), - Vec3d(51.935, 49.986, -14.574), - Vec3d(51.038, -28.631, -28.638), - Vec3d(96.539, -0.425, 1.186), - Vec3d(81.25700000000001, -0.638, -0.335), - Vec3d(66.76600000000001, -0.734, -0.504), - Vec3d(50.867, -0.153, -0.27), - Vec3d(35.656, -0.421, -1.231), - Vec3d(20.461, -0.079, -0.973) - ); + Mat dstData = Mat_({24, 1}, { + Vec3d(37.986, 13.555, 14.059), + Vec3d(65.711, 18.13, 17.81), + Vec3d(49.927, -4.88, -21.925), + Vec3d(43.139, -13.095, 21.905), + Vec3d(55.112, 8.843999999999999, -25.399), + Vec3d(70.71899999999999, -33.397, -0.199), + Vec3d(62.661, 36.067, 57.096), + Vec3d(40.02, 10.41, -45.964), + Vec3d(51.124, 48.239, 16.248), + Vec3d(30.325, 22.976, -21.587), + Vec3d(72.532, -23.709, 57.255), + Vec3d(71.941, 19.363, 67.857), + Vec3d(28.778, 14.179, -50.297), + Vec3d(55.261, -38.342, 31.37), + Vec3d(42.101, 53.378, 28.19), + Vec3d(81.733, 4.039, 79.819), + Vec3d(51.935, 49.986, -14.574), + Vec3d(51.038, -28.631, -28.638), + Vec3d(96.539, -0.425, 1.186), + Vec3d(81.25700000000001, -0.638, -0.335), + Vec3d(66.76600000000001, -0.734, -0.504), + Vec3d(50.867, -0.153, -0.27), + Vec3d(35.656, -0.421, -1.231), + Vec3d(20.461, -0.079, -0.973) + }); - Mat coloredMask = (Mat_(24, 1) << - 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0); + Mat coloredMask = Mat_({24, 1}, { + 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0 + }); cv::ccm::ColorCorrectionModel model(s/255, dstData, cv::ccm::COLOR_SPACE_LAB_D50_2, coloredMask); Mat colorCorrectionMat = model.compute(); - Mat refColorMat = (Mat_(3, 3) << - 0.37406520, 0.02066507, 0.05804047, - 0.12719672, 0.77389268, -0.01569404, - -0.27627010, 0.00603427, 2.74272981); + Mat refColorMat = Mat_({3, 3}, { + 0.37406520, 0.02066507, 0.05804047, + 0.12719672, 0.77389268, -0.01569404, + -0.27627010, 0.00603427, 2.74272981 + }); EXPECT_MAT_NEAR(colorCorrectionMat, refColorMat, 1e-4); } TEST(Photo_ColorCorrection, test_masks_weights_1) { - Mat weightsList_ = (Mat_(24, 1) << - 1.1, 0, 0, 1.2, 0, 0, - 1.3, 0, 0, 1.4, 0, 0, - 0.5, 0, 0, 0.6, 0, 0, - 0.7, 0, 0, 0.8, 0, 0); + Mat weightsList_ = Mat_({24, 1}, { + 1.1, 0, 0, 1.2, 0, 0, + 1.3, 0, 0, 1.4, 0, 0, + 0.5, 0, 0, 0.6, 0, 0, + 0.7, 0, 0, 0.8, 0, 0 + }); cv::ccm::ColorCorrectionModel model1(s / 255,cv::ccm::COLORCHECKER_MACBETH); model1.setColorSpace(cv::ccm::COLOR_SPACE_SRGB); model1.setCcmType(cv::ccm::CCM_LINEAR); @@ -166,16 +173,18 @@ TEST(Photo_ColorCorrection, test_masks_weights_1) model1.setWeightsList(weightsList_); model1.setWeightCoeff(1.5); Mat colorCorrectionMat = model1.compute(); - Mat weights = (Mat_(8, 1) << - 1.15789474, 1.26315789, 1.36842105, 1.47368421, - 0.52631579, 0.63157895, 0.73684211, 0.84210526); + Mat weights = Mat_({8, 1}, { + 1.15789474, 1.26315789, 1.36842105, 1.47368421, + 0.52631579, 0.63157895, 0.73684211, 0.84210526 + }); EXPECT_MAT_NEAR(model1.getWeights(), weights, 1e-4); - Mat mask = (Mat_(24, 1) << - true, false, false, true, false, false, - true, false, false, true, false, false, - true, false, false, true, false, false, - true, false, false, true, false, false); + Mat mask = Mat_({24, 1}, { + true, false, false, true, false, false, + true, false, false, true, false, false, + true, false, false, true, false, false, + true, false, false, true, false, false + }); EXPECT_MAT_NEAR(model1.getMask(), mask, 0.0); } @@ -191,18 +200,20 @@ TEST(Photo_ColorCorrection, test_masks_weights_2) model2.setWeightsList(Mat()); model2.setWeightCoeff(1.5); Mat colorCorrectionMat = model2.compute(); - Mat weights = (Mat_(20, 1) << - 0.65554256, 1.49454705, 1.00499244, 0.79735434, 1.16327759, - 1.68623868, 1.37973155, 0.73213388, 1.0169629, 0.47430246, - 1.70312161, 0.45414218, 1.15910007, 0.7540434, 1.05049802, - 1.04551645, 1.54082353, 1.02453421, 0.6015915, 0.26154558); + Mat weights = Mat_({20, 1}, { + 0.65554256, 1.49454705, 1.00499244, 0.79735434, 1.16327759, + 1.68623868, 1.37973155, 0.73213388, 1.0169629, 0.47430246, + 1.70312161, 0.45414218, 1.15910007, 0.7540434, 1.05049802, + 1.04551645, 1.54082353, 1.02453421, 0.6015915, 0.26154558 + }); EXPECT_MAT_NEAR(model2.getWeights(), weights, 1e-4); - Mat mask = (Mat_(24, 1) << - true, true, true, true, true, true, - true, true, true, true, false, true, - true, true, true, false, true, true, - false, false, true, true, true, true); + Mat mask = Mat_({24, 1}, { + true, true, true, true, true, true, + true, true, true, true, false, true, + true, true, true, false, true, true, + false, false, true, true, true, true + }); EXPECT_MAT_NEAR(model2.getMask(), mask, 0.0); } diff --git a/modules/ptcloud/test/test_normal.cpp b/modules/ptcloud/test/test_normal.cpp index e0eca51700..88fb88f8e4 100644 --- a/modules/ptcloud/test/test_normal.cpp +++ b/modules/ptcloud/test/test_normal.cpp @@ -17,7 +17,7 @@ float focal_length = 525; float cx = W / 2.f + 0.5f; float cy = H / 2.f + 0.5f; -static Mat K() { static Mat res = (Mat_(3, 3) << focal_length, 0, cx, 0, focal_length, cy, 0, 0, 1); return res; } +static Mat K() { static Mat res = Mat_({3, 3}, {focal_length, 0, cx, 0, focal_length, cy, 0, 0, 1}); return res; } static Mat Kinv() { static Mat res = K().inv(); return res; } void points3dToDepth16U(const Mat_& points3d, Mat& depthMap); diff --git a/modules/ptcloud/test/test_registration.cpp b/modules/ptcloud/test/test_registration.cpp index 8d393c6d83..83a53680a2 100644 --- a/modules/ptcloud/test/test_registration.cpp +++ b/modules/ptcloud/test/test_registration.cpp @@ -24,7 +24,7 @@ public: // Test sentinel value handling, occlusion, and dilation { // K from a VGA Kinect - Mat K = (Mat_(3, 3) << 525., 0., 319.5, 0., 525., 239.5, 0., 0., 1.); + Mat K = Mat_({3, 3}, {525., 0., 319.5, 0., 525., 239.5, 0., 0., 1.}); int width = 640, height = 480; @@ -54,7 +54,7 @@ public: void noOpRandomRegistrationTest(DepthDepth minDepth, DepthDepth maxDepth) { // K from a VGA Kinect - Mat K = (Mat_(3, 3) << 525., 0., 319.5, 0., 525., 239.5, 0., 0., 1.); + Mat K = Mat_({3, 3}, {525., 0., 319.5, 0., 525., 239.5, 0., 0., 1.}); // Create a random depth image RNG rng; diff --git a/modules/video/perf/perf_ecc.cpp b/modules/video/perf/perf_ecc.cpp index 87f1fbf32f..cb0dc3ac48 100644 --- a/modules/video/perf/perf_ecc.cpp +++ b/modules/video/perf/perf_ecc.cpp @@ -29,23 +29,25 @@ PERF_TEST_P(ECCPerfTest, findTransformECC, double angle; switch (transform_type) { case MOTION_TRANSLATION: - warpGround = (Mat_(2, 3) << 1.f, 0.f, 7.234f, 0.f, 1.f, 11.839f); + warpGround = Mat_({2, 3}, {1.f, 0.f, 7.234f, 0.f, 1.f, 11.839f}); warpAffine(img, templateImage, warpGround, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_EUCLIDEAN: angle = CV_PI / 30; - warpGround = (Mat_(2, 3) << (float)cos(angle), (float)-sin(angle), 12.123f, (float)sin(angle), - (float)cos(angle), 14.789f); + warpGround = Mat_({2, 3}, { + (float)cos(angle), (float)-sin(angle), 12.123f, (float)sin(angle), + (float)cos(angle), 14.789f + }); warpAffine(img, templateImage, warpGround, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_AFFINE: - warpGround = (Mat_(2, 3) << 0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f); + warpGround = Mat_({2, 3}, {0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f}); warpAffine(img, templateImage, warpGround, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_HOMOGRAPHY: - warpGround = (Mat_(3, 3) << 0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f, 0.0002f, 0.0003f, 1.f); + warpGround = Mat_({3, 3}, {0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f, 0.0002f, 0.0003f, 1.f}); warpPerspective(img, templateImage, warpGround, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); break; } @@ -87,22 +89,24 @@ PERF_TEST_P(ECCPerfTestMS, findTransformECCMultiScale, double angle; switch (transform_type) { case MOTION_TRANSLATION: - warpGround = (Mat_(2, 3) << 1.f, 0.f, 7.234f, 0.f, 1.f, 11.839f); + warpGround = Mat_({2, 3}, {1.f, 0.f, 7.234f, 0.f, 1.f, 11.839f}); warpAffine(img, templateImage, warpGround, img.size(), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_EUCLIDEAN: angle = CV_PI / 30; - warpGround = (Mat_(2, 3) << (float)cos(angle), (float)-sin(angle), 12.123f, (float)sin(angle), - (float)cos(angle), 14.789f); + warpGround = Mat_({2, 3}, { + (float)cos(angle), (float)-sin(angle), 12.123f, (float)sin(angle), + (float)cos(angle), 14.789f + }); warpAffine(img, templateImage, warpGround, img.size(), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_AFFINE: - warpGround = (Mat_(2, 3) << 0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f); + warpGround = Mat_({2, 3}, {0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f}); warpAffine(img, templateImage, warpGround, img.size(), INTER_LINEAR + WARP_INVERSE_MAP); break; case MOTION_HOMOGRAPHY: - warpGround = (Mat_(3, 3) << 0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f, 0.0002f, 0.0003f, 1.f); + warpGround = Mat_({3, 3}, {0.98f, 0.03f, 15.523f, -0.02f, 0.95f, 10.456f, 0.0002f, 0.0003f, 1.f}); warpPerspective(img, templateImage, warpGround, img.size(), INTER_LINEAR + WARP_INVERSE_MAP); break; } diff --git a/modules/video/test/test_ecc.cpp b/modules/video/test/test_ecc.cpp index 261662c893..30e7d1e3cf 100644 --- a/modules/video/test/test_ecc.cpp +++ b/modules/video/test/test_ecc.cpp @@ -147,25 +147,31 @@ bool CV_ECC_Test::test(const Mat img) switch(motionType) { case MOTION_TRANSLATION: - groundMap = (Mat_(2, 3) << 1, 0, (rng.uniform(10.f, 20.f)), 0, 1, (rng.uniform(10.f, 20.f))); + groundMap = Mat_({2, 3}, {1, 0, (rng.uniform(10.f, 20.f)), 0, 1, (rng.uniform(10.f, 20.f))}); break; case MOTION_EUCLIDEAN: { double angle = CV_PI / 30 + CV_PI * rng.uniform((double)-2.f, (double)2.f) / 180; - groundMap = (Mat_(2, 3) << cos(angle), -sin(angle), (rng.uniform(10.f, 20.f)), sin(angle), - cos(angle), (rng.uniform(10.f, 20.f))); + groundMap = Mat_({2, 3}, { + (float)cos(angle), (float)-sin(angle), (rng.uniform(10.f, 20.f)), (float)sin(angle), + (float)cos(angle), (rng.uniform(10.f, 20.f)) + }); break; } case MOTION_AFFINE: - groundMap = (Mat_(2, 3) << (1 - rng.uniform(-0.05f, 0.05f)), (rng.uniform(-0.03f, 0.03f)), - (rng.uniform(10.f, 20.f)), (rng.uniform(-0.03f, 0.03f)), (1 - rng.uniform(-0.05f, 0.05f)), - (rng.uniform(10.f, 20.f))); + groundMap = Mat_({2, 3}, { + (1 - rng.uniform(-0.05f, 0.05f)), (rng.uniform(-0.03f, 0.03f)), + (rng.uniform(10.f, 20.f)), (rng.uniform(-0.03f, 0.03f)), (1 - rng.uniform(-0.05f, 0.05f)), + (rng.uniform(10.f, 20.f)) + }); break; case MOTION_HOMOGRAPHY: groundMap = - (Mat_(3, 3) << (1 - rng.uniform(-0.05f, 0.05f)), (rng.uniform(-0.03f, 0.03f)), - (rng.uniform(10.f, 20.f)), (rng.uniform(-0.03f, 0.03f)), (1 - rng.uniform(-0.05f, 0.05f)), - (rng.uniform(10.f, 20.f)), (rng.uniform(0.0001f, 0.0003f)), (rng.uniform(0.0001f, 0.0003f)), 1.f); + Mat_({3, 3}, { + (1 - rng.uniform(-0.05f, 0.05f)), (rng.uniform(-0.03f, 0.03f)), + (rng.uniform(10.f, 20.f)), (rng.uniform(-0.03f, 0.03f)), (1 - rng.uniform(-0.05f, 0.05f)), + (rng.uniform(10.f, 20.f)), (rng.uniform(0.0001f, 0.0003f)), (rng.uniform(0.0001f, 0.0003f)), 1.f + }); break; default: CV_Error(Error::StsBadArg, "Incorrect motion type"); @@ -183,7 +189,7 @@ bool CV_ECC_Test::test(const Mat img) else { warpAffine(img, warpedImage, groundMap, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); - foundMap = Mat((Mat_(2, 3) << 1, 0, 0, 0, 1, 0)); + foundMap = Mat(Mat_({2, 3}, {1, 0, 0, 0, 1, 0})); } @@ -277,13 +283,13 @@ bool CV_ECC_Test_Mask::test(const Mat testImg) { ts->update_context(this, k, true); progress = update_progress(progress, k, ntests, 0); - Mat translationGround = (Mat_(2, 3) << 1, 0, (rng.uniform(10.f, 20.f)), 0, 1, (rng.uniform(10.f, 20.f))); + Mat translationGround = Mat_({2, 3}, {1, 0, (rng.uniform(10.f, 20.f)), 0, 1, (rng.uniform(10.f, 20.f))}); Mat warpedImage; warpAffine(testImg, warpedImage, translationGround, Size(200, 200), INTER_LINEAR + WARP_INVERSE_MAP); - Mat mapTranslation = (Mat_(2, 3) << 1, 0, 0, 0, 1, 0); + Mat mapTranslation = Mat_({2, 3}, {1, 0, 0, 0, 1, 0}); Mat_ mask = Mat_::ones(testImg.rows, testImg.cols); Rect region(testImg.cols * 2 / 3, testImg.rows * 2 / 3, testImg.cols / 3, testImg.rows / 3); @@ -348,13 +354,13 @@ void CV_ECC_BigPictureTest::run(int) roiMask0 = imread(string(ts->get_data_path()) + "shared/halmosh0mask.png", IMREAD_GRAYSCALE); roiMask1 = imread(string(ts->get_data_path()) + "shared/halmosh2mask.png", IMREAD_GRAYSCALE); readError = largeGray0.empty() || largeGray1.empty() || roiMask0.empty() || roiMask1.empty(); - expectedRes = (Mat_(3, 3) << 1.0225, 0.0606, -28.6452, -0.0475, 1.0314, 11.819, 8.21e-06, -3.65e-07, 1); + Mat_({3, 3}, {1.0225, 0.0606, -28.6452, -0.0475, 1.0314, 11.819, 8.21e-06, -3.65e-07, 1}).convertTo(expectedRes, CV_32F); } else { largeGray1 = imread(string(ts->get_data_path()) + "shared/halmosh1.jpg", IMREAD_GRAYSCALE); readError = largeGray0.empty() || largeGray1.empty(); - expectedRes = (Mat_(3, 3) << 0.9756, -0.0319, 24.685, 0.013, 0.9808, 7.7453, -2.35e-05, -9.12e-06, 1); + Mat_({3, 3}, {0.9756, -0.0319, 24.685, 0.013, 0.9808, 7.7453, -2.35e-05, -9.12e-06, 1}).convertTo(expectedRes, CV_32F); } if(readError) @@ -441,8 +447,8 @@ TEST(Video_ECC_Test_Compute, properties) { } TEST(Video_ECC_Test_Compute, accuracy) { - Mat testImg = (Mat_(3, 3) << 1, 0, 0, 1, 0, 0, 1, 0, 0); - Mat warpedImage = (Mat_(3, 3) << 0, 1, 0, 0, 1, 0, 0, 1, 0); + Mat testImg = Mat_({3, 3}, {1, 0, 0, 1, 0, 0, 1, 0, 0}); + Mat warpedImage = Mat_({3, 3}, {0, 1, 0, 0, 1, 0, 0, 1, 0}); Mat_ mask = Mat_::ones(testImg.rows, testImg.cols); double ecc = computeECC(warpedImage, testImg, mask); @@ -455,7 +461,7 @@ TEST(Video_ECC_Test_Compute, bug_14657) { * it results in 1, 1, 1, 0 for the unsigned int case - compare to 1, 1, 1, -3 in the signed case. * For this reason, when the same matrix was provided as the input and the template, we didn't get 1 as expected. */ - Mat img = (Mat_(2, 2) << 10, 10, 10, 6); + Mat img = Mat_({2, 2}, {10, 10, 10, 6}); EXPECT_NEAR(computeECC(img, img), 1.0f, 1e-5f); } @@ -480,7 +486,7 @@ TEST(Video_ECC_BoolMask, matches_uchar_mask) { templateImage(Rect(j * 8, i * 8, 8, 8)) = 200; GaussianBlur(templateImage, templateImage, Size(5, 5), 0); - Mat shift = (Mat_(2, 3) << 1, 0, 2, 0, 1, 1); + Mat shift = Mat_({2, 3}, {1, 0, 2, 0, 1, 1}); Mat inputImage; warpAffine(templateImage, inputImage, shift, templateImage.size()); diff --git a/samples/cpp/tutorial_code/core/how_to_use_OpenCV_parallel_for_/how_to_use_OpenCV_parallel_for_new.cpp b/samples/cpp/tutorial_code/core/how_to_use_OpenCV_parallel_for_/how_to_use_OpenCV_parallel_for_new.cpp index 52ecbe5cf1..212e2b9e42 100644 --- a/samples/cpp/tutorial_code/core/how_to_use_OpenCV_parallel_for_/how_to_use_OpenCV_parallel_for_new.cpp +++ b/samples/cpp/tutorial_code/core/how_to_use_OpenCV_parallel_for_/how_to_use_OpenCV_parallel_for_new.cpp @@ -285,18 +285,18 @@ int main(int argc, char *argv[]) */ /* - kernel = (Mat_(5, 5) << 1, 1, 1, 1, 1, + kernel = Mat_({5, 5}, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1); + 1, 1, 1, 1, 1 }); kernel /= 100; */ /* - kernel = (Mat_(3, 3) << 1, 1, 1, + kernel = Mat_({3, 3}, { 1, 1, 1, 0, 0, 0, - -1, -1, -1); + -1, -1, -1 }); */