return Mat(m.dims - 2, sz, m.type(), (void*)m.ptr<float>(n, cn));
}
-static inline MatShape shape(const int* dims, const int n = 4)
+static inline MatShape shape(const int* dims, const int n)
{
MatShape shape;
shape.assign(dims, dims + n);
return shape(mat.size.p, mat.dims);
}
+static inline MatShape shape(const MatSize& sz)
+{
+ return shape(sz.p, sz[-1]);
+}
+
static inline MatShape shape(const UMat& mat)
{
return shape(mat.size.p, mat.dims);
static inline MatShape shape(int a0, int a1=-1, int a2=-1, int a3=-1)
{
int dims[] = {a0, a1, a2, a3};
- MatShape s = shape(dims);
+ MatShape s = shape(dims, 4);
s.erase(std::remove_if(s.begin(), s.end(), is_neg), s.end());
return s;
}
CV_Assert(ngroups > 0 && inpCn % ngroups == 0 && outCn % ngroups == 0);
int dims[] = {inputs[0][0], outCn, out.height, out.width};
- outputs.resize(inputs.size(), shape(dims));
+ outputs.resize(inputs.size(), shape(dims, 4));
return false;
}
CV_Assert(blobs[0].size[0] == inpCn);
int dims[] = {inputs[0][0], outCn, outH, outW};
- outputs.resize(inputs.size(), shape(dims));
+ outputs.resize(inputs.size(), shape(dims, 4));
internals.push_back(MatShape());
if (!is1x1())
dims[0] = inputs[1][0]; // Number of proposals;
dims[1] = psRoiOutChannels;
}
- outputs.assign(type == MAX ? 2 : 1, shape(dims));
+ outputs.assign(type == MAX ? 2 : 1, shape(dims, 4));
return false;
}