mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 15:23:05 +04:00
dnn: sync output/internals blobs back
This commit is contained in:
@@ -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; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user