我试图在OpenCV中初始化一个3维Mat,如下所示:
3d_matrix = Mat(3, sizes, CV_64FC1, double(0));
其中sizes
是int
,其大小为3
。 sizes
的值为341
,441
和170
。
然而,在调整时我发现3d_matrix
rows
和cols
都设为-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