【发布时间】:2014-01-06 07:09:06
【问题描述】:
我有一个 Mat 类型的向量,大小为 1 x 720 x 3 ,即一行,720 列和 3 个通道。我检查了以下尺寸
vector<Mat> image_rows_avg;
cout<<image_rows_avg[0].size;
它给出了一些值,例如 0x918840。可能这个.size() 给出了一些地址。所以我试着做
cout<<image_rows_avg[0].size[0]; 给出答案:1
cout<<image_rows_avg[0].size[1]; 给出答案:720 这是正确的,再一次
cout<<image_rows_avg[0].size[2]; 给出答案:159187328 又是垃圾。
我无法理解这是怎么回事。我认为.size() 应该直接给出向量的大小。
【问题讨论】:
-
image_rows_avg.size()将为您提供向量的大小,image_rows_avg[X].size()将为您提供向量中X元素的相应size()。 -
image_rows_avg为空,因此您访问的范围越界。 -
它不是空的,它里面有正确的值。只是我没有在cout之前发布代码的中间部分
-
此外,请注意我已经提到 size(0) 给出了 1,它不是。 of rows and size(1) 给出正确的列数。