如何将2d图像分配到3d OpenCV Mat的平面,然后沿不同的轴提取2D垫?

时间:2011-06-23 18:48:47

标签: c++ opencv

我想用堆叠的2D垫制作3D垫,然后沿着3D垫的不同轴拉出2D垫。我知道我可以手动访问每个图像的每一行或每个图像,但有更好的方法,如下所示吗?

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++) {

...沿3D立方体矩阵的宽度和深度将图像平面推入image_rows

}

1 个答案:

答案 0 :(得分:1)

我已经用opencv做了很多工作,据我所知,这是最好的方法。你可以制作一个更高维度的矢量垫,但是你的访问将更加干净。坚持向量是你最好的选择。