3维Mat返回空矩阵

时间:2017-11-10 16:35:55

标签: c++ opencv

我试图在OpenCV中初始化一个3维Mat,如下所示:

3d_matrix = Mat(3, sizes, CV_64FC1, double(0));

其中sizesint,其大小为3sizes的值为341441170

然而,在调整时我发现3d_matrix rowscols都设为-1

当我尝试将此矩阵写为图像时,它会按预期创建一个空图像(即它没有大小)。

1 个答案:

答案 0 :(得分:0)

@Miki所述,对于多维矩阵,行和列设置为-1。

如果你只有3个dims,你可以使用类似的东西:

cv::Mat threed_matrix = cv::Mat(341, 441, CV_64FC(170));
std::cout << "rows: " << threed_matrix.rows << std::endl
          << "cols: " << threed_matrix.cols << std::endl
          << "channels(): " << threed_matrix.channels() << std::endl;

给出:

rows: 341
cols: 441
channels(): 170

请注意,渠道规模不应超过CV_CN_MAX,目前在OpenCV中定义512