Как назначить 2D-изображения плоскостям 3D OpenCV Mat, а затем извлечь 2D Mats вдоль другой оси? - PullRequest
4 голосов
/ 23 июня 2011

Я хочу сделать 3D-мат из сложенных 2D-матов, а затем вытянуть 2D-коврики вдоль другой оси 3D-коврика. Я знаю, что могу создать это вручную, получая доступ к каждой строке или столбцу каждого изображения, но есть ли лучший способ сделать это, как показано ниже?

vector<cv::Mat> images;

... заполнить вектор изображениями

int sz[] = {images[0].rows, images[0].cols, images.size()}
cv::Mat cube(3, sz, images[0].type() );
cube = Scalar(0);

for (int i = 0; i < images.size(); i++) {

... поместить изображения в 3d мат

}

vector<cv::Mat> image_rows;

for (int i = 0; i < images[0].rows(); i++) {

... вставить плоскости изображения в image_rows по ширине и глубине трехмерной кубической матрицы

}

1 Ответ

1 голос
/ 25 сентября 2011

Я проделал большую работу с opencv, и, насколько я знаю, это лучший способ сделать это. Вы могли бы сделать Мат из векторов более высокой размерности, но тогда ваш доступ был бы еще менее чистым. Придерживайтесь вектора, это ваша лучшая ставка.

...