如何将2D垫子组合成3D垫子?

时间:2015-11-25 15:34:31

标签: c++ opencv

这是我的问题,我有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。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

首先必须将双类型matirces转换为uchar矩阵,可以按如下方式进行:

cv::Mat img1u;
img1.convertTo(img1u);
m.at<double>(m.rows,m.cols,1)=img1u;