【发布时间】:2015-11-25 15:34:31
【问题描述】:
这是我的问题,我有 8 张 100*100 的垫子灰度图像, 我想将它们组合成一个 3d 矩阵,如 100*100*8;
这是我的代码:(8个垫子从img1命名为img8,大小相同为100*100,像素值为double)
int sz[3] = {img1.rows,img1.cols,8};
Mat m(3,sz, CV_8UC1, Scalar::all(0));
m.at<double>(m.rows,m.cols,1)=img1;
我认为这段代码可以将 img1 放入 3d 矩阵 100*100*8 的第一个平面,但随后出现错误:
该类型无法从 MAT 转换为 double。
我该如何解决这个问题?
【问题讨论】:
-
为什么需要这个 3d 图像? OpenCV 对 N 维图像的支持不是很好。您可以这样做,但使用起来并不容易。你确定
std::vector<Mat1b>还不够吗? -
哇,你能告诉我如何使用 std::vector
吗?我需要这个,因为我想让 10 个垫子成为一个循环。 like : for (i=0;i -
检查this