openCV Mat N维重塑

问题描述 投票:0回答:1

我有一个从dnn :: blobFromImage返回的cv :: Mat mat,大小为1x3x600x450。 (img是没有alpha通道的BGR)

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

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

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

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

OpenCV中的等价物是什么?

c++ opencv reshape
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.