mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
core: deprecate MatCommaInitializer_
This commit is contained in:
@@ -548,6 +548,13 @@ public:
|
||||
double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180);
|
||||
Mat R = (Mat_<double>(2,2) << a, -b, b, a);
|
||||
\endcode
|
||||
|
||||
\deprecated Use constructors with std::initializer_list instead:
|
||||
\code
|
||||
Mat_<int> m1({1, 2, 3, 4}); // 4x1 Mat
|
||||
Mat_<uchar> m2({2, 3}, {1, 2, 3, 4, 5, 6}); // 2x3 Mat
|
||||
|
||||
Mat_<double> R({2, 2}, {a, -b, b, a}); // from example
|
||||
*/
|
||||
template<typename _Tp> class MatCommaInitializer_
|
||||
{
|
||||
@@ -1083,7 +1090,7 @@ public:
|
||||
|
||||
/** @overload
|
||||
*/
|
||||
template<typename _Tp> explicit Mat(const MatCommaInitializer_<_Tp>& commaInitializer);
|
||||
template<typename _Tp> CV_DEPRECATED_EXTERNAL explicit Mat(const MatCommaInitializer_<_Tp>& commaInitializer);
|
||||
|
||||
//! download data from GpuMat
|
||||
explicit Mat(const cuda::GpuMat& m);
|
||||
@@ -2338,7 +2345,7 @@ public:
|
||||
template<int m, int n> explicit Mat_(const Matx<typename DataType<_Tp>::channel_type, m, n>& mtx, bool copyData=true);
|
||||
explicit Mat_(const Point_<typename DataType<_Tp>::channel_type>& pt, bool copyData=true);
|
||||
explicit Mat_(const Point3_<typename DataType<_Tp>::channel_type>& pt, bool copyData=true);
|
||||
explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer);
|
||||
CV_DEPRECATED_EXTERNAL explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer);
|
||||
|
||||
Mat_(std::initializer_list<_Tp> values);
|
||||
explicit Mat_(const std::initializer_list<int> sizes, const std::initializer_list<_Tp> values);
|
||||
|
||||
@@ -3011,7 +3011,7 @@ MatCommaInitializer_<_Tp>::operator Mat_<_Tp>() const
|
||||
}
|
||||
|
||||
|
||||
template<typename _Tp, typename T2> static inline
|
||||
template<typename _Tp, typename T2> CV_DEPRECATED_EXTERNAL static inline
|
||||
MatCommaInitializer_<_Tp> operator << (const Mat_<_Tp>& m, T2 val)
|
||||
{
|
||||
MatCommaInitializer_<_Tp> commaInitializer((Mat_<_Tp>*)&m);
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
int idx;
|
||||
};
|
||||
|
||||
template<typename _Tp, typename _T2, int m, int n> static inline
|
||||
template<typename _Tp, typename _T2, int m, int n> 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);
|
||||
@@ -738,7 +738,7 @@ public:
|
||||
Vec<_Tp, m> operator *() const;
|
||||
};
|
||||
|
||||
template<typename _Tp, typename _T2, int cn> static inline
|
||||
template<typename _Tp, typename _T2, int cn> CV_DEPRECATED_EXTERNAL static inline
|
||||
VecCommaInitializer<_Tp, cn> operator << (const Vec<_Tp, cn>& vec, _T2 val)
|
||||
{
|
||||
VecCommaInitializer<_Tp, cn> commaInitializer((Vec<_Tp, cn>*)&vec);
|
||||
|
||||
@@ -1465,6 +1465,8 @@ TEST(Core_Matx, from_initializer_list)
|
||||
Mat_<double> a = (Mat_<double>(2,2) << 10, 11, 12, 13);
|
||||
Matx22d b = {10, 11, 12, 13};
|
||||
ASSERT_EQ( cvtest::norm(a, b, NORM_INF), 0.);
|
||||
Mat_<double> c({2, 2}, {10, 11, 12, 13});
|
||||
ASSERT_EQ( cvtest::norm(c, b, NORM_INF), 0.);
|
||||
}
|
||||
|
||||
TEST(Core_Mat, regression_9507)
|
||||
@@ -1918,6 +1920,11 @@ TEST(Mat, from_initializer_list)
|
||||
auto D = Mat_<double>({2, 3}, {1, 2, 3, 4, 5, 6});
|
||||
EXPECT_EQ(2, D.rows);
|
||||
EXPECT_EQ(3, D.cols);
|
||||
|
||||
double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180);
|
||||
Mat R({2, 2}, {a, -b, b, a});
|
||||
ASSERT_EQ(CV_64FC1, R.type());
|
||||
ASSERT_EQ(cv::Size(2, 2), R.size());
|
||||
}
|
||||
|
||||
TEST(Mat_, from_initializer_list)
|
||||
@@ -1929,6 +1936,11 @@ TEST(Mat_, from_initializer_list)
|
||||
ASSERT_DOUBLE_EQ(cvtest::norm(A, B, NORM_INF), 0.);
|
||||
ASSERT_DOUBLE_EQ(cvtest::norm(A, C, NORM_INF), 0.);
|
||||
ASSERT_DOUBLE_EQ(cvtest::norm(B, C, NORM_INF), 0.);
|
||||
|
||||
double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180);
|
||||
Mat_<double> R({2, 2}, {a, -b, b, a});
|
||||
ASSERT_EQ(CV_64FC1, R.type());
|
||||
ASSERT_EQ(cv::Size(2, 2), R.size());
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user