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

2024-03-31

我想用堆叠的 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 mat

}

vector<cv::Mat> image_rows;

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

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

}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐