繁体   English   中英

如何将2D垫合并为3D垫?

[英]How to combines 2D mat into a 3D one?

这是我的问题,我有8张100 * 100的灰度灰度图像,我想将它们组合成一个100 * 100 * 8的3d矩阵;

这是我的代码:(8个垫从img1img8命名,大小相同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。

我该如何解决这个问题?

您必须先将double类型的矩阵转换为uchar矩阵,这可以通过以下步骤完成:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM