如何将二维图像指定给三维OpenCV Mat的平面,然后沿不同的轴提取二维Mat



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

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做了很多工作,据我所知,这是最好的方法。你可以制作一个高维向量的Mat,但这样你的访问就更不干净了。坚持向量是你的最佳选择。

相关内容

  • 没有找到相关文章

最新更新