openCV Mat N-мерная форма

У меня есть циновка cv :: Mat, возвращенная из dnn :: blobFromImage размером 1x3x600x450. (img — 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?

0

Решение

Согласно ответу Дэна в комментариях выше, это то, с чем я пошел:

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
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]