1

我的问题令人惊讶。这是代码

 #define NCHANNEL 3
 #define NFRAME 100
 Mat RR = Mat::zeros(NCHANNEL, NFRAME-1, CV_64FC1);

double *p_0 = RR.ptr<double>(0);
double *p_1 = RR.ptr<double>(1);
double *p_2 = RR.ptr<double>(2); 
cout<< p_0[NFRAME-1] << endl << p_1[NFRAME-1] << endl << p_2[NFRAME-1] << endl;

输出为: 0 0 -6.27744e+066 。
那个可怕的数字是从哪里来的?
看来我正在打印一个指针或内存中的一些粗糙的东西。
(嗯,0 是所有其他元素的值,当然)。

4

1 回答 1

3

您在 Mat 的最后一个元素之后访问。如果您NFRAME-1用于初始化,则最后一个元素具有NFRAME-2索引。

于 2012-09-30T15:13:55.277 回答