|
|
|
@ -3053,6 +3053,82 @@ void _OutputArray::assign(const Mat& m) const |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void _OutputArray::assign(const std::vector<UMat>& v) const |
|
|
|
|
{ |
|
|
|
|
int k = kind(); |
|
|
|
|
if (k == STD_VECTOR_UMAT) |
|
|
|
|
{ |
|
|
|
|
std::vector<UMat>& this_v = *(std::vector<UMat>*)obj; |
|
|
|
|
CV_Assert(this_v.size() == v.size()); |
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < v.size(); i++) |
|
|
|
|
{ |
|
|
|
|
const UMat& m = v[i]; |
|
|
|
|
UMat& this_m = this_v[i]; |
|
|
|
|
if (this_m.u != NULL && this_m.u == m.u) |
|
|
|
|
continue; // same object (see dnn::Layer::forward_fallback)
|
|
|
|
|
m.copyTo(this_m); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else if (k == STD_VECTOR_MAT) |
|
|
|
|
{ |
|
|
|
|
std::vector<Mat>& this_v = *(std::vector<Mat>*)obj; |
|
|
|
|
CV_Assert(this_v.size() == v.size()); |
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < v.size(); i++) |
|
|
|
|
{ |
|
|
|
|
const UMat& m = v[i]; |
|
|
|
|
Mat& this_m = this_v[i]; |
|
|
|
|
if (this_m.u != NULL && this_m.u == m.u) |
|
|
|
|
continue; // same object (see dnn::Layer::forward_fallback)
|
|
|
|
|
m.copyTo(this_m); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
CV_Error(Error::StsNotImplemented, ""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void _OutputArray::assign(const std::vector<Mat>& v) const |
|
|
|
|
{ |
|
|
|
|
int k = kind(); |
|
|
|
|
if (k == STD_VECTOR_UMAT) |
|
|
|
|
{ |
|
|
|
|
std::vector<UMat>& this_v = *(std::vector<UMat>*)obj; |
|
|
|
|
CV_Assert(this_v.size() == v.size()); |
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < v.size(); i++) |
|
|
|
|
{ |
|
|
|
|
const Mat& m = v[i]; |
|
|
|
|
UMat& this_m = this_v[i]; |
|
|
|
|
if (this_m.u != NULL && this_m.u == m.u) |
|
|
|
|
continue; // same object (see dnn::Layer::forward_fallback)
|
|
|
|
|
m.copyTo(this_m); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else if (k == STD_VECTOR_MAT) |
|
|
|
|
{ |
|
|
|
|
std::vector<Mat>& this_v = *(std::vector<Mat>*)obj; |
|
|
|
|
CV_Assert(this_v.size() == v.size()); |
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < v.size(); i++) |
|
|
|
|
{ |
|
|
|
|
const Mat& m = v[i]; |
|
|
|
|
Mat& this_m = this_v[i]; |
|
|
|
|
if (this_m.u != NULL && this_m.u == m.u) |
|
|
|
|
continue; // same object (see dnn::Layer::forward_fallback)
|
|
|
|
|
m.copyTo(this_m); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
CV_Error(Error::StsNotImplemented, ""); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static _InputOutputArray _none; |
|
|
|
|
InputOutputArray noArray() { return _none; } |
|
|
|
|
|
|
|
|
|