我有一个dnn::blobFromImage返回的cv::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中的等效项是什么?

最佳答案

根据丹在上述评论中的回答,这就是我的看法:

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

关于c++ - openCV Mat N维重塑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52129975/

10-16 07:55