如何创建3维的Mat对象?

时间:2013-02-05 15:31:22

标签: c++ opencv

我用过它:

Mat map(img.size(),CV_8UC3,CV_RGB(0,0,0));

但似乎没有创建任何3维矩阵! 有谁可以帮助我?

2 个答案:

答案 0 :(得分:2)

CV_8UC3标志表示您正在创建一个具有三个通道的图像,其中每个通道中的每个像素都表示为无符号字符。您应该能够通过查看

的输出来确认多个通道(或第三维)
 map.channels();

将返回矩阵在第三维中的大小。如果您需要更多频道,请使用以下内容:

 map.create(100,60,CV_8UC(15));

其中15是频道数。

答案 1 :(得分:0)

这样做的好方法是使用适当的构造函数:

Mat::Mat(int ndims, const int* sizes, int type)

例如,如果要创建100x60x15矩阵:

int sz[] = {100, 60, 15};
Mat map(3, sz, CV_8U);