1

我有一个从 dnn::blobFromImage 返回的 cv::Mat 垫子,尺寸为 1x3x600x450。(img 是没有 Alpha 通道的 BGR)

cv::Mat mat = dnn::blobFromImage(img);
cout << mat.size() << endl; // 1x3x600x450

将其重塑为 3x600x450 的 numpy.reshape 的模拟是什么?

在 python 中,如果我断言 mat.shape[0] == 1,那么使用 numpy.reshape 我会做类似的事情

mat = mat.reshape((mat.shape[1], mat.shape[2], mat.shape[3]))

OpenCV 中的等价物是什么?

4

1 回答 1

1

Per Dan 在上面的评论中的回应,这就是我的想法:

cv::Mat mat = dnn::blobFromImage(img);
cout << mat.size() << endl; // 1x3x600x450

int sz[] = {mat.size[1], mat.size[2], mat.size[3]}; 
Mat newmat(3, sz, mat.type(), mat.ptr<float>(0));
cout << newmat.size() << endl; // 3x600x450
于 2018-09-06T02:17:31.683 回答