mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Add new Mat constructor (#10808)
* Add new Mat constructor * Fix build error * Fix build error * Fixed the code about 4 comments * Fixed three comments * delete previous local declaration * fix build error
This commit is contained in:
committed by
Vadim Pisarevsky
parent
ab0f0f26a1
commit
379ea15d16
@@ -989,6 +989,10 @@ public:
|
||||
*/
|
||||
template<typename _Tp, typename = typename std::enable_if<std::is_arithmetic<_Tp>::value>::type>
|
||||
explicit Mat(const std::initializer_list<_Tp> list);
|
||||
|
||||
/** @overload
|
||||
*/
|
||||
template<typename _Tp> explicit Mat(const std::initializer_list<int> sizes, const std::initializer_list<_Tp> list);
|
||||
#endif
|
||||
|
||||
#ifdef CV_CXX_STD_ARRAY
|
||||
@@ -2208,6 +2212,7 @@ public:
|
||||
|
||||
#ifdef CV_CXX11
|
||||
Mat_(std::initializer_list<_Tp> values);
|
||||
explicit Mat_(const std::initializer_list<int> sizes, const std::initializer_list<_Tp> values);
|
||||
#endif
|
||||
|
||||
#ifdef CV_CXX_STD_ARRAY
|
||||
|
||||
@@ -584,6 +584,18 @@ Mat::Mat(const std::initializer_list<_Tp> list)
|
||||
return;
|
||||
Mat((int)list.size(), 1, traits::Type<_Tp>::value, (uchar*)list.begin()).copyTo(*this);
|
||||
}
|
||||
|
||||
template<typename _Tp> inline
|
||||
Mat::Mat(const std::initializer_list<int> sizes, const std::initializer_list<_Tp> list)
|
||||
: Mat()
|
||||
{
|
||||
size_t size_total = 1;
|
||||
int *sz = (int*)sizes.begin();
|
||||
for(auto s : sizes)
|
||||
size_total *= s;
|
||||
CV_Assert(list.size() != 0 || size_total == list.size());
|
||||
Mat((int)sizes.size(), sz, traits::Type<_Tp>::value, (uchar*)list.begin()).copyTo(*this);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CV_CXX_STD_ARRAY
|
||||
@@ -1629,6 +1641,11 @@ template<typename _Tp> inline
|
||||
Mat_<_Tp>::Mat_(std::initializer_list<_Tp> list)
|
||||
: Mat(list)
|
||||
{}
|
||||
|
||||
template<typename _Tp> inline
|
||||
Mat_<_Tp>::Mat_(const std::initializer_list<int> sizes, std::initializer_list<_Tp> list)
|
||||
: Mat(sizes, list)
|
||||
{}
|
||||
#endif
|
||||
|
||||
#ifdef CV_CXX_STD_ARRAY
|
||||
|
||||
Reference in New Issue
Block a user