[英]How to combines 2D mat into a 3D one?
这是我的问题,我有8张100 * 100的灰度灰度图像,我想将它们组合成一个100 * 100 * 8的3d矩阵;
这是我的代码:(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。
我该如何解决这个问题?
您必须先将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.